Taula de continguts:
- Pas 1: el tauler Wemos D1 Mini ESP8266
- Pas 2: Preparació per a MicroPython al xip ESP
- Pas 3: Introducció a MiPy-ESP
- Pas 4: l'arquitectura del marc MiPy-ESP
- Pas 5: Preparació del codi del projecte
- Pas 6: Compilar i penjar el codi al microcontrolador
Vídeo: Introducció a Python per a ESP8266 i ESP32: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Bacground
L’ESP8266 i el seu germà petit ESP32 són microxips Wi-Fi de baix cost amb pila TCP / IP completa i capacitat de microcontrolador. El xip ESP8266 va arribar a l'atenció de la comunitat de fabricants el 2014. Des de llavors, el baix preu (<5 USD), la seva capacitat Wi-Fi, una memòria flash incorporada d'1 o 4 MB i una gran varietat de desenvolupament disponible, ha convertit el xip ESP en un dels microcontroladors més populars per a projectes de bricolatge WiFi i IoT.
MicroPython és una implementació senzilla i eficient del cada vegada més popular llenguatge de programació Python que inclou un petit subconjunt de la biblioteca estàndard Python i està optimitzat per funcionar amb microcontroladors.
La combinació d’aquests dos és una opció molt interessant per a projectes de bricolatge, tant per a principiants com per a usuaris més avançats.
El projecte MiPy-ESP
El 2015, els meus primers projectes amb ESP8266 van començar amb el xip ESP-01 amb Arudions per executar comandes AT de xip a través de connexió sèrie. Després d'això, durant els propers anys vaig aplicar el nucli Arduino per a ESP8266 per programar els xips amb el llenguatge C ++. Funciona bé, però per a un entusiasta de Python, el meu descobriment de la implementació de MicroPython de Python 3 va ser una gran notícia.
El projecte MiPy-ESP és un marc flexible que aplica MicroPython per a projectes IoT Python de pila completa als microcontroladors de la família ESP.
El marc està desenvolupat per l'equip de desenvolupadors de programes del Comitè Tècnic de LeGarage (LG-TC-SWDT-01) amb l'objectiu de substituir el codi basat en C ++ ja establert per a les nostres aplicacions de microcontroladors.
El projecte proporciona funcions bàsiques com
- Procediments de connexió de xarxa
- Servidor web de punts d’accés de xip (per a connexió wifi i publicació de pàgines web de xip per a E / S de dades)
- Funcionalitats MQTT
- Registre / depuració
- Programació d'esdeveniments de microcontrolador
- Rutines d'E / S de maquinari
Amb un script de codi compacte principal (main.py), tot amb configuració global (config.py).
Aquest codi de microcontrolador funciona amb un manteniment robust de les connexions de xip a la xarxa WiFi i als corredors MQTT. Els mòduls MicroPython existents per a diversos maquinaris es poden integrar fàcilment al sistema.
El marc MiPy-ESP s’ha convertit en l’eix vertebrador de tots els nostres projectes IoT d’electrònica de passatemps que impliquen microcontroladors de la família ESP. S'ha provat en diverses plaques de la família ESP, com les plaques NodeMCU, Wemos i Lolin.
El següent tutorial és una guia sobre com començar amb els microcontroladors de la família ESP i MicroPython mitjançant el marc MiPy-ESP.
Pas 1: el tauler Wemos D1 Mini ESP8266
El marc MiPy-ESP funciona amb la majoria de microcontroladors basats en ESP8266.
La mini placa de desenvolupament Wemos D1 es basa en el xip ESP-8266EX. Amb una petjada de 2,5 x 3,5 cm, compta amb memòria flash de 4 MB, 11 pins d’entrada / sortida digitals, tots els pins admeten interrupcions, PWM, I2C, SPI, sèrie i 1 entrada analògica amb entrada màxima de 3,3 V, poden funcionar amb una potència de 5 V, té connexió micro USB i és compatible amb taulers de suport. El seu baix preu i la seva petita mida l’han convertit en el meu tauler ESP preferit.
A més, la versió D1 mini pro de la placa inclou l'opció de connectar una antena externa, augmentant significativament el rang de connexió (+100 m d'abast). A més, el tauler també inclou una gran varietat de taulers d’extensió fora de caixa amb una mida compacta similar.
Pas 2: Preparació per a MicroPython al xip ESP
En aquest primer pas, ho faràs
- Connecteu la placa ESP mitjançant USB a l'ordinador
- Instal·leu el programari Esptool per fer flaixar el xip
- Esborra la memòria del xip
- Feu flaixar el xip amb el microprogramari MicroPython
- Instal·leu Rshell per habilitar la interacció de la línia d'ordres amb el vostre xip
- Instal·leu mpy-cross (per a la compilació de fitxers.py a fitxers binaris)
Connectar la placa a l’ordinador mitjançant USBBoards amb un port sèrie USB incorporat fa que l’UART estigui disponible per al vostre PC i és l’opció més senzilla per començar. Per a les plaques sense connexió USB, es pot utilitzar un mòdul FTDI amb USB a sèrie per connectar els pins GPIO per parpellejar connectats al món exterior, però això no es contempla en aquest tutorial.
Per a MicroPython que utilitza el codi MiPy-ESP, el requisit mínim per a la mida del flaix del xip és d’1 MB. També hi ha una versió especial per a taules de 512 KB, però això no admet un sistema de fitxers, del qual depèn MiPy-ESP.
Quan s’utilitza un cable USB, la placa s’alimenta de l’ordinador mentre està connectat. Això també permet programar i depurar sobre la connexió sèrie. Quan es penja el codi del projecte i es desplega el projecte, s’aplica una alimentació externa als pins d’alimentació de la placa.
Podeu trobar informació sobre el programari Esptool al dipòsit GitHub d’Esptool. Si voleu utilitzar el Windows / Linux / OSX (MAC), l'enllaç anterior també ho inclou. El paquet Python el pot instal·lar
pip instal·lar esptool
Per als usuaris de Linux, els paquets d'Esptool es mantenen per a Debian i Ubuntu, i també es poden instal·lar amb
sudo apt install esptool
Esborrar memòria flash ESP Amb l’ús d’Esptool, esborreu la memòria flash ESP amb l’ordre
esptool.py --port / dev / ttyUSB0 erase_flash
Descàrrega del microprogramari MicroPyton El microprogramari MicroPython resideix en un fitxer.bin que es pot descarregar des del lloc web MicroPython.
S'ha provat la branca mestra actual del projecte del repo i és operativa amb Micropython v.1.12. Per tal d'assegurar l'èxit amb el marc MiPY-ESP, descarregueu el fitxer 'esp8266-20191220-v1.12.bin' des d'aquest enllaç i escriviu el firmware al xip mitjançant l'ordre:
esptool.py --port / dev / ttyUSB0 --baud 460800 write_flash --flash_size = detectar 0 esp8266-20191220-v1.12.bin
Instal·lació de Rshell El paquet Rshell permet la interacció de la línia d’ordres amb el vostre entorn MicroPython instal·lat al xip. Es pot trobar en aquest enllaç. Rshell és un intèrpret d'ordres senzill que s'executa a l'amfitrió i que utilitza el REPL de MicroPython per enviar fragments de python al tauler per obtenir informació del sistema de fitxers i copiar fitxers al sistema de fitxers de MicroPython. REPL significa Read Evaluate Print Loop (Llegir avaluar el bucle d’impressió) i és el nom que rep l’indicatiu interactiu de MicroPython al qual podeu accedir des de l’ESP8266. L’ús de REPL és, amb diferència, la forma més senzilla de provar el vostre codi i executar ordres. Instal·leu Rshell mitjançant l'ordre:
sudo pip install rshell
La instal·lació del compilador mpy-cross MicroPython es pot aplicar amb fitxers ascii.py carregats al sistema de fitxers del xip. MicroPython també defineix el concepte de fitxers.mpy que és un format de fitxer de contenidor binari que conté codi precompilat i que es pot importar com un mòdul.py normal. En compilar fitxers.py a.mpy, hi haurà més memòria RAM disponible per al vostre codi en execució, i això és necessari per tenir un mòdul bàsic del marc MiPy-ESP.
Per al desplegament de codi MiPy-ESP, un compilador creuat de MicroPython mpy-cross compila els scripts.py a.mpy abans de pujar el xip. Instal·leu el paquet mpy-cross seguint les instruccions d’aquest enllaç. Com a alternativa, l'ordre mpy-cross es pot instal·lar mitjançant l'ordre Python pip o executar-se des del camí de la carpeta mpy-cross si cloneu aquí el dipòsit MicroPython de GitHub.
Ara teniu instal·lat MicroPython i totes les eines necessàries per començar a construir el vostre primer projecte MiPy-ESP
Pas 3: Introducció a MiPy-ESP
En aquest pas ho faràs
Descarregueu el marc MyPy-ESP
Descàrrega del marc MiPy-ESP El projecte MiPy-ESP es pot trobar a GitHub en aquest dipòsit de codis. Des de GitHub podeu descarregar l'estructura del fitxer del dipòsit o clonar-la al vostre ordinador
git clone
Amb el dipòsit de codis instal·lat a l’ordinador, ara teniu tots els mòduls de codi que necessiteu per crear un projecte d’IoT d’ESP que no es pugui crear. Més detalls sobre la caixa d’eines del pas següent.
Pas 4: l'arquitectura del marc MiPy-ESP
En aquest pas ho faràs
Obteniu informació sobre el flux de treball del codi MiPy-ESP
Arquitectura de codi MiPy-ESP
Tots els mòduls de framework Python es troben a la carpeta / src del dipòsit de codis MiPY-ESP. La carpeta src / core conté els mòduls bàsics que van a cada projecte. La carpeta src / drivers té una selecció de mòduls per a diversos maquinaris que es connecten al vostre xip. La carpeta src / utilities conté mòduls d’utilitat opcionals per incloure al vostre projecte.
Els fitxers main.py i config.py es troben a la carpeta src /. Aquests són els fitxers principals que cal editar per crear el vostre projecte:
config.py:
Aquest fitxer és el fitxer de configuració global del vostre projecte. Té diversos paràmetres, tots amb comentaris descriptius al fitxer.
main.py:
Aquest és el guió principal del bucle de codi del microcontrolador. Conté el codi específic de l'aplicació al framework. En arrencar el xip, main.py executa i importa tots els mòduls dependents del projecte amb entrades donades del fitxer config.py. El diagrama de flux anterior mostra el disseny de l'script main.py.
La figura anterior descriu el flux de treball de main.py:
- En arrencar, el codi intenta connectar el xip a la xarxa Wi-Fi. Les xarxes aplicades anteriorment i les seves contrasenyes (xifrades al xip) s’emmagatzemen a la memòria flash. Els SSID de xarxa i les seves contrasenyes es poden subministrar al fitxer wifi.json al format {" SSID1 ":" Contrasenya "," SSID ":" Contrasenya2 "}. Les xarxes donades en aquest fitxer s’emmagatzemen, les contrasenyes es xifren i el fitxer s’elimina en arrencar.
- Si no es troba cap xarxa que es conegui, el codi estableix un servidor web de punt d’accés (AP). El SSID i la contrasenya del servidor AP de xip s’estableixen al fitxer config.py. En iniciar la sessió al SSID del xip, es proporciona una pàgina web per iniciar la sessió del xip a Wi-Fi a 192.168.4.1. Les xarxes detectades es mostren en un menú o es pot introduir SSID manualment (xarxes ocultes) juntament amb una contrasenya de Wi-Fi.. Quan es connecta correctament el xip a Wi-Fi, el servidor AP s'apaga i el codi main.py continua amb els seus passos següents.
-
A la secció Configuració de main.py,
- es defineixen funcions per a feines i devolucions de trucades (etc. devolucions de trucada MQTT) i esdeveniments regulars.
- Es configuren diferents treballs temporitzats per a les funcions en execució.
- S’estableix el client broker MQTT
-
El codi entra al bucle principal del microcontrolador,
- comprovació contínua de les connexions del corredor de xarxa i MQTT,
- Subscripcions a MQTT,
- E / S de maquinari
- i feines programades.
- En perdre la connexió de xarxa o d’agent MQTT, el codi intenta restablir-lo.
Pas 5: Preparació del codi del projecte
En aquest pas ho faràs
- coneixeu l’estructura de fitxers del dipòsit MiPy-ESP
- prepara el codi del projecte per a la pujada de xips
La figura anterior descriu l’estructura de carpetes del dipòsit i llista els mòduls actuals del framework. El vostre projecte es troba en etapes a la carpeta src /. Els mòduls bàsics del marc MiPy-ESP resideixen a src / core, els mòduls d’utilitat opcionals a src / utilities i els mòduls de maquinari a src / drivers.
La majoria de les biblioteques de maquinari MicroPython disponibles poden entrar al controlador / carpeta sense cap modificació. Tots els controladors actuals es proven amb el marc MiPy-ESP. Pel que fa als mòduls de la carpeta utilitats, se n’afegiran més a mesura que cobrin vida.
Etapa del codi del projecte El vostre codi específic del projecte s’ha de col·locar a la carpeta src /. Ja hi ha els fitxers main.py i config.py que podeu editar. Copieu també les utilitats del projecte desitjades de src / utilities i src / drivers a src /.
En cas que vulgueu subministrar xarxes i contrasenyes Wi-Fi conegudes al xip, afegiu el fitxer wifi.json a src /.
Es pot aplicar un Makefile proporcionat per preparar fitxers per transferir-los al xip compilant fitxers.py a / src, compilant els mòduls bàsics i transferint els fitxers compilats a una nova carpeta anomenada build / per l'ordre
fer construir
Els fitxers de la compilació estan preparats per carregar-los al sistema de fitxers del xip. Per defecte, main.py i config.py no es compilen a binaris, per accedir-hi fàcilment per a la inspecció dels xips desplegats. L'ordre:
fer net
Suprimeix la compilació / carpeta i el seu contingut.
Pas 6: Compilar i penjar el codi al microcontrolador
En aquesta secció ho faràs
- pengeu els fitxers preparats a la compilació / de la darrera secció
- iniciar i controlar el codi en execució
Càrrega de fitxers build / build amb Rshell
Pengeu tots els fitxers del directori / build al xip ESP mitjançant Rshell. Amb el microcontrolador connectat a USB, des de la compilació / carpeta inicieu Rshell amb l'ordre
rshell -p / dev / ttyUSB0
A continuació, inspeccioneu els fitxers de xips (si n’hi ha) mitjançant
ls / pyboard
Tots els fitxers del xip es poden eliminar
rm /pyboard/*.*
Copieu tots els fitxers de projecte a la compilació / al xip:
cp *. * / pyboard
A continuació, inicieu el terminal interactiu de Python mitjançant l'ordre
resposta
Ara podeu invocar ordres de Python o importar mòduls i supervisar la sortida sèrie del xip des del mòdul de registre MiPy-ESP.
Reinicieu el xip prement el botó de reinicialització o des de la línia d'ordres
importació principal
o bé
màquina d'importació
i llavors
machine.reset ()
Depenent de la configuració de registre / depuració del fitxer de configuració del projecte, la resposta ara mostrarà els missatges de depuració des del xip ESP a través de la connexió sèrie.
Esperem que això us permeti començar.
Recomanat:
Introducció a Python - Katsuhiko Matsuda i Edwin Cijo - Conceptes bàsics: 7 passos
Introducció a Python - Katsuhiko Matsuda i Edwin Cijo - Conceptes bàsics: Hola, som 2 estudiants de MYP 2. Volem ensenyar-vos els conceptes bàsics sobre com codificar Python. Va ser creat a finals dels anys 80 per Guido van Rossum als Països Baixos. Es va fer com a successor de la llengua ABC. El seu nom és " Python " perquè quan
Introducció a Python: 9 passos
Introducció a Python: Python és un llenguatge de programació informàtic molt útil i flexible creat per Guido van Rossum. Python també és una aplicació a Raspberry Pi que interpreta el codi que escriviu en alguna cosa que Raspberry Pi pugui entendre i utilitzar. El dia
Introducció a Python: 7 passos (amb imatges)
Comenceu a utilitzar Python: la programació és increïble. És creativa, divertida i proporciona al vostre cervell un entrenament mental. Molts de nosaltres volem aprendre sobre programació, però ens convençem que no podem. Potser té massa matemàtiques, potser l'argot que es llença per espantar
Introducció a ESP32 CAM - Reproducció de vídeo mitjançant ESP CAM mitjançant Wifi - Projecte de càmera de seguretat ESP32: 8 passos
Introducció a ESP32 CAM | Reproducció de vídeo mitjançant ESP CAM a través de Wifi | Projecte de càmera de seguretat ESP32: Avui aprendrem a utilitzar aquesta nova placa ESP32 CAM i com podem codificar-la i utilitzar-la com a càmera de seguretat i obtenir un vídeo en streaming per wifi
Introducció a ESP32 - Instal·lació de plaques ESP32 a Arduino IDE - ESP32 Blink Code: 3 passos
Introducció a ESP32 | Instal·lació de plaques ESP32 a Arduino IDE | ESP32 Blink Code: en aquest instructable veurem com començar a treballar amb esp32 i com instal·lar plaques esp32 a Arduino IDE i programarem esp 32 per executar codi blink amb arduino ide