Sadržaj:
- Korak 1: Wemos D1 Mini ESP8266 ploča
- Korak 2: Priprema za MicroPython na ESP čipu
- Korak 3: Početak rada s MiPy-ESP-om
- Korak 4: MiPy-ESP okvirna arhitektura
- Korak 5: Priprema koda projekta
- Korak 6: Sastavljanje i postavljanje koda na mikrokontroler
Video: Prvi koraci s Pythonom za ESP8266 i ESP32: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Bacground
ESP8266 i njegov mlađi stariji brat ESP32 su jeftini Wi-Fi mikročipovi sa punim TCP/IP stekom i mogućnostima mikrokontrolera. Čip ESP8266 prvi je put privukao pažnju proizvođačke zajednice još 2014. Od tada, niska cijena (<5 USD), njegove Wi-Fi mogućnosti, ugrađena flash memorija od 1 ili 4 MB i raznovrsni dostupni razvoj ploče, učinio je ESP čip jednim od najpopularnijih mikrokontrolera za WiFi i IoT DIY projekte.
MicroPython je mršava i efikasna implementacija sve popularnijeg programskog jezika Python koji uključuje mali podskup standardne biblioteke Python i optimiziran je za rad na mikrokontrolerima.
Kombinacija ova dva načina vrlo je zanimljiva za DIY projekte, kako za početnike tako i za naprednije korisnike.
Projekat MiPy-ESP
Još 2015. moji prvi projekti sa ESP8266 započeli su sa čipom ESP-01 koristeći Arudions za pokretanje AT naredbi čipa preko serijske veze. Nakon toga, narednih godina primjenjivao sam Arduino jezgru za ESP8266 za programiranje čipova sa C ++ jezikom. Ovo dobro funkcionira, ali za ljubitelje Pythona moje otkriće implementacije MicroPythona Pythona 3 bila je odlična vijest.
Projekt MiPy-ESP fleksibilan je okvir koji primjenjuje MicroPython za Python IoT projekte s punim stekom na mikrokontrolerima iz porodice ESP.
Okvir je razvio tim za razvoj softvera LeGarage Technical Comittee (LG-TC-SWDT-01) sa ciljem zamjene već uspostavljenog koda zasnovanog na C ++ za naše aplikacije mikrokontrolera.
Projekt pruža osnovne značajke kao što su
- Postupci povezivanja na mrežu
- Web poslužitelj pristupne točke za čip (za WiFi vezu i posluživanje web stranica čipa za U/I podataka)
- MQTT funkcionalnosti
- Evidentiranje/otklanjanje grešaka
- Zakazivanje događaja mikrokontrolera
- Hardverske I/O rutine
Sa jednim glavnim kompaktnim skriptom koda (main.py), svi sa globalnom konfiguracijom (config.py).
Ovaj kod za mikrokontroler radi sa robusnim održavanjem veza čipova na WiFi mrežu i MQTT posrednicima. Postojeći moduli MicroPython za različite hardvere mogu se lako integrirati u sistem.
Okvir MiPy-ESP postao je okosnica svih naših IoT projekata u hobi elektronici koji uključuju mikrokontrolere iz porodice ESP. Testirano je na nekoliko ploča porodice ESP, poput ploča NodeMCU, Wemos i Lolin.
Sljedeći vodič je vodič za početak rada s mikrokontrolerima porodice ESP i MicroPythonom pomoću okvira MiPy-ESP.
Korak 1: Wemos D1 Mini ESP8266 ploča
Okvir MiPy-ESP radi sa većinom mikrokontrolera zasnovanih na ESP8266.
Mini razvojna ploča Wemos D1 zasnovana je na čipu ESP-8266EX. Na površini od 2,5 x 3,5 cm, ima 4 MB fleš memorije, 11 digitalnih ulazno/izlaznih pinova, sve pinove podržava prekid, PWM, I2C, SPI, serijski i 1 analogni ulaz sa maksimalnim ulazom od 3,3 V, može raditi na napajanju od 5 V, ima mikro USB vezu i kompatibilan je s matičnom pločom. Niska cijena i mala veličina učinili su je mojom omiljenom ESP pločom.
Osim toga, verzija ploče D1 mini pro dolazi s opcijom povezivanja vanjske antene, čime se značajno povećava domet povezivanja (domet +100 m). Uz to, ploča također dolazi s raznim pločama produžnih ploča koje nisu u kutiji sličnih kompaktnih veličina.
Korak 2: Priprema za MicroPython na ESP čipu
U ovom prvom koraku ćete
- Povežite ESP ploču putem USB -a sa računarom
- Instalirajte softver Esptool za fleširanje čipa
- Izbrišite memoriju čipa
- Fleširajte čip pomoću MicroPython firmvera
- Instalirajte Rshell za omogućavanje interakcije komandne linije sa vašim čipom
- Instalirajte mpy-cross (za kompilaciju.py datoteka u binarni format)
Povezivanje ploče s računarom putem USB ploča s ugrađenim USB serijskim portom čini UART dostupnim vašem računaru i najjednostavnija je mogućnost početka. Za ploče bez USB veze, FTDI modul sa USB -om na serijski priključak može se koristiti za povezivanje GPIO pinova za bljeskanje spojenih na vanjski svijet, ali ovo nije obrađeno u ovom vodiču.
Za MicroPython koji koristi MiPy-ESP kôd, minimalni zahtjev za veličinu flash čipa je 1 MB. Postoji i posebna verzija za ploče s 512 KB, ali nema podršku za datotečni sustav, o čemu ovisi MiPy-ESP.
Kada koristite USB kabl, ploču napaja računar dok je spojena. Ovo takođe omogućava programiranje i otklanjanje grešaka preko serijske veze. Kada se šifra projekta učita i vaš projekt bude raspoređen, vanjsko napajanje se primjenjuje preko pinova za napajanje ploče.
Instaliranje Esptool -a Informacije o Esptool softveru možete pronaći u Esptool GitHub spremištu. Ako želite koristiti Windows/Linux/OSX (MAC), gornja veza također pokriva to. Python paket može se instalirati putem
pip install esptool
Za korisnike Linuxa, paketi za Esptool se održavaju za Debian i Ubuntu, a mogu se instalirati i sa
sudo apt install esptool
Brisanje ESP flash memorije Korištenjem Esptool -a brišete ESP flash memoriju naredbom
esptool.py --port /dev /ttyUSB0 erase_flash
Preuzimanje firmvera MicroPyton Firmver MicroPython nalazi se u.bin datoteci koja se može preuzeti sa web lokacije MicroPython.
Trenutna glavna grana repo projekta je testirana i radi sa Micropythonom v.1.12. Kako biste osigurali uspjeh s MiPY-ESP okvirom, preuzmite datoteku 'esp8266-20191220-v1.12.bin' s ove veze i upišite firmver na čip naredbom:
esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = detektiraj 0 esp8266-20191220-v1.12.bin
Instaliranje Rshell -a Paket Rshell omogućava interakciju komandne linije sa vašim MicroPython okruženjem instaliranim na čipu. Može se pronaći na ovom linku. Rshell je jednostavna ljuska koja radi na hostu i koristi MicroPython-ov raw-REPL za slanje python isječaka na pyboard radi dobivanja informacija o datotečnom sistemu, te za kopiranje datoteka u i iz MicroPython-ovog datotečnog sistema. REPL je kratica za Read Evaluate Print Loop i naziv je za interaktivni upit MicroPython kojem možete pristupiti na ESP8266. Korištenje REPL -a je daleko najlakši način za testiranje koda i pokretanje naredbi. Instalirajte Rshell naredbom:
sudo pip install rshell
Instaliranje mpy-cross kompajlera MicroPython se može primijeniti s ascii.py datotekama postavljenim u datotečni sistem čipa. MicroPython također definira koncept.mpy datoteka koje su binarni format datoteke spremnika koji sadrži unaprijed kompajlirani kod i koje se mogu uvesti kao uobičajeni.py modul. Kompilacijom.py datoteka u.mpy, više RAM memorije bit će dostupno za vaš kôd koji radi - a to je potrebno kako bi imali funkcionalni osnovni modul okvira MiPy -ESP.
Za implementaciju koda MiPy-ESP, unakrsni kompajler mpy-cross MicroPython kompajlira.py skripte u.mpy pre učitavanja čipa. Instalirajte mpy-cross paket prema uputama na ovoj vezi. Alternativno, naredba mpy-cross može se instalirati pomoću Python pip naredbe ili pokrenuti sa putanje mape mpy-cross ako ovdje klonirate spremište MicroPython sa GitHub-a.
Sada imate MicroPython i sve potrebne alate instalirane za početak izgradnje vašeg prvog MiPy-ESP projekta
Korak 3: Početak rada s MiPy-ESP-om
U ovom koraku ćete
Preuzmite okvir MyPy-ESP
Preuzimanje MiPy-ESP okviraProjekat MiPy-ESP možete pronaći na GitHub-u u ovom spremištu koda. Sa GitHub -a možete preuzeti strukturu datoteke spremišta ili je klonirati na računar pomoću
git clone
S spremištem koda instaliranim na vašem računaru, sada imate sve module koda koji su vam potrebni za izradu gotovog ESP IoT projekta. Više detalja o alatu u sljedećem koraku.
Korak 4: MiPy-ESP okvirna arhitektura
U ovom koraku ćete
saznajte o toku rada MiPy-ESP koda
MiPy-ESP arhitektura koda
Svi Python framework moduli nalaze se u /src folderu spremišta kodova MiPY-ESP. Fascikla src/core sadrži osnovne module koji idu u svaki projekat. Fascikla src/drivers sadrži izbor modula za različite hardvere koji se mogu povezati na vaš čip. Fascikla src/utilities sadrži opcionalne pomoćne module za uključivanje u vaš projekt.
Datoteke main.py i config.py nalaze se u mapi src/. Ovo su glavne datoteke za uređivanje za izgradnju vašeg projekta:
config.py:
Ova datoteka je globalna konfiguracijska datoteka za vaš projekt. Ima različite postavke, sve s opisnim komentarima u datoteci.
main.py:
Ovo je glavna skripta za petlju koda mikrokontrolera. Sadrži kod specifičan za aplikaciju u okviru. Nakon pokretanja čipa, main.py se pokreće i uvozi sve module zavisne od projekta s danim ulazima iz datoteke config.py. Gornji dijagram toka prikazuje izgled skripte main.py.
Gornja slika opisuje tok rada main.py:
- Prilikom pokretanja, kôd pokušava povezati čip s Wi-Fi mrežom. Ranije primijenjene mreže i njihove lozinke (šifrirane na čipu) pohranjuju se u flash memoriju. Mrežni SSID-ovi i njihove lozinke mogu se dati u datoteci wifi.json u formatu {" SSID1 ":" Lozinka "," SSID ":" Lozinka2 "}. Mreže u ovoj datoteci se pohranjuju, lozinke se šifriraju, a datoteka se briše pri pokretanju.
- Ako već nisu poznate mreže, kôd postavlja web poslužitelj pristupne točke (AP). SSID i lozinka poslužitelja AP poslužitelja postavljaju se u datoteci config.py. Prijavljivanjem na SSID čipa, web stranica za prijavu čipa na Wi-Fi poslužuje se na 192.168.4.1. Otkrivene mreže prikazane su u izborniku ili se SSID može unijeti ručno (skrivene mreže) zajedno s lozinkom za Wi-Fi. Nakon uspješnog povezivanja čipa na Wi-Fi, AP poslužitelj se isključuje i kod main.py nastavlja sa sljedećim koracima.
-
U odjeljku za postavljanje main.py,
- Definirane su funkcije za poslove i povratne pozive (itd. MQTT povratne pozive) i redovni događaji.
- Postavljeni su različiti vremenski zadaci za pokretanje funkcija.
- Uspostavljen je klijent brokera MQTT
-
Kod zatim ide u glavnu petlju mikrokontrolera,
- stalno provjeravajte mrežne i MQTT veze brokera,
- MQTT pretplate,
- hardverski U/I
- i predviđene poslove.
- Nakon gubitka veze s mrežom ili posrednikom MQTT-a, kôd pokušava ponovno uspostaviti.
Korak 5: Priprema koda projekta
U ovom koraku ćete
- saznati o strukturi datoteka spremišta MiPy-ESP
- pripremite svoj projektni kod za postavljanje čipova
Struktura foldera spremišta Gornja slika opisuje strukturu foldera spremišta i navodi trenutne module okvira. Vaš projekat je faza u mapi src/. Core MiPy-ESP okvirni moduli nalaze se u src/jezgri, opcionalni pomoćni moduli u src/pomoćnim programima i hardverski moduli u src/upravljačkim programima.
Većina dostupnih hardverskih biblioteka MicroPython može ići u upravljačke programe/ mapu bez ikakvih izmjena. Svi prisutni upravljački programi testirani su sa MiPy-ESP okvirom. Što se tiče modula u uslužnim programima/ fascikli, bit će dodano više kako ožive.
Postavljanje koda projekta Vaš kod specifičan za projekat treba staviti u src/ folder. Već se nalaze datoteke main.py i config.py koje možete uređivati. Takođe kopirajte tražene pomoćne programe projekta iz src/utilities i src/drivers u src/.
U slučaju da želite omogućiti čip poznatim Wi-Fi mrežama i lozinkama, dodajte datoteku wifi.json u src/.
Sastavljanje i priprema za otpremanje Dostavljeni Makefile se može primijeniti za pripremu datoteka za prijenos na čip sastavljanjem.py datoteka u / src, sastavljanjem osnovnih modula i prenosom prevedenih datoteka u novu mapu pod imenom build / naredbom
make build
Datoteke u izgradnji su spremne za učitavanje u datotečni sistem čipa. Prema zadanim postavkama, main.py i config.py nisu kompajlirani u binarne datoteke radi lakšeg pristupa za pregled raspoređenih čipova. Naredba:
očistiti
Briše verziju/ folder i njen sadržaj.
Korak 6: Sastavljanje i postavljanje koda na mikrokontroler
U ovom odeljku ćete
- otpremite pripremljene datoteke u build/ iz posljednjeg odjeljka
- pokrenite i nadgledajte radni kôd
Otpremanje gradnje/ datoteka pomoću Rshell -a
Prenesite sve datoteke u /build direktorij na ESP čip pomoću Rshell -a. S mikrokontrolerom spojenim na USB, iz gradnje/ mape pokrenite Rshell naredbom
rshell -p /dev /ttyUSB0
Zatim pregledajte datoteke čipova (ako ih ima) do
ls /pyboard
Sve datoteke na čipu se mogu izbrisati pomoću
rm /pyboard/*.*
Kopirajte sve datoteke projekta u verziji build/ na čip:
cp *. * /pyboard
Zatim započnite interaktivni Python terminal naredbom
repl
Sada možete pozvati Python komande ili uvesti module i nadzirati serijski izlaz čipa iz modula zapisnika MiPy-ESP.
Ponovo pokrenite čip pritiskom na gumb za resetiranje ili iz komandne linije do
import main
ili
mašina za uvoz
i onda
machine.reset ()
U zavisnosti od vaših postavki evidentiranja/otklanjanja grešaka u konfiguracionoj datoteci projekta, repl će sada prikazivati poruke za otklanjanje grešaka sa ESP čipa preko serijske veze.
Nadajmo se da bi ovo trebalo početi.
Preporučuje se:
Prvi koraci s WeMos ESP8266: 6 koraka
Početak rada sa WeMos ESP8266: U ovom uputstvu ćemo pokrenuti trepćući Led primer na WeMos ESP8266
Prvi koraci s ESP32 CAM - Streaming videa putem ESP CAM -a preko Wi -Fi -ja. Projekat sigurnosne kamere ESP32: 8 koraka
Prvi koraci s ESP32 CAM | Streaming videa putem ESP CAM -a preko Wi -Fi -ja. Projekt sigurnosne kamere ESP32: Danas ćemo naučiti kako koristiti ovu novu ESP32 CAM ploču i kako je možemo kodirati i koristiti kao sigurnosnu kameru te dobiti streaming video putem WiFi -ja
Prvi koraci sa ESP32 - Instaliranje ESP32 ploča u Arduino IDE - ESP32 Blink Code: 3 koraka
Prvi koraci sa ESP32 | Instaliranje ESP32 ploča u Arduino IDE | ESP32 Blink Code: U ovom uputstvu vidjet ćemo kako započeti rad s esp32 i kako instalirati esp32 ploče u Arduino IDE i programirat ćemo esp 32 da pokrene blink kod pomoću arduino ide
Prvi koraci W/ NodeMCU ESP8266 na Arduino IDE: 6 koraka
Prvi koraci W/ NodeMCU ESP8266 na Arduino IDE -u: PregledU ovom vodiču ćete naučiti kako koristiti NodeMCU na Arduino IDE -u. Šta ćete naučiti Opće informacije o NodeMCUKako instalirati ploče zasnovane na ESP8266 na Arduino IDEKako programirati NodeMCU na Arduino IDEI -u to može polovno
Prvi koraci s MicroPythonom na ESP8266: 10 koraka (sa slikama)
Prvi koraci s MicroPythonom na ESP8266: Želite li drugačiji način programiranja ploča zasnovanih na ESP8266, a ne uobičajenu metodu koja koristi Arduino IDE zajedno sa programskim jezikom C/C ++? U ovom ćemo vodiču naučiti koga konfigurirati i kontrolirati ESP8266 ploča koristeći MicroPython.BUIL