- Què és MicroPython?
- Per què MicroPython per a NodeMCU?
- Què és un ESP8266 (NodeMCU)?
- Maquinari utilitzat
- Instal·lació del microprogramari MicroPython per a ESP8266
- Comunicació amb NodeMCU amb PuTTY
- Carregant un codi de parpelleig LED basat en Python mitjançant Ampy
- MicroPython a ESP8266: obtenir temperatura i humitat amb DHT22
Per a un principiant interessat a programar microcontroladors habilitats per a Wi-Fi com l’ESP8266, entendre l’entorn de programació ESP-IDF o l’IDE Arduino pot ser una tasca descoratjadora, la sintaxi críptica dels llenguatges C i C ++ requereix més coneixement d’informàtica. per què aquests idiomes no sempre són amigables per als principiants, de manera que en aquest article aprendrem a configurar i programar un ESP8266 amb MicroPython i, finalment, obtindrem les dades de temperatura i humitat del nostre sensor DHT22 de temperatura i humitat preferit. Anteriorment, també hem fet un tutorial sobre com programar ESP32 amb Micro Python, també podeu comprovar-ho si us interessa.
Què és MicroPython?
Podem dir que MicroPython és una versió tallada en daus de Python, dissenyada per treballar amb microcontroladors i sistemes incrustats. La sintaxi i el procés de codificació de MicroPython s’assemblen a python. Per tant, si ja coneixeu Python, ja sabeu com escriure el vostre codi mitjançant MicroPython. Si sou fan de Python podeu consultar aquest article.

MicroPython va ser desenvolupat al Regne Unit, per un equip dirigit per Damion Jones, i van llançar un Kickstarter quan eren enrere, on van llançar un conjunt particular de taules de desenvolupament que estarien executant firmware, que us permet executar MicroPython a sobre El microprogramari s'ha portat a executar-se a l'ESP8266, que en aquest article aprendreu.
Per què MicroPython per a NodeMCU?
Python és un dels llenguatges de programació més utilitzat i fàcil d’aprendre fins ara. Així, amb la introducció de MicroPython, la programació de microcontroladors basats en maquinari es va fer molt fàcil. Si mai no heu programat cap microcontrolador i voleu començar a aprendre a programar, MicroPython és un bon començament.
MicroPython utilitza una versió despullada de les biblioteques estàndard de Python, de manera que totes les biblioteques estàndard no estan disponibles. Però, MicroPython inclou mòduls senzills i fàcils d’utilitzar per connectar-se amb el maquinari, cosa que significa que, amb l’ajut de MicroPython, llegir i escriure en un registre GPIO és molt més senzill.
L’objectiu final de MicroPython és fer que la programació dels microcontroladors sigui el més senzilla possible, de manera que qualsevol persona pugui utilitzar-la. Amb la importació de biblioteques de MicroPython i l’escriptura de codis es fa més fàcil, el codi que es mostra a continuació és un exemple senzill que parpelleja el LED integrat de la placa NodeMCU. Després de l’article, parlarem detalladament del codi.
de la importació de la màquina Pin de la importació de temps LED LED = Pin (2, Pin.OUT) mentre que True: LED.value (no LED.value ()) sleep (0,5)
Què és un ESP8266 (NodeMCU)?
L'ESP8266 és un mòdul Wi-Fi de baix cost, dissenyat per a aplicacions relacionades amb Internet of Things (IoT).

Ve amb pins d'entrada i sortida d'ús general (GPIO) i també admet una varietat de protocols d'ús com SPI, I2C, UART i molt més. Però, la característica més divertida d’aquest microcontrolador és que té Wi-Fi integrat. Amb ell, podem connectar-nos a qualsevol Wi-Fi de 2,4 GHz molt fàcilment.
Ara els conceptes bàsics estan fora de la nostra manera de passar a la part pràctica on us mostrarem el maquinari requerit i el procés d’instal·lació de MicroPython a l’IC ESP8266.
Maquinari utilitzat

Llista de materials utilitzats
- 1 x Taula de pa
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (sensor de temperatura i humitat)
- 1 x 3mm LED (díode emissor de llum)
- Resistència 1 x 1K
- 5 x filferro de pont
Instal·lació del microprogramari MicroPython per a ESP8266
En aquest article hi ha dues maneres d’instal·lar el microprogramari MicroPython a l’ESP8266. Parlarem d’ambdós, però primer, hem de descarregar-lo.
Descàrrega del microprogramari MicroPython per a ESP8266:
Abans de connectar la placa NodeMCU (ESP8266) al nostre PC, hem de descarregar la versió més recent de MicroPython després que puguem instal·lar el microprogramari al NodeMCU. Podeu descarregar-lo des de la pàgina oficial de descàrrega de Micropython.
Instal·lació del microprogramari MicroPython a ESP8266:
Abans de poder instal·lar el microprogramari a l’ESP8266, hem d’assegurar-nos que tenim la unitat adequada per al convertidor USB a sèrie, la majoria de la placa NodeMCU utilitza un IC convertidor CP2102 USB a UART, motiu pel qual hem de descarregar i instal·lar el controlador del convertidor CP2102 USB a UART, un cop descarregada i instal·lada la unitat, hem de descarregar l’esptool, que és una eina basada en python creada per llegir i escriure el firmware a l’ESP8266.
La forma més senzilla d’obtenir Python és mitjançant Microsoft Store, des d’allà heu de descarregar i instal·lar una còpia de Python. Un cop instal·lat Python, podem utilitzar l’ ordre pip3 install esptool per instal·lar l’esptool. El procés s’assemblarà a la imatge següent.

Un cop instal·lat, comproveu si accediu a l’esptool des del terminal d’ordres.
Per fer-ho, només cal que executeu l’ordre, versió esptool.py , si teniu una finestra com la imatge següent, heu instal·lat correctament esptool al vostre PC amb Windows.
I si teniu problemes per accedir a l’esptool des de la finestra d’ordres, proveu d’afegir el camí d’instal·lació complet a la variable d’entorn de Windows.
Com es troba el PORT assignat al tauler NodeMCU:
Ara hem d’esbrinar el port assignat per a la placa NodeMCU, per fer-ho, només cal que aneu a la finestra del gestor de dispositius i busqueu una opció anomenada Ports si amplieu que podeu esbrinar el port associat a la placa NodeMCU. Per a nosaltres, sembla la imatge que es mostra a continuació.
Esborrar la memòria flash de l'ESP8266:
Ara hem descobert el port COM associat, podem preparar el mòdul NodeMCU esborrant-ne la memòria flash. Per fer-ho, s'utilitza l'ordre següent, esptool.py --port COM6 erase_flash . El procés s’assemblarà a la imatge següent.
Instal·lació del firmware:
Si executeu l'ordre següent, s'instal·larà el binari MicroPython a la placa NodeMCU, un cop instal·lat aquest binari ens permetrà carregar els nostres programes python i comunicar-nos amb el bucle de lectura i avaluació .
esptool.py --port COM6 --baud 460800 write_flash --flash_size = detectar 0 esp8266-20200911-v1.13.bin
El procés s’assemblarà a la imatge següent,
Tingueu en compte que en el moment de la instal·lació, el binari estava al meu escriptori, de manera que tinc un CD a l'escriptori i executo l'ordre.
Ara ja està, és hora de comunicar-se amb la placa i parpellejar alguns LEDs.
Comunicació amb NodeMCU amb PuTTY
Ara comencem el nostre primer programa Hello World fent servir PuTTY, PuTTY per fer-ho, doncs, hem d’establir el tipus de connexió com a sèrie, a continuació, establim la línia de sèrie (en el nostre cas és COM6) i, finalment, establim la velocitat a 115200 baud.
Si tot es fa correctament, apareixerà una finestra similar a la imatge següent i podem escriure-hi fàcilment el codi, normalment funciona com un terminal iPython. A més, hem executat el nostre primer programa hello world, que és només dues línies simples, i un cop hem publicat la nostra declaració impresa, obtenim la nostra resposta.
Carregant un codi de parpelleig LED basat en Python mitjançant Ampy
Accedir a MicroPython amb l’ajut del terminal PuTTY és una bona manera de comunicar-se amb el mòdul ESP, però una altra manera fàcil és carregar el codi mitjançant l’eina Adafruit Ampy, per instal·lar ampy, només podem executar una simple instal·lació de pip3 adafruit- ampy i instal·larà ampy al nostre PC. El procés s’assemblarà a la imatge següent.
Un cop tingueu això, encara necessitem la nostra informació sobre el port sèrie al qual estem connectats. En el nostre cas, és COM6. Ara només hem d’escriure el nostre codi LED Blink amb MicroPython, per això hem utilitzat la guia que es proporciona al lloc web oficial de micro python
Amb l'ajut de la guia, es fa el següent codi.
de la importació de la màquina Pin de la importació de temps LED LED = Pin (2, Pin.OUT) mentre que True: LED.value (no LED.value ()) sleep (0,5)
El codi és molt senzill. Primer, importem la biblioteca Pin des de la màquina. Classe de pins. A continuació, hem d’importar la biblioteca de temps, que s’utilitza per fer una funció de retard. A continuació, establim Pin2 (que és el LED incorporat connectat al mòdul ESP12E) com a sortida. A continuació, configurem un bucle while on encenem i apagem el LED amb un retard de 500 ms.
Així és com pengeu el codi a NodeMCU. Per fer-ho, heu d'executar la següent ordre ampy , ampy --port COM6 posa main.py
Si el programa s'executa corregit, veureu un LED parpellejant com es mostra a continuació.
Nota: Mentre penjava el codi, vaig establir la meva ubicació de sol·licitud actual al meu escriptori, de manera que no calia especificar un camí complet per al fitxer main.py si no és així, heu d'especificar el camí complet per al vostre fitxer principal. fitxer.py.
A continuació, passem a obtenir les dades de temperatura i humitat del sensor DHT22.
MicroPython a ESP8266: obtenir temperatura i humitat amb DHT22
Esquema per a la interfície de DHT22 amb NodeMCU:
El diagrama complet del circuit d’aquest projecte es pot trobar a continuació. He utilitzat el fritzing per crear aquest circuit.

Com podeu veure, el circuit és molt senzill i es pot construir fàcilment sobre una taula mitjançant cables de pont. El circuit complet es pot alimentar mitjançant el port micro-USB de NodeMCU. La configuració del maquinari es mostra a continuació.
Codi:
És molt fàcil obtenir les dades de temperatura i humitat d’un sensor DHT22 o DHT11 mitjançant un MicroPython, ja que el microprogramari MicroPython que hem instal·lat anteriorment inclou una biblioteca DHT integrada.
1. Comencem el nostre codi important la biblioteca DHT i la biblioteca de pins de la classe de màquina.
importar dht des del pin d'importació de màquina
2. A continuació, creem un objecte DHT que fa referència al pin, al qual hem connectat el sensor.
sensor = dht.DHT22 (Pin (14))
3. Finalment, per mesurar el valor del sensor, hem d’utilitzar les tres ordres següents.
sensor.measure () sensor.temperature () sensor.humidity ()
Per al codi final, el posem en un bucle while i imprimim els valors que marquen el final del nostre codi. A més, el sensor DHT22 necessita 2 segons abans de poder llegir qualsevol dada, de manera que hem d’afegir un retard de 2 segons.
des de la importació de la màquina Pin de la importació del temps importació del somni dht dht22 = dht.DHT22 (Pin (14)) mentre és True: proveu: sleep (2) dht22.measure () temp = dht22.temperature () hum = dht22.humidity () imprimir ("Temperatura:% 3.2f C"% temp) d'impressió ("Humitat:% 3.2f %%"% hum) excepte OSError com a e: print ("No s'han pogut llegir les dades del sensor DHT22.")
Un cop hàgim acabat de codificar, podem carregar el codi amb l'ajut de l'ordre ampy.
ampy --port COM6 posa main.py
Després d'executar el codi amb èxit, podeu controlar els valors de temperatura i humitat en qualsevol monitor sèrie. He utilitzat massilla i, com podeu veure a continuació, he pogut rebre valors de temperatura i humitat a COM5.
Espero que us hagi agradat l'article i hàgiu après alguna cosa útil. Si teniu cap pregunta, podeu deixar-les a la secció de comentaris o fer servir els nostres fòrums per publicar altres preguntes tècniques.
