Sadržaj:

Prvi koraci s Pythonom za ESP8266 i ESP32: 6 koraka
Prvi koraci s Pythonom za ESP8266 i ESP32: 6 koraka

Video: Prvi koraci s Pythonom za ESP8266 i ESP32: 6 koraka

Video: Prvi koraci s Pythonom za ESP8266 i ESP32: 6 koraka
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Novembar
Anonim
Prvi koraci s Pythonom za ESP8266 i ESP32
Prvi koraci s Pythonom za ESP8266 i ESP32

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

Wemos D1 Mini ESP8266 ploča
Wemos D1 Mini ESP8266 ploča
Wemos D1 Mini ESP8266 ploča
Wemos D1 Mini ESP8266 ploča
Wemos D1 Mini ESP8266 ploča
Wemos D1 Mini ESP8266 ploča
Wemos D1 Mini ESP8266 ploča
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

Priprema za MicroPython na ESP čipu
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

Prvi koraci sa MiPy-ESP-om
Prvi koraci sa 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

MiPy-ESP okvirna arhitektura
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:

  1. 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.
  2. 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.
  3. 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
  4. 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

Priprema koda vašeg projekta
Priprema koda vašeg projekta
Priprema koda vašeg projekta
Priprema koda vašeg 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

Sastavljanje i postavljanje koda na mikrokontroler
Sastavljanje i postavljanje koda na mikrokontroler
Sastavljanje i postavljanje koda na mikrokontroler
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: