Sadržaj:

Početak rada s Pythonom za ESP8266 i ESP32: 6 koraka
Početak rada s Pythonom za ESP8266 i ESP32: 6 koraka

Video: Početak rada s Pythonom za ESP8266 i ESP32: 6 koraka

Video: Početak rada s Pythonom za ESP8266 i ESP32: 6 koraka
Video: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, Srpanj
Anonim
Početak rada s Pythonom za ESP8266 i ESP32
Početak rada s Pythonom za ESP8266 i ESP32

Pozadina

ESP8266 i njegov mlađi veliki brat ESP32 jeftini su Wi-Fi mikročipovi s punim TCP/IP stogom i mogućnostima mikrokontrolera. Čip ESP8266 prvi je put privukao pozornost zajednice proizvođača 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 učinkovita implementacija sve popularnijeg programskog jezika Python koji uključuje mali podskup standardne knjižnice 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.

Projekt MiPy-ESP

Još 2015. moji prvi projekti s ESP8266 započeli su s čipom ESP-01 koristeći Arudions za pokretanje AT naredbi čipova preko serijske veze. Nakon toga, tijekom sljedećih godina primijenio sam Arduino jezgru za ESP8266 za programiranje čipova s jezikom C ++. Ovo dobro funkcionira, ali za ljubitelje Pythona moje otkriće implementacije MicroPythona Pythona 3 bila je sjajna vijest.

Projekt MiPy-ESP fleksibilan je okvir koji primjenjuje MicroPython za full-stack Python IoT projekte na mikrokontrolerima iz obitelji ESP.

Okvir je razvio tim za razvoj softvera LeGarage Technical Comittee (LG-TC-SWDT-01) s ciljem zamjene već uspostavljenog koda temeljenog 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 čip web stranica za unos/izlaz podataka)
  • MQTT funkcionalnosti
  • Zapisivanje/ispravljanje pogrešaka
  • Zakazivanje događaja mikrokontrolera
  • Hardverske I/O rutine

S jednom glavnom kompaktnom skriptom koda (main.py), sve s globalnom konfiguracijom (config.py).

Ovaj kôd za mikrokontroler radi sa robusnim održavanjem veza čipova s WiFi mrežom i posrednicima MQTT. Postojeći moduli MicroPython za različiti hardver mogu se jednostavno integrirati u sustav.

Okvir MiPy-ESP postao je okosnica svih naših IoT projekata u hobi elektronici koji uključuju mikrokontrolere iz obitelji ESP. Testirano je na nekoliko ploča obitelji ESP, poput ploča NodeMCU, Wemos i Lolin.

Sljedeći vodič je vodič za početak rada s mikrokontrolerima obitelji ESP i MicroPythonom pomoću okvira MiPy-ESP.

Korak 1: Wemos D1 Mini ESP8266 ploča

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

Okvir MiPy-ESP radi s većinom mikrokontrolera zasnovanih na ESP8266.

Mini razvojna ploča Wemos D1 temelji se na čipu ESP-8266EX. Na dimenzijama 2,5 x 3,5 cm, ima flash memoriju od 4 MB, 11 digitalnih ulazno/izlaznih pinova, sve pinove podržava prekid, PWM, I2C, SPI, serijski i 1 analogni ulaz s maksimalnim ulazom od 3,3 V, može raditi na napajanju od 5 V, ima mikro USB priključak 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 za spajanje vanjske antene, čime se značajno povećava domet povezivanja (domet +100 m). Uz to, ploča također dolazi s raznim vanjskim kutijama produžnih ploča slične kompaktne veličine.

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

  • Spojite ESP ploču putem USB -a na računalo
  • Instalirajte softver Esptool za bljeskanje čipa
  • Izbrišite memoriju čipa
  • Flash čip s MicroPython firmware
  • Instalirajte Rshell za omogućavanje interakcije naredbenog retka s vašim čipom
  • Instalirajte mpy-cross (za kompilaciju.py datoteka u binarni oblik)

Povezivanje ploče s računalom putem USB ploča s ugrađenim USB serijskim priključkom čini UART dostupnim za vaše računalo 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 spajanje GPIO pinova za bljeskanje spojenih na vanjski svijet, ali to nije obrađeno u ovom vodiču.

Za MicroPython koji koristi kod MiPy-ESP, minimalni zahtjev za veličinu bljeskalice č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.

Kad koristite USB kabel, ploču napaja vaše računalo dok je spojena. To također omogućuje programiranje i ispravljanje pogrešaka putem serijske veze. Kad se učita kôd projekta i projekt implementira, vanjsko napajanje se primjenjuje preko pinova za napajanje ploče.

Instaliranje EsptoolInformacije o softveru Esptool mogu se pronaći u spremištu Esptool GitHub. Ako želite koristiti Windows/Linux/OSX (MAC), gornja veza također pokriva to. Paket Python može se instalirati putem

pip install esptool

Za korisnike Linuxa, paketi za Esptool održavaju se za Debian i Ubuntu, a mogu se instalirati i s

sudo apt install esptool

Brisanje ESP flash memorije Korištenjem Esptoola, naredbom brišete ESP flash memoriju

esptool.py --port /dev /ttyUSB0 erase_flash

Preuzimanje firmvera MicroPytonMirware programa MicroPython nalazi se u.bin datoteci koju možete preuzeti s web stranice MicroPython.

Trenutna glavna grana repo projekta je testirana i radi s Micropythonom v.1.12. Kako biste osigurali uspjeh s okvirom MiPY-ESP, 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 Rshella Paket Rshell omogućuje interakciju naredbenog retka s vašim MicroPython okruženjem instaliranim na čipu. Može se pronaći na ovoj poveznici. Rshell je jednostavna ljuska koja radi na hostu i koristi MicroPythonov raw-REPL za slanje isječaka pythona na pyboard radi dobivanja informacija o datotečnom sustavu te za kopiranje datoteka u i iz datotečnog sustava MicroPython. REPL označava Read Evaluate Print Loop (Čitanje evaluirane ispisne petlje) i naziv je za interaktivni upit MicroPython kojem možete pristupiti na ESP8266. Korištenje REPL -a daleko je najjednostavniji način testiranja koda i izvođenja naredbi. Instalirajte Rshell naredbom:

sudo pip install rshell

Instaliranje mpy-cross kompajlera MicroPython se može primijeniti s ascii.py datotekama prenijetim u datotečni sustav čipa. MicroPython također definira koncept.mpy datoteka koje su binarni format datoteke spremnika koji sadrži unaprijed kompilirani kôd i koje se mogu uvesti kao normalni.py modul. Sastavljanjem.py datoteka u.mpy, više RAM memorije bit će dostupno za vaš kôd za pokretanje - a to je potrebno kako bi imali funkcionalni osnovni modul okvira MiPy -ESP.

Za implementaciju koda MiPy-ESP, unakrsni prevoditelj mpy-cross MicroPython sastavlja.py skripte u.mpy prije učitavanja čipa. Instalirajte paket mpy-cross prema uputama na ovoj poveznici. Alternativno, naredbu mpy-cross možete instalirati Python pip naredbom ili pokrenuti s putanje mape mpy-cross ako ovdje klonirate spremište MicroPython s GitHub-a.

Sada imate instaliran MicroPython i sve potrebne alate za početak izgradnje vašeg prvog MiPy-ESP projekta

Korak 3: Početak rada s MiPy-ESP-om

Početak rada s MiPy-ESP-om
Početak rada s MiPy-ESP-om

U ovom koraku ćete

Preuzmite okvir MyPy-ESP

Preuzimanje MiPy-ESP okviraProjekt MiPy-ESP može se pronaći na GitHub-u u ovom spremištu koda. S GitHub -a možete preuzeti strukturu datoteke spremišta ili je klonirati na računalo pomoću

git clone

S spremištem koda instaliranim na vašem računalu, sada imate sve module koda koji su vam potrebni za izradu gotovog ESP IoT projekta. Više pojedinosti o alatu u sljedećem koraku.

Korak 4: MiPy-ESP okvirna arhitektura

Okvirna arhitektura MiPy-ESP
Okvirna arhitektura MiPy-ESP

U ovom koraku ćete

saznati o tijeku rada MiPy-ESP koda

Arhitektura koda MiPy-ESP

Svi Python okvirni moduli nalaze se u /src mapi spremišta kodova MiPY-ESP. Mapa src/core sadrži osnovne module koji idu u svaki projekt. Mapa src/drivers ima izbor modula za različite hardvere koji se mogu povezati s vašim čipom. Mapa src/utilities sadrži izborne 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 izradu vašeg projekta:

config.py:

Ova je datoteka 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 ovisne o projektu s danim ulazima iz datoteke config.py. Gornji dijagram toka prikazuje izgled skripte main.py.

Gornja slika opisuje tijek rada main.py:

  1. Nakon 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, a kod main.py nastavlja sa sljedećim koracima.
  3. U odjeljku Postavljanje programa main.py,

    • definiraju se funkcije za poslove i povratne pozive (itd. MQTT povratne pozive) i redoviti događaji.
    • Postavljeni su različiti vremenski zadaci za pokretanje funkcija.
    • Uspostavljen je klijent posrednika MQTT
  4. Kôd zatim ulazi u glavnu petlju mikrokontrolera,

    • stalno provjeravajte mrežne i MQTT veze posrednika,
    • MQTT pretplate,
    • hardverski I/O
    • i predviđene poslove.
    • Kod izgubljene veze s mrežom ili posrednikom MQTT, 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 mape spremišta Gornja slika opisuje strukturu mape spremišta i popis trenutnih modula okvira. Vaš projekt je faza u mapi src/. Osnovni moduli okvira MiPy-ESP nalaze se u src/jezgri, izborni pomoćni moduli u src/uslužni programi i hardverski moduli u src/upravljačkim programima.

Većina dostupnih hardverskih knjižnica MicroPython može ući u upravljačke programe/ mapu bez ikakvih izmjena. Svi prisutni upravljački programi testirani su s MiPy-ESP okvirom. Što se tiče modula u uslužnim programima/ mapi, bit će dodano više kako ožive.

Postavljanje koda projekta Vaš kod specifičan za projekt treba staviti u mapu src/. Već se nalaze datoteke main.py i config.py koje možete uređivati. Također kopirajte tražene pomoćne programe projekta iz src/utilities i src/drivers u src/.

U slučaju da želite dodati čip poznatim Wi-Fi mrežama i lozinkama, dodajte datoteku wifi.json u src/.

Sastavljanje i priprema za prijenosOdgovoreni Makefile može se primijeniti za pripremu datoteka za prijenos na čip sastavljanjem.py datoteka u / src, sastavljanjem jezgri modula i prijenosom prevedenih datoteka u novu mapu pod imenom build / naredbom

napraviti graditi

Datoteke u izgradnji spremne su za prijenos u datotečni sustav čipa. Prema zadanim postavkama, main.py i config.py nisu kompajlirani u binarni format, kako bi im se lako pristupilo radi pregleda raspoređenih čipova. Naredba:

očistiti

Briše verziju/ mapu i njezin sadržaj.

Korak 6: Sastavljanje i prijenos koda na mikrokontroler

Sastavljanje i prijenos koda na mikrokontroler
Sastavljanje i prijenos koda na mikrokontroler
Sastavljanje i prijenos koda na mikrokontroler
Sastavljanje i prijenos koda na mikrokontroler

U ovom odjeljku ćete

  • učitajte pripremljene datoteke u build/ iz posljednjeg odjeljka
  • pokrenuti i nadzirati radni kôd

Prijenos gradnje/ datoteka s Rshell -om

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 mogu se izbrisati pomoću

rm /pyboard/*.*

Kopirajte sve datoteke projekta u build/ na čip:

cp *. * /pyboard

Zatim naredbom pokrenite interaktivni Python terminal

repl

Sada možete pozvati Python naredbe ili uvesti module i nadzirati serijski izlaz čipa iz modula zapisnika MiPy-ESP.

Ponovno pokrenite čip pritiskom na gumb za resetiranje ili iz naredbenog retka do

import main

ili

stroj za uvoz

i onda

machine.reset ()

Ovisno o vašim postavkama zapisivanja/ispravljanja pogrešaka u konfiguracijskoj datoteci projekta, repl će sada prikazati poruke otklanjanja pogrešaka s ESP čipa putem serijske veze.

Nadajmo se da bi ovo trebalo započeti.

Preporučeni: