Tabla de contenido:
- Paso 1: La placa Wemos D1 Mini ESP8266
- Paso 2: prepararse para MicroPython en el chip ESP
- Paso 3: Introducción a MiPy-ESP
- Paso 4: Arquitectura del marco MiPy-ESP
- Paso 5: preparación de su código de proyecto
- Paso 6: compilar y cargar el código en el microcontrolador
Video: Introducción a Python para ESP8266 y ESP32: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Fundamento
El ESP8266 y su hermano mayor menor ESP32 son microchips Wi-Fi de bajo costo con pila TCP / IP completa y capacidad de microcontrolador. El chip ESP8266 llamó la atención de la comunidad de fabricantes por primera vez en 2014. Desde entonces, el bajo precio (<5 USD), su capacidad Wi-Fi, una memoria flash incorporada de 1 o 4 MB y una variedad de desarrollos disponibles placas, ha convertido al chip ESP en uno de los microcontroladores más populares para proyectos de bricolaje WiFi e IoT.
MicroPython es una implementación sencilla y eficiente del cada vez más popular lenguaje de programación Python que incluye un pequeño subconjunto de la biblioteca estándar de Python y está optimizado para ejecutarse en microcontroladores.
La combinación de estos dos es una opción muy interesante para proyectos de bricolaje, tanto para principiantes como para usuarios más avanzados.
El proyecto MiPy-ESP
En 2015, mis primeros proyectos con ESP8266 comenzaron con el chip ESP-01 usando Arudions para ejecutar comandos de chip AT a través de una conexión en serie. Después de eso, durante los siguientes años apliqué el núcleo Arduino para ESP8266 para programar los chips con el lenguaje C ++. Esto funciona bien, pero para un entusiasta de Python, mi descubrimiento de la implementación de MicroPython de Python 3 fue una gran noticia.
El proyecto MiPy-ESP es un marco flexible que aplica MicroPython para proyectos de Python IoT de pila completa en los microcontroladores de la familia ESP.
El marco es desarrollado por el Equipo de Desarrolladores de Software del Comité Técnico de LeGarage (LG-TC-SWDT-01) con el objetivo de reemplazar el código basado en C ++ ya establecido para nuestras aplicaciones de microcontroladores.
El proyecto proporciona características básicas como
- Procedimientos de conexión a la red
- Servidor web de punto de acceso a chip (para conexión wifi y servicio de páginas web de chip para E / S de datos)
- Funcionalidades MQTT
- Registro / depuración
- Programación de eventos del microcontrolador
- Rutinas de E / S de hardware
Con un script de código compacto principal (main.py), todos con configuración global (config.py).
Este código de microcontrolador se ejecuta con un mantenimiento sólido de las conexiones de chip a la red WiFi y los corredores de MQTT. Los módulos MicroPython existentes para varios hardware se pueden integrar fácilmente en el sistema.
El marco MiPy-ESP se ha convertido en la columna vertebral de todos nuestros proyectos de IoT de electrónica para pasatiempos que involucran microcontroladores de la familia ESP. Se ha probado en varias placas de la familia ESP, como las placas NodeMCU, Wemos y Lolin.
El siguiente tutorial es una guía sobre cómo comenzar con los microcontroladores de la familia ESP y MicroPython utilizando el marco MiPy-ESP.
Paso 1: La placa Wemos D1 Mini ESP8266
El marco MiPy-ESP funciona con la mayoría de los microcontroladores basados en ESP8266.
La mini placa de desarrollo Wemos D1 se basa en el chip ESP-8266EX. En un espacio de 2,5 x 3,5 cm, cuenta con 4 MB de memoria flash, 11 pines de entrada / salida digital, todos los pines admiten interrupción, PWM, I2C, SPI, serie y 1 entrada analógica con entrada máxima de 3,3 V, puede funcionar con 5 V de potencia, tiene conexión micro USB y es compatible con protoboard. El bajo precio y su pequeño tamaño la han convertido en mi tabla ESP favorita.
Además, la versión D1 mini pro de la placa viene con la opción de conectar una antena externa, aumentando significativamente el rango de conexión (rango de +100 m). Además, la placa también viene con una variedad de placas de extensión listas para usar con un tamaño compacto similar.
Paso 2: prepararse para MicroPython en el chip ESP
En este primer paso,
- Conecte la placa ESP a través de USB a su computadora
- Instale el software Esptool para flashear el chip
- Borrar la memoria del chip
- Actualice el chip con el firmware MicroPython
- Instale Rshell para habilitar la interacción de la línea de comandos con su chip
- Instale mpy-cross (para la compilación de archivos.py en binarios)
Conectar la placa a su computadora a través de USBBoards con un puerto serie USB incorporado hace que el UART esté disponible para su PC y es la opción más fácil para comenzar. Para placas sin conexión USB, se puede usar un módulo FTDI con USB a serie para conectar los pines GPIO para flashear conectados al mundo exterior, pero esto no se trata en este tutorial.
Para MicroPython que usa el código MiPy-ESP, el requisito mínimo para el tamaño de la memoria flash del chip es 1 MB. También hay una compilación especial para placas con 512kB, pero no tiene soporte para un sistema de archivos, del cual depende MiPy-ESP.
Cuando se usa un cable USB, la placa se alimenta de su computadora mientras está conectada. Esto también permite programar y depurar a través de la conexión en serie. Cuando se carga el código del proyecto y se implementa su proyecto, se aplica energía externa a los pines de la fuente de alimentación de la placa.
Instalación de Esptool Puede encontrar información sobre el software Esptool en el repositorio de Esptool GitHub. Si desea utilizar Windows / Linux / OSX (MAC), el enlace anterior también cubre eso. El paquete Python se puede instalar mediante
pip instalar esptool
Para los usuarios de Linux, los paquetes de Esptool se mantienen para Debian y Ubuntu, y también se pueden instalar con
sudo apt instalar esptool
Borrado de la memoria flash ESP Con Esptool, borra la memoria flash ESP con el comando
esptool.py --port / dev / ttyUSB0 erase_flash
Descarga del firmware de MicroPyton El firmware de MicroPython reside en un archivo.bin que se puede descargar del sitio web de MicroPython.
La rama principal del proyecto actual del repositorio ha sido probada y está operativa con Micropython v.1.12. Para garantizar el éxito con el marco MiPY-ESP, descargue el archivo 'esp8266-20191220-v1.12.bin' de este enlace y escriba el firmware en el chip mediante el comando:
esptool.py --port / dev / ttyUSB0 --baud 460800 write_flash --flash_size = detectar 0 esp8266-20191220-v1.12.bin
Instalación de Rshell El paquete Rshell permite la interacción de la línea de comandos con su entorno MicroPython instalado en el chip. Se puede encontrar en este enlace. Rshell es un shell simple que se ejecuta en el host y utiliza RAW-REPL de MicroPython para enviar fragmentos de python al pyboard para obtener información del sistema de archivos y copiar archivos desde y hacia el sistema de archivos de MicroPython. REPL son las siglas de Read Evaluate Print Loop, y es el nombre que se le da al indicador interactivo de MicroPython al que puede acceder en el ESP8266. Usar REPL es, con mucho, la forma más fácil de probar su código y ejecutar comandos. Instale Rshell con el comando:
sudo pip instalar rshell
Instalación del compilador mpy-cross MicroPython se puede aplicar con archivos ascii.py cargados en el sistema de archivos del chip. MicroPython también define el concepto de archivos.mpy, que es un formato de archivo contenedor binario que contiene código precompilado y que se puede importar como un módulo.py normal. Al compilar archivos.py en.mpy, habrá más memoria RAM disponible para su código en ejecución, y esto es necesario para tener un módulo central funcional del marco MiPy-ESP.
Para la implementación del código MiPy-ESP, el compilador cruzado mpy-cross MicroPython compila los scripts.py en.mpy antes de cargar el chip. Instale el paquete mpy-cross siguiendo las instrucciones de este enlace. Alternativamente, el comando mpy-cross puede instalarse mediante el comando pip de Python o ejecutarse desde la ruta de la carpeta mpy-cross si clona el repositorio de MicroPython desde GitHub aquí.
¡Ahora tiene MicroPython y todas las herramientas necesarias instaladas para comenzar a construir su primer proyecto MiPy-ESP
Paso 3: Introducción a MiPy-ESP
En este paso
Descargue el marco MyPy-ESP
Descarga del marco MiPy-ESP El proyecto MiPy-ESP se puede encontrar en GitHub en este repositorio de código. Desde GitHub puede descargar la estructura de archivos del repositorio o clonarlo en su computadora
clon de git
Con el repositorio de código instalado en su computadora, ahora tiene todos los módulos de código que necesita para construir un proyecto ESP IoT listo para usar. Más detalles sobre la caja de herramientas en el siguiente paso.
Paso 4: Arquitectura del marco MiPy-ESP
En este paso
aprender sobre el flujo de trabajo del código MiPy-ESP
Arquitectura de código MiPy-ESP
Todos los módulos del marco de Python se encuentran en la carpeta / src del repositorio de código MiPY-ESP. La carpeta src / core contiene los módulos principales que se incluyen en cada proyecto. La carpeta src / drivers tiene una selección de módulos para que varios hardware se conecten a su chip. La carpeta src / utilities contiene módulos de utilidades opcionales para incluir en su proyecto.
Los archivos main.py y config.py se encuentran en la carpeta src /. Estos son los archivos principales que debe editar para crear su proyecto:
config.py:
Este archivo es el archivo de configuración global de su proyecto. Tiene varias configuraciones, todas con comentarios descriptivos en el archivo.
main.py:
Este es el script principal para el bucle de código del microcontrolador. Contiene el código específico de la aplicación en el marco. Tras el arranque del chip, main.py se ejecuta e importa todos los módulos dependientes del proyecto con entradas dadas desde el archivo config.py. El diagrama de flujo anterior muestra el diseño del script main.py.
La figura anterior describe el flujo de trabajo de main.py:
- Al arrancar, el código intenta conectar el chip a la red Wi-Fi. Las redes aplicadas anteriormente y sus contraseñas (encriptadas en el chip) se almacenan en la memoria flash. Los SSID de red y sus contraseñas se pueden proporcionar en el archivo wifi.json en el formato {" SSID1 ":" Contraseña "," SSID ":" Contraseña2 "}. Las redes dadas en este archivo se almacenan, las contraseñas se cifran y el archivo se elimina al arrancar.
- Si no se encuentran redes conocidas, el código configura un servidor web de punto de acceso (AP). El SSID y la contraseña del servidor de chip AP se establecen en el archivo config.py. Al iniciar sesión en el chip SSID, se ofrece una página web para el inicio de sesión del chip en Wi-Fi en 192.168.4.1 Las redes detectadas se muestran en un menú, o el SSID se puede ingresar manualmente (redes ocultas) junto con la contraseña de Wi-Fi. Tras la conexión exitosa del chip a Wi-Fi, el servidor AP se apaga y el código main.py continúa con los siguientes pasos.
-
En la sección Configuración de main.py,
- Se definen funciones para trabajos y devoluciones de llamada (etc. devoluciones de llamada MQTT) y eventos regulares.
- Se establecen diferentes trabajos cronometrados para ejecutar funciones.
- Se establece el cliente broker MQTT
-
El código luego entra en el circuito principal del microcontrolador,
- Comprobación continua de las conexiones de la red y del broker MQTT.
- Suscripciones MQTT,
- E / S de hardware
- y trabajos programados.
- Cuando se pierde la red o la conexión con el agente MQTT, el código intenta restablecerse.
Paso 5: preparación de su código de proyecto
En este paso
- aprender sobre la estructura de archivos del repositorio MiPy-ESP
- prepare su código de proyecto para la carga del chip
Estructura de la carpeta del repositorio La figura anterior describe la estructura de la carpeta del repositorio y enumera los módulos actuales del marco. Su proyecto es etapas en la carpeta src /. Los módulos del marco principal MiPy-ESP residen en src / core, los módulos de utilidades opcionales en src / utilities y los módulos de hardware en src / drivers.
La mayoría de las bibliotecas de hardware de MicroPython disponibles pueden ir a la carpeta de controladores sin ninguna modificación. Todos los controladores actuales se prueban con el marco MiPy-ESP. Con respecto a los módulos en la carpeta utilities /, se agregarán más a medida que cobren vida.
Puesta en escena del código del proyecto El código específico del proyecto debe colocarse en la carpeta src /. Ya están los archivos main.py y config.py que puede editar. También copie las utilidades del proyecto deseadas de src / utilities y src / drivers a src /.
En caso de que desee aprovisionar redes Wi-Fi conocidas y contraseñas al chip, agregue el archivo wifi.json a src /.
Compilar y preparar para cargar Se puede aplicar un Makefile proporcionado para preparar archivos para transferirlos al chip compilando archivos.py en / src, compilando los módulos centrales y transfiriendo los archivos compilados a una nueva carpeta llamada build / mediante el comando
hacer construir
Los archivos en construcción están listos para cargarse en el sistema de archivos del chip. De forma predeterminada, main.py y config.py no se compilan en binario, para poder acceder a ellos fácilmente para inspeccionar los chips implementados. El comando:
hacer limpia
Elimina la carpeta build / y su contenido.
Paso 6: compilar y cargar el código en el microcontrolador
En esta sección
- cargue los archivos preparados en la compilación / desde la última sección
- iniciar y monitorear el código en ejecución
Cargar compilación / archivos con Rshell
Cargue todos los archivos en el directorio / build al chip ESP usando Rshell. Con el microcontrolador conectado a USB, desde la carpeta build / inicie Rshell con el comando
rshell -p / dev / ttyUSB0
Luego, inspeccione los archivos del chip (si los hay)
ls / pyboard
Todos los archivos en el chip se pueden eliminar mediante
rm /pyboard/*.*
Copie todos los archivos del proyecto en build / al chip:
cp *. * / pyboard
Luego inicie la terminal interactiva de Python con el comando
responder
Ahora puede invocar comandos de Python o importar módulos y monitorear la salida en serie del chip desde el módulo de registro MiPy-ESP.
Reinicie el chip presionando el botón de reinicio, o desde la línea de comando presionando
importar principal
o
máquina de importación
y luego
machine.reset ()
Dependiendo de su configuración de registro / depuración en el archivo de configuración del proyecto, la respuesta ahora mostrará mensajes de depuración del chip ESP a través de la conexión en serie.
Con suerte, esto debería ayudarlo a comenzar.
Recomendado:
Introducción a Python - Katsuhiko Matsuda y Edwin Cijo - Conceptos básicos: 7 pasos
Introducción a Python - Katsuhiko Matsuda y Edwin Cijo - Conceptos básicos: Hola, somos 2 alumnos del PAI 2. Queremos enseñarte los conceptos básicos de cómo codificar Python. Fue creado a finales de la década de 1980 por Guido van Rossum en los Países Bajos. Se hizo como sucesor del lenguaje ABC. Su nombre es " Python " porque cuando
Introducción a Visuino - Visuino para principiantes: 6 pasos
Introducción a Visuino | Visuino para principiantes .: En este artículo quiero hablar sobre Visuino, que es otro software de programación gráfica para Arduino y microcontroladores similares. Si eres un aficionado a la electrónica que quiere adentrarse en el mundo de Arduino pero no tienes conocimientos previos de programación
Introducción a Python: 9 pasos
Introducción a Python: Python es un lenguaje de programación de computadoras muy útil y flexible creado por Guido van Rossum. Python también es una aplicación en la Raspberry Pi que interpreta el código que escribe en algo que la Raspberry Pi puede entender y utilizar. En y
Introducción a ESP32 CAM - Transmisión de video usando ESP CAM a través de Wifi - Proyecto de cámara de seguridad ESP32: 8 pasos
Introducción a ESP32 CAM | Transmisión de video usando ESP CAM a través de Wifi | Proyecto de cámara de seguridad ESP32: hoy aprenderemos cómo usar esta nueva placa ESP32 CAM y cómo podemos codificarla y usarla como cámara de seguridad y obtener una transmisión de video a través de wifi
Introducción a ESP32 - Instalación de placas ESP32 en Arduino IDE - Código intermitente ESP32: 3 pasos
Introducción a ESP32 | Instalación de placas ESP32 en Arduino IDE | Código intermitente ESP32: en este instructables veremos cómo comenzar a trabajar con esp32 y cómo instalar placas esp32 en Arduino IDE y programaremos esp 32 para ejecutar código intermitente usando arduino ide