Kazalo:

Začetek uporabe Pythona za ESP8266 in ESP32: 6 korakov
Začetek uporabe Pythona za ESP8266 in ESP32: 6 korakov

Video: Začetek uporabe Pythona za ESP8266 in ESP32: 6 korakov

Video: Začetek uporabe Pythona za ESP8266 in ESP32: 6 korakov
Video: Полное руководство по 16-канальному сервоконтроллеру PCA9685 для Arduino с кодом версии 5 (V1) 2024, November
Anonim
Uvod v Python za ESP8266 in ESP32
Uvod v Python za ESP8266 in ESP32

Podlaga

ESP8266 in njegov mlajši veliki brat ESP32 sta nizkocenovna mikročipa Wi-Fi s polnim skladom TCP/IP in zmožnostjo mikrokrmilnika. Čip ESP8266 je prvič pritegnil pozornost proizvajalcev že leta 2014. Od takrat so nizka cena (<5 USD), njegova zmogljivost Wi-Fi, vgrajen pomnilnik 1 ali 4 MB in različne razpoložljive možnosti razvoja plošče, je čip ESP postal eden izmed najbolj priljubljenih mikrokrmilnikov za projekte WiFi in IoT DIY.

MicroPython je vitka in učinkovita implementacija vse bolj priljubljenega programskega jezika Python, ki vključuje majhno podmnožico standardne knjižnice Python in je optimiziran za delovanje na mikrokrmilnikih.

Kombinacija teh dveh je zelo zanimiva možnost za DIY projekte, tako za začetnike kot za naprednejše uporabnike.

Projekt MiPy-ESP

Že leta 2015 so se moji prvi projekti z ESP8266 začeli s čipom ESP-01 z uporabo Arudions za izvajanje ukazov AT čipov prek serijske povezave. Po tem sem v naslednjih letih za programiranje čipov z jezikom C ++ uporabil jedro Arduino za ESP8266. To dobro deluje, toda za navdušenca nad Pythonom je bilo moje odkritje implementacije MicroPythona Python 3 odlična novica.

Projekt MiPy-ESP je prilagodljiv okvir, ki uporablja MicroPython za projekte Python IoT s polno paleto mikro krmilnikov družine ESP.

Okvir je razvila skupina za razvijalce programske opreme LeGarage Technical Comitetee (LG-TC-SWDT-01), katere namen je nadomestiti že uveljavljeno kodo, ki temelji na C ++, za naše aplikacije za mikrokrmilnik.

Projekt ponuja osnovne funkcije, kot so

  • Postopki povezovanja v omrežje
  • Spletni strežnik za dostop do čipov (za povezavo Wi -Fi in prikazovanje spletnih strani čipov za podatkovni V/I)
  • MQTT funkcionalnosti
  • Zapisovanje/odpravljanje napak
  • Načrtovanje dogodkov mikrokrmilnika
  • Vhodno/izhodne strojne rutine

Z enim glavnim kompaktnim kodnim skriptom (main.py), vsi z globalno konfiguracijo (config.py).

Ta koda mikrokrmilnika deluje z robustnim vzdrževanjem povezav čipov z omrežjem WiFi in posredniki MQTT. Obstoječe module MicroPython za različno strojno opremo je mogoče enostavno integrirati v sistem.

Okvir MiPy-ESP je postal hrbtenica vseh naših projektov IoT elektronike za hobije, ki vključujejo mikrokrmilnike družine ESP. Preizkušeno je bilo na več ploščah družine ESP, kot so plošče NodeMCU, Wemos in Lolin.

Naslednja vadnica je vodnik, kako začeti z mikrokrmilniki družine ESP in MicroPythonom z ogrodjem MiPy-ESP.

1. korak: 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 Wemos D1 Mini ESP8266

Okvir MiPy-ESP deluje z večino mikrokrmilnikov na osnovi ESP8266.

Mini razvojna plošča Wemos D1 temelji na čipu ESP-8266EX. Na površini 2,5 x 3,5 cm ima 4 MB pomnilnika flash, 11 digitalnih vhodno/izhodnih zatičev, vse zatiče podpira prekinitev, PWM, I2C, SPI, zaporedni in 1 analogni vhod z največjim vhodom 3,3 V, lahko deluje pri 5 V moči, ima priključek micro USB in je združljiv s ploščo. Nizka cena in majhnost sta postala moja najljubša plošča ESP.

