- Što je MicroPython?
- Zašto MicroPython za NodeMCU?
- Što je ESP8266 (NodeMCU)?
- Korišteni hardver
- Instaliranje MicroPython firmwarea za ESP8266
- Komunikacija s NodeMCU s PuTTY
- Učitavanje LED blink koda zasnovanog na Pythonu pomoću Ampy
- MicroPython na ESP8266: Dobivanje temperature i vlažnosti pomoću DHT22
Za početnike koji su zainteresirani za programiranje mikrokontrolera s omogućenom Wi-Fi mrežom poput ESP8266, razumijevanje programskog okruženja ESP-IDF ili Arduino IDE može biti zastrašujući zadatak, kriptična sintaksa jezika C i C ++ zahtijeva više znanja iz računalne znanosti koja je zašto ti jezici nisu uvijek ugodni za početnike, pa ćemo u ovom članku naučiti postavljati i programirati ESP8266 s MicroPythonom, a napokon ćemo podatke o temperaturi i vlažnosti dobiti iz omiljenog senzora temperature i vlažnosti DHT22. Prethodno smo napravili i tutorial o tome kako programirati ESP32 pomoću Micro Pythona, to također možete provjeriti ako vas zanima.
Što je MicroPython?
Možemo reći da je MicroPython inačica pythona izrezana na kockice, dizajnirana za rad s mikrokontrolerima i ugrađenim sustavima. Sintaksa i postupak kodiranja MicroPythona nalikuje pythonu. Dakle, ako već znate python, već znate kako napisati svoj kod pomoću MicroPythona. Ako ste ljubitelj Pythona, možete pogledati ovaj članak.

MicroPython je razvio u Velikoj Britaniji, tim koji je vodio Damion Jones, a oni su pokrenuli Kickstarter dok su bili natrag, gdje su pokrenuli određeni skup razvojnih ploča koje bi radile na firmware-u, što vam omogućuje da na njemu pokrenete MicroPython, firmver je sada izveden za rad na ESP8266, što ćete naučiti u ovom članku.
Zašto MicroPython za NodeMCU?
Python je jedan od najčešće korištenih i do danas jednostavan za učenje programskih jezika. Dakle, uvođenjem MicroPythona, programiranje hardverskih mikrokontrolera postalo je vrlo jednostavno. Ako nikada prije niste programirali mikrokontroler i želite početi učiti programirati, MicroPython je dobar početak.
MicroPython koristi uklonjenu verziju standardnih knjižnica Python, tako da sve standardne knjižnice nisu dostupne. Ali, MicroPython uključuje jednostavne i jednostavne module za povezivanje s hardverom, što znači da je uz pomoć MicroPythona čitanje i upisivanje u GPIO registar postalo jednostavnije.
Krajnji cilj MicroPythona je učiniti programiranje mikrokontrolera što jednostavnijim, tako da ga može koristiti bilo tko. S MicroPythonom, uvoz knjižnica i pisanje koda postaje lako, dolje prikazani kod jednostavan je primjer koji trepće na ugrađenoj LED ploči NodeMCU, o članku ćemo detaljno razgovarati nakon članka.
iz strojnog uvoza Pin iz vremena uvoza sleep LED = Pin (2, Pin.OUT) dok je True: LED.value (ne LED.value ()) sleep (0.5)
Što je ESP8266 (NodeMCU)?
ESP8266 je jeftini Wi-Fi modul, dizajniran za aplikacije povezane s Internetom stvari (IoT).

Dolazi s ulaznim i izlaznim pinovima opće namjene (GPIO), a također podržava niz često korištenih protokola kao što su SPI, I2C, UART i drugi. Ali, najslađa značajka ovog mikrokontrolera je što ima ugrađeni Wi-Fi. Pomoću njega se vrlo lako možemo povezati na bilo koji Wi-Fi od 2,4 GHz.
Sada su osnove izvan načina na koji možemo prijeći na praktični dio gdje ćemo vam pokazati potreban hardver i postupak instalacije MicroPythona na ESP8266 IC.
Korišteni hardver

Popis korištenih materijala
- 1 x Breadboard
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (senzor temperature i vlage)
- 1 x 3 mm LED (dioda koja emitira svjetlost)
- 1 x 1K otpornik
- 5 x kratkospojna žica
Instaliranje MicroPython firmwarea za ESP8266
U ovom članku postoje dva načina za instaliranje firmvera MicroPython na ESP8266. Razgovarat ćemo o obojici, ali prvo ga moramo preuzeti.
Preuzimanje firmvera MicroPython za ESP8266:
Prije nego što povežemo ploču NodeMCU (ESP8266) s našim računalom, moramo preuzeti najnoviju verziju MicroPythona, nakon čega možemo instalirati firmware na NodeMCU, a možete ga preuzeti sa službene stranice za preuzimanje Micropythona
Instaliranje firmvera MicroPython na ESP8266:
Prije nego što možemo instalirati firmware na ESP8266, moramo biti sigurni da imamo odgovarajući pogon za USB u serijski pretvarač, većina ploče NodeMCU koristi CP2102 USB u UART IC pretvarač, zbog čega moramo preuzeti i instalirati upravljački program za pretvarač CP2102 USB u UART. Jednom kada pogon preuzmete i instalirate, moramo preuzeti esptool, alat koji se temelji na pythonu, a napravljen je za čitanje i pisanje firmvera na ESP8266.
Python je najlakši način dobiti putem Microsoftove trgovine, odatle morate preuzeti i instalirati kopiju Pythona. Jednom kada je Python instaliran, možemo koristiti naredbu pip3 install esptool za instalaciju esptool-a. Postupak će izgledati poput nečega na slici ispod.

Jednom instaliran, provjerite pristupate li esptool s naredbenog terminala.
Da biste to učinili, samo pokrenite naredbu, verzija esptool.py ako dobijete prozor poput donje slike, uspješno ste instalirali esptool na svoje računalo sa sustavom Windows.
A ako imate problema s pristupom esptoolu iz naredbenog prozora, pokušajte dodati puni put instalacije u varijablu okruženja Windows.
Pronalaženje luke dodijeljene za ploču NodeMCU:
Sada moramo saznati dodijeljeni port za ploču NodeMCU, a za to jednostavno uđite u prozor upravitelja uređaja i potražite opciju zvanu Ports ako proširite da biste mogli saznati priključak povezan s pločom NodeMCU. Nama izgleda kao slika prikazana dolje.
Brisanje flash memorije uređaja ESP8266:
Sada smo shvatili pridruženi COM priključak, možemo pripremiti NodeMCU modul brisanjem njegove flash memorije. Da biste to učinili, koristi se sljedeća naredba, esptool.py --port COM6 erase_flash . Proces će izgledati otprilike kao na slici ispod.
Instaliranje firmvera:
Pokretanjem sljedeće naredbe instalirat će se binarni MicroPython na ploču NodeMCU, jednom instaliranom binarnim sustavom omogućit ćemo prijenos naših python programa i komunikaciju s petljom Read Evaluate and Print .
esptool.py --port COM6 --boud 460800 write_flash --flash_size = otkriti 0 esp8266-20200911-v1.13.bin
Postupak će izgledati slično slici dolje,
Imajte na umu da je u vrijeme instalacije binarni softver bio na mojoj radnoj površini, tako da imam CD na radnoj površini i pokrećem naredbu.
Sad je to gotovo, vrijeme je za komunikaciju s pločom i treptanje nekih LED dioda.
Komunikacija s NodeMCU s PuTTY
Sada započnimo naš prvi program Hello World korištenjem PuTTY, PuTTY da bismo to učinili, trebamo postaviti vrstu veze kao serijsku, zatim postavimo serijsku liniju (u našem slučaju COM6) i na kraju postavimo brzinu na 115200 baud.
Ako je sve napravljeno ispravno, pojavit će se prozor sličan donjoj slici i u njega možemo lako napisati svoj kôd, to obično radi poput iPython terminala. Također, pokrenuli smo svoj prvi zdravi svjetski program koji se sastoji od samo dva jednostavna retka, a nakon što smo stavili izjavu za ispis, dobili smo odgovor.
Učitavanje LED blink koda zasnovanog na Pythonu pomoću Ampy
Pristup MicroPythonu uz pomoć PuTTY terminala dobar je način komunikacije s ESP modulom, ali još jedan jednostavan način je učitavanje koda putem alata Adafruit Ampy, za instalaciju ampy-a možemo jednostavno pokrenuti jednostavnu pip3 instalaciju adafruit- ampy naredba i instalirat će ampy na naše računalo. Proces će izgledati otprilike kao na slici ispod.
Kad to jednom dobijete, i dalje su nam potrebne informacije o serijskom priključku na koji smo povezani. U našem slučaju to je COM6. Sada samo trebamo napisati naš LED Blink kod s MicroPythonom, za to smo se poslužili vodičem navedenim na službenom web mjestu micro python
Uz pomoć vodiča izrađuje se sljedeći kod.
iz strojnog uvoza Pin iz vremena uvoza sleep LED = Pin (2, Pin.OUT) dok je True: LED.value (ne LED.value ()) sleep (0.5)
Kod je vrlo jednostavan. Prvo, iz računala uvozimo biblioteku Pin. Razred pin. Dalje, moramo uvesti knjižnicu vremena koja se koristi za izradu funkcije odgode. Dalje, postavljamo Pin2 (koji je ugrađena LED dioda pričvršćena na modul ESP12E) kao izlaz. Dalje, postavili smo neko vrijeme petlju u kojoj uključujemo i isključujemo LED sa kašnjenjem od 500 ms.
Tako prenosite kod na NodeMCU. Da biste to učinili, morate pokrenuti sljedeću ampy naredbu, ampy --port COM6 stavite main.py
Ako se izvrši ispravak programa, vidjet ćete kako trepće LED kao što je prikazano dolje.
Napomena: Tijekom prijenosa koda postavila sam trenutnu lokaciju upita na svoju radnu površinu, tako da nisam trebala navesti puni put za datoteku main.py ako to nije slučaj, jer trebate navesti puni put za svoj glavni.py datoteku.
Dalje, prelazimo na dobivanje podataka o temperaturi i vlažnosti s DHT22 senzora.
MicroPython na ESP8266: Dobivanje temperature i vlažnosti pomoću DHT22
Shema za povezivanje DHT22 s NodeMCU:
Kompletni dijagram sklopa za ovaj projekt nalazi se u nastavku. Za stvaranje ovog kruga koristio sam fritzing.

Kao što vidite, sklop je vrlo jednostavan i lako se može izgraditi na pločici pomoću kratkospojnih žica. Kompletni sklop može se napajati pomoću mikro-USB priključka na NodeMCU. Moja postavka hardvera prikazana je u nastavku.
Kodirati:
Vrlo je lako dobiti podatke o temperaturi i vlažnosti s DHT22 ili DHT11 senzora pomoću MicroPythona, jer MicroPython firmware koji smo ranije instalirali dolazi s ugrađenom DHT knjižnicom.
1. Naš kôd započinjemo uvozom DHT knjižnice i knjižnice pinova iz klase stroja.
import dht from machine import Pin
2. Dalje, kreiramo DHT objekt koji se odnosi na pin, u koji smo priključili naš senzor.
senzor = dht.DHT22 (iglica (14))
3. Konačno, za mjerenje vrijednosti senzora moramo upotrijebiti sljedeće tri naredbe.
sensor.measure () sensor.temperature () sensor.humidity ()
Za konačni kod stavljamo ga u neko vrijeme i ispisujemo vrijednosti koje označavaju kraj našeg koda. Također, senzoru DHT22 trebaju 2 sekunde prije nego što može pročitati bilo kakve podatke, pa moramo dodati kašnjenje od 2 sekunde.
iz strojnog uvoza Privremeni privremeni uvoz spavanja uvoz dht dht22 = dht.DHT22 (pribadača (14)) dok je True: try: sleep (2) dht22.measure () temp = dht22.temperature () hum = dht22.humidity () print ('Temperatura:% 3.2f C'% temp) ispis ('Vlažnost:% 3.2f %%'% hum), osim OSError kao e: print ('Nije uspjelo čitanje podataka sa senzora DHT22.')
Nakon što završimo s kodiranjem, možemo prenijeti kôd uz pomoć naredbe ampy.
ampy --port COM6 stavite main.py
Nakon uspješnog izvršavanja koda, možete pratiti vrijednosti temperature i vlažnosti na bilo kojem serijskom monitoru. Koristio sam kit i kao što možete vidjeti dolje, uspio sam primiti vrijednosti temperature i vlažnosti na COM5.
Nadam se da ste uživali u članku i naučili nešto korisno. Ako imate bilo kakvih pitanja, možete ih ostaviti u odjeljku za komentare u nastavku ili na našim forumima objaviti druga tehnička pitanja.