Poleg tega ima različica plošče D1 mini pro možnost priključitve zunanje antene, kar znatno poveča domet povezave (domet +100 m). Poleg tega je plošča opremljena tudi z različnimi ploščami podaljškov, ki so izven škatle, s podobno kompaktno velikostjo.

2. korak: Priprava na MicroPython na čipu ESP

Priprava na MicroPython na čipu ESP
Priprava na MicroPython na čipu ESP

V tem prvem koraku boste

  • Ploščo ESP povežite z računalnikom prek USB -ja
  • Namestite programsko opremo Esptool za utripanje čipa
  • Izbrišite pomnilnik čipa
  • Utripajte čip z vdelano programsko opremo MicroPython
  • Namestite Rshell, da omogočite interakcijo ukazne vrstice s svojim čipom
  • Namestite mpy-cross (za sestavljanje datotek.py v binarno datoteko)

Če ploščo povežete z računalnikom prek plošč USB z vgrajenimi serijskimi vrati USB, bo UART na voljo za vaš računalnik in je najlažja možnost za začetek. Za plošče brez povezave USB lahko uporabite modul FTDI z USB -jem za serijsko povezavo za priključke GPIO za utripanje, povezane z zunanjim svetom, vendar to ni obravnavano v tem vodiču.

Za MicroPython, ki uporablja kodo MiPy-ESP, je minimalna zahteva za velikost bliskavice čipa 1 MB. Obstaja tudi posebna konstrukcija za plošče s 512 KB, vendar ta nima podpore za datotečni sistem, od katerega je odvisen MiPy-ESP.

Ko uporabljate kabel USB, ploščo napaja računalnik, medtem ko je priključena. To omogoča tudi programiranje in odpravljanje napak prek serijske povezave. Ko je koda projekta naložena in je vaš projekt razmeščen, se preko zatičev za napajanje plošče napaja zunanje napajanje.

Namestitev programa Esptool Informacije o programski opremi Esptool najdete v skladišču Esptool GitHub. Če želite uporabljati Windows/Linux/OSX (MAC), to zajema tudi zgornja povezava. Paket Python lahko namestite z

pip install esptool

Za uporabnike Linuxa se paketi za Esptool vzdržujejo za Debian in Ubuntu in jih je mogoče namestiti tudi z

sudo apt namestite esptool

Brisanje bliskovnega pomnilnika ESP Z uporabo programa Esptool nato z ukazom izbrišete pomnilnik ESP

esptool.py --port /dev /ttyUSB0 erase_flash

Prenos vdelane programske opreme MicroPyton Vdelana programska oprema MicroPython je v datoteki.bin, ki jo lahko prenesete s spletnega mesta MicroPython.

Trenutna glavna veja projekta repo je bila preizkušena in deluje z Micropythonom v.1.12. Če želite zagotoviti uspeh z okvirom MiPY-ESP, s te povezave prenesite datoteko 'esp8266-20191220-v1.12.bin' in vnesite vdelano programsko opremo na čip z ukazom:

esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = zaznati 0 esp8266-20191220-v1.12.bin

Namestitev Rshell Paket Rshell omogoča interakcijo ukazne vrstice z okoljem MicroPython, nameščenim na čipu. Najdete ga na tej povezavi. Rshell je preprosta lupina, ki deluje na gostitelju in uporablja MicroPythonov raw-REPL za pošiljanje delčkov pythona na pyboard, da bi dobili informacije o datotečnem sistemu ter za kopiranje datotek v datotečni sistem MicroPython in iz njega. REPL pomeni Read Evaluate Print Loop in je ime za interaktivni poziv MicroPython, do katerega lahko dostopate na ESP8266. Uporaba REPL je daleč najlažji način, da preizkusite svojo kodo in zaženete ukaze. Namestite Rshell z ukazom:

sudo pip namestite rshell

Namestitev prevajalnika mpy-cross MicroPython je mogoče uporabiti z datotekami ascii.py, naloženimi v datotečni sistem čipov. MicroPython opredeljuje tudi koncept datotek.mpy, ki je binarna oblika datoteke vsebnika, ki vsebuje vnaprej sestavljeno kodo, in jo je mogoče uvoziti kot običajen modul.py. S prevajanjem datotek.py v.mpy bo za vašo delujočo kodo na voljo več pomnilnika RAM - to je potrebno za delujoč jedrni modul okvira MiPy -ESP.

Za uvedbo kode MiPy-ESP navzkrižni prevajalnik mpy-cross MicroPython pred nalaganjem čipa prevede skripte.py v.mpy. Namestite paket mpy-cross po navodilih na tej povezavi. Druga možnost je, da lahko ukaz mpy-cross namestite z ukazom Python pip ali zaženete s poti mape mpy-cross, če tukaj klonirate skladišče MicroPython iz GitHub-a.

Zdaj imate nameščen MicroPython in vsa potrebna orodja za začetek gradnje vašega prvega projekta MiPy-ESP

3. korak: Začnite uporabljati MiPy-ESP

Začetek uporabe MiPy-ESP
Začetek uporabe MiPy-ESP

V tem koraku boste

Prenesite ogrodje MyPy-ESP

Prenos ogrodja MiPy-ESP Projekt MiPy-ESP najdete na spletnem mestu GitHub v tem skladišču kod. Iz GitHub -a lahko prenesete datotečno strukturo skladišča ali jo klonirate v računalnik z

git clone

Ko je v računalniku nameščeno skladišče kod, imate zdaj vse kodne module, ki jih potrebujete za izdelavo že pripravljenega projekta ESP IoT. Več podrobnosti o orodju v naslednjem koraku.

4. korak: Okvirna arhitektura MiPy-ESP

Okvirna arhitektura MiPy-ESP
Okvirna arhitektura MiPy-ESP

V tem koraku boste

spoznajte potek dela kode MiPy-ESP

Arhitektura kode MiPy-ESP

Vsi ogrodni moduli Python so v mapi /src shrambe kod MiPY-ESP. Mapa src/core vsebuje jedrne module, ki so vključeni v vsak projekt. Mapa src/drivers vsebuje izbor modulov za različno strojno opremo, ki je povezana z vašim čipom. Mapa src/utilities vsebuje izbirne pomožne module, ki jih je treba vključiti v vaš projekt.

Datoteki main.py in config.py najdemo v mapi src/. To so glavne datoteke za urejanje vašega projekta:

config.py:

Ta datoteka je globalna konfiguracijska datoteka za vaš projekt. Ima različne nastavitve, vse z opisnimi komentarji v datoteki.

main.py:

To je glavni skript za kodno zanko mikrokrmilnika. Vsebuje kodo za aplikacijo v okviru. Po zagonu čipa se main.py zažene in uvozi vse module, odvisne od projekta, z danimi vhodi iz datoteke config.py. Zgornji diagram poteka prikazuje postavitev skripta main.py.

Zgornja slika opisuje potek dela main.py:

  1. Po zagonu koda poskuša povezati čip z omrežjem Wi-Fi. Prej uporabljena omrežja in njihova gesla (šifrirana na čipu) so shranjena v pomnilniku flash. Mrežni SSID-ji in njihova gesla so na voljo v datoteki wifi.json v obliki {" SSID1 ":" Geslo "," SSID ":" Geslo2 "}. Dana omrežja v tej datoteki so shranjena, gesla šifrirana in datoteka se ob zagonu izbriše.
  2. Če še ni znanih omrežij, koda nastavi spletni strežnik dostopne točke (AP). SSID strežnika AP za čip in geslo sta nastavljena v datoteki config.py. S prijavo na SSID čipa se na 192.168.4.1 prikaže spletna stran za prijavo čipa v Wi-Fi. Zaznana omrežja so prikazana v meniju ali pa lahko SSID vnesete ročno (skrita omrežja) skupaj z geslom za Wi-Fi. Po uspešni povezavi čipa z omrežjem Wi-Fi se strežnik AP izklopi in koda main.py nadaljuje z naslednjimi koraki.
  3. V razdelku za nastavitev main.py,

    • opredeljene so funkcije za opravila in povratne klice (itd. povratne klice MQTT) in redni dogodki.
    • Nastavljena so različna časovno omejena opravila za izvajanje funkcij.
    • Odjemalec posrednika MQTT je vzpostavljen
  4. Koda nato gre v zanko glavnega mikrokrmilnika,

    • nenehno preverjanje omrežnih in posredniških povezav MQTT,
    • Naročnine na MQTT,
    • strojni V/I
    • in načrtovana dela.
    • Ob izgubi omrežne ali posredniške povezave MQTT koda poskuša znova vzpostaviti.

5. korak: Priprava kode projekta

Priprava kode projekta
Priprava kode projekta
Priprava kode projekta
Priprava kode projekta

V tem koraku boste

  • spoznajte strukturo datotek skladišča MiPy-ESP
  • kodo projekta pripravite za nalaganje čipov

Struktura map skladišča Zgornja slika opisuje strukturo map skladišča in navaja trenutne module ogrodja. Vaš projekt je faza v mapi src/. Osnovni okvirni moduli MiPy-ESP se nahajajo v src/core, izbirni pomožni moduli v src/utilities in moduli strojne opreme v src/drivers.

Večina razpoložljivih knjižnic strojne opreme MicroPython lahko gredo v gonilnike/ mapo brez kakršnih koli sprememb. Vsi prisotni gonilniki so preizkušeni z ogrodjem MiPy-ESP. V zvezi z moduli v pripomočkih/ mapi bo dodanih več, ko bodo zaživeli.

Prireditev kode projekta Vaša koda za projekt mora biti v mapi src/. Že tam sta datoteki main.py in config.py, ki ju lahko urejate. Kopirajte tudi želene pripomočke projekta iz src/utilities in src/drivers v src/.

Če želite v čip dodati znana omrežja Wi-Fi in gesla, dodajte datoteko wifi.json v src/.

Sestavljanje in priprava na nalaganje Na voljo Makefile lahko uporabite za pripravo datotek za prenos na čip s sestavljanjem datotek.py v / src, sestavljanjem osnovnih modulov in prenosom prevedenih datotek v novo mapo z imenom build / z ukazom

izdelati

Vgrajene datoteke so pripravljene za nalaganje v datotečni sistem čipov. Main.py in config.py privzeto nista prevedena v binarno datoteko, da bi lažje dostopali do njih za pregled nameščenih čipov. Ukaz:

očistiti

Izbriše gradnjo/ mapo in njeno vsebino.

6. korak: Sestavljanje in nalaganje kode v mikrokrmilnik

Sestavljanje in nalaganje kode v mikrokrmilnik
Sestavljanje in nalaganje kode v mikrokrmilnik
Sestavljanje in nalaganje kode v mikrokrmilnik
Sestavljanje in nalaganje kode v mikrokrmilnik

V tem razdelku boste

  • naložite pripravljene datoteke v build/ iz zadnjega razdelka
  • zaženite in spremljajte delujočo kodo

Nalaganje gradnje/ datotek z Rshell

Naložite vse datoteke v imenik /build na čip ESP z uporabo Rshell. Ko je mikrokrmilnik priključen na USB, iz gradnje/ mape zaženite Rshell z ukazom

rshell -p /dev /ttyUSB0

Nato preglejte datoteke čipov (če obstajajo) do

ls /pyboard

Vse datoteke na čipu lahko izbrišete z

rm /pyboard/*.*

Kopirajte vse projektne datoteke v build/ na čip:

cp *. * /pyboard

Nato z ukazom zaženite interaktivni terminal Python

repl

Zdaj lahko prikličete ukaze Python ali uvozite module in spremljate serijski izhod čipa iz modula zapisovalnika MiPy-ESP.

Znova zaženite čip s pritiskom na gumb za ponastavitev ali iz ukazne vrstice z

import main

ali

uvozni stroj

in potem

machine.reset ()

Odvisno od vaših nastavitev beleženja/odpravljanja napak v konfiguracijski datoteki projekta bo repl zdaj po serijski povezavi prikazal sporočila o odpravljanju napak iz čipa ESP.

Upajmo, da bo to začelo.

Priporočena: