Satura rādītājs:

Darba sākšana ar Python ESP8266 un ESP32: 6 soļi
Darba sākšana ar Python ESP8266 un ESP32: 6 soļi

Video: Darba sākšana ar Python ESP8266 un ESP32: 6 soļi

Video: Darba sākšana ar Python ESP8266 un ESP32: 6 soļi
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Jūlijs
Anonim
Darba sākšana ar Python ESP8266 un ESP32
Darba sākšana ar Python ESP8266 un ESP32

Bacground

ESP8266 un tā jaunākais lielais brālis ESP32 ir zemu izmaksu Wi-Fi mikroshēmas ar pilnu TCP/IP steku un mikrokontrollera iespējām. ESP8266 mikroshēma ražotāju kopienas uzmanības lokā pirmo reizi nonāca 2014. gadā. Kopš tā laika zemā cena (<5 USD), tās Wi-Fi iespējas, iebūvēta 1 vai 4 MB zibatmiņa un dažādas pieejamās izstrādes iespējas dēļi, ir padarījis ESP mikroshēmu par vienu no populārākajiem mikrokontrolleriem WiFi un IoT DIY projektiem.

MicroPython ir vienkārša un efektīva arvien populārākās Python programmēšanas valodas ieviešana, kas ietver nelielu Python standarta bibliotēkas apakškopu un ir optimizēta darbībai ar mikrokontrolleriem.

Šo divu kombinācija ir ļoti interesanta iespēja DIY projektiem gan iesācējiem, gan pieredzējušākiem lietotājiem.

Projekts MiPy-ESP

Vēl 2015. gadā mani pirmie projekti ar ESP8266 sākās ar mikroshēmu ESP-01, izmantojot Arudions, lai palaistu mikroshēmas AT komandas, izmantojot seriālo savienojumu. Pēc tam nākamajos gados es izmantoju Arduino kodolu ESP8266 mikroshēmu programmēšanai ar C ++ valodu. Tas darbojas labi, taču Python entuziastam mans atklājums par Python 3 MicroPython ieviešanu bija lieliska ziņa.

Projekts MiPy-ESP ir elastīgs ietvars, kurā tiek izmantots MicroPython pilna kaudzes Python IoT projektiem ESP ģimenes mikrokontrolleros.

Sistēmu ir izstrādājusi LeGarage tehniskās komitejas programmatūras izstrādātāju komanda (LG-TC-SWDT-01), kuras mērķis ir aizstāt jau izveidoto kodu, kas balstīts uz C ++, mūsu mikrokontrolleru lietojumprogrammām.

Projekts nodrošina tādas pamatfunkcijas kā

  • Tīkla savienošanas procedūras
  • Mikroshēmas piekļuves punkta tīmekļa serveris (Wi -Fi savienojumam un mikroshēmu tīmekļa lapu apkalpošanai datu I/O)
  • MQTT funkcijas
  • Reģistrēšana/atkļūdošana
  • Mikrokontrollera notikumu plānošana
  • Aparatūras I/O rutīnas

Ar vienu galveno kompakto koda skriptu (main.py), visi ar globālu konfigurāciju (config.py).

Šis mikrokontrollera kods darbojas, stingri uzturot mikroshēmu savienojumus ar WiFi tīklu un MQTT brokeriem. Esošos MicroPython moduļus dažādām aparatūrām var viegli integrēt sistēmā.

MiPy-ESP ietvars ir kļuvis par visu mūsu hobiju elektronikas IoT projektu mugurkaulu, kuros iesaistīti ESP ģimenes mikrokontrolleri. Tas ir pārbaudīts vairākās ESP ģimenes plāksnēs, piemēram, NodeMCU, Wemos un Lolin dēļos.

Šī apmācība ir ceļvedis, kā sākt darbu ar ESP ģimenes mikrokontrolleriem un MicroPython, izmantojot MiPy-ESP ietvaru.

1. darbība: Wemos D1 Mini ESP8266 plate

Wemos D1 Mini ESP8266 dēlis
Wemos D1 Mini ESP8266 dēlis
Wemos D1 Mini ESP8266 dēlis
Wemos D1 Mini ESP8266 dēlis
Wemos D1 Mini ESP8266 dēlis
Wemos D1 Mini ESP8266 dēlis
Wemos D1 Mini ESP8266 dēlis
Wemos D1 Mini ESP8266 dēlis

MiPy-ESP ietvars darbojas ar lielāko daļu mikrokontrolleru, kuru pamatā ir ESP8266.

Wemos D1 mini izstrādes dēļa pamatā ir mikroshēma ESP-8266EX. Tā izmērs ir 2,5 x 3,5 cm, tai ir 4 MB zibatmiņa, 11 digitālās ieejas/izejas tapas, visas tapas atbalsta pārtraukumu, PWM, I2C, SPI, sērijveida un 1 analogā ieeja ar maksimālo 3,3 V ieeju, var darboties ar 5 V jaudu, ir micro USB savienojums un ir saderīgs ar maizi. Zemā cena un mazais izmērs ir padarījis to par manu iecienītāko ESP plāksni.

Turklāt plates D1 mini pro versijai ir pievienota iespēja pievienot ārēju antenu, ievērojami palielinot savienojuma diapazonu (+100 m diapazons). Papildinot to, dēlis ir aprīkots arī ar dažādiem līdzšinējiem kompaktiem izmēriem.

2. darbība. Gatavojieties MicroPython lietošanai ESP mikroshēmā

Gatavošanās MicroPython lietošanai ESP mikroshēmā
Gatavošanās MicroPython lietošanai ESP mikroshēmā

Šajā pirmajā solī jūs to darīsit

  • Savienojiet ESP paneli, izmantojot USB, ar datoru
  • Instalējiet Esptool programmatūru mikroshēmas mirgošanai
  • Dzēst mikroshēmas atmiņu
  • Zibspuldze ar MicroPython programmaparatūru
  • Instalējiet Rshell, lai iespējotu komandrindas mijiedarbību ar mikroshēmu
  • Instalējiet mpy-cross (.py failu apkopošanai binārajā versijā)

Plātnes pievienošana datoram, izmantojot USBBoards ar iebūvētu USB seriālo portu, padara UART pieejamu jūsu datoram un ir vienkāršākais veids, kā sākt darbu. Plātnēm bez USB savienojuma FTDI moduli ar USB sērijveida var izmantot, lai savienotu mirgošanai paredzētās GPIO tapas, kas savienotas ar ārpasauli, taču šajā apmācībā tas nav apskatīts.

MicroPython, kas izmanto MiPy-ESP kodu, minimālā prasība mikroshēmas zibspuldzes izmēram ir 1 MB. Ir arī īpaša būve dēļiem ar 512 KB, taču tas neatbalsta failu sistēmu, no kuras ir atkarīgs MiPy-ESP.

Izmantojot USB kabeli, dators tiek barots, kamēr ir pievienots. Tas arī ļauj programmēt un atkļūdot, izmantojot seriālo savienojumu. Kad projekta kods ir augšupielādēts un jūsu projekts ir izvietots, tāfeles barošanas tapām tiek izmantota ārējā barošana.

Informāciju par Esptool programmatūru var atrast Esptool GitHub krātuvē. Ja vēlaties izmantot Windows/Linux/OSX (MAC), iepriekš minētā saite to arī aptver. Python pakotni var instalēt

pip instalēt esptool

Linux lietotājiem Esptool pakotnes tiek saglabātas Debian un Ubuntu, un tās var arī instalēt

sudo apt instalēt esptool

Izmantojot Esptool, pēc tam ar komandu izdzēšat ESP zibatmiņu

esptool.py --port /dev /ttyUSB0 erase_flash

MicroPyton programmaparatūras lejupielāde MicroPython programmaparatūra atrodas.bin failā, kuru var lejupielādēt no MicroPython vietnes.

Repo pašreizējā projekta galvenā filiāle ir pārbaudīta un darbojas ar Micropython v.1.12. Lai nodrošinātu panākumus ar MiPY-ESP ietvaru, no šīs saites lejupielādējiet failu 'esp8266-20191220-v1.12.bin' un ierakstiet programmaparatūru mikroshēmā ar komandu:

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

Rshell pakotne nodrošina komandrindas mijiedarbību ar mikroshēmā instalēto MicroPython vidi. To var atrast šajā saitē. Rshell ir vienkāršs apvalks, kas darbojas saimniekdatorā un izmanto MicroPython raw-REPL, lai nosūtītu python fragmentus uz tastatūru, lai iegūtu informāciju par failu sistēmu un kopētu failus uz MicroPython failu sistēmu un no tās. REPL apzīmē lasīšanas novērtēšanas drukas ciklu, un tas ir nosaukums interaktīvajai MicroPython uzvednei, kurai varat piekļūt, izmantojot ESP8266. REPL izmantošana ir vienkāršākais veids, kā pārbaudīt kodu un palaist komandas. Instalējiet Rshell ar komandu:

sudo pip instalējiet rshell

Mpy-cross kompilatora MicroPython instalēšanu var pielietot ar ascii.py failiem, kas augšupielādēti mikroshēmu failu sistēmā. MicroPython definē arī.mpy failu jēdzienu, kas ir bināra konteinera faila formāts, kurā ir iepriekš apkopots kods un kuru var importēt kā parastu.py moduli. Apkopojot.py failus uz.mpy, jūsu darbības kodam būs pieejama vairāk RAM atmiņas - un tas ir nepieciešams, lai būtu funkcionējošs MiPy -ESP ietvara pamatmodulis.

MiPy-ESP koda izvietošanai mpy-cross MicroPython krusteniskais kompilators pirms mikroshēmas augšupielādes apkopo.py skriptus uz.mpy. Instalējiet mpy-cross pakotni, izmantojot šajā saitē sniegtos norādījumus. Alternatīvi, komandu mpy-cross var instalēt ar komandu Python pip vai palaist no mpy-cross mapes ceļa, ja šeit klonējat MicroPython krātuvi no GitHub.

Tagad jums ir instalēts MicroPython un visi nepieciešamie rīki, lai sāktu veidot savu pirmo MiPy-ESP projektu

3. darbība. Darba sākšana ar MiPy-ESP

Darba sākšana ar MiPy-ESP
Darba sākšana ar MiPy-ESP

Šajā solī jūs darīsit

Lejupielādējiet MyPy-ESP ietvaru

MiPy-ESP projektu var atrast vietnē GitHub šajā kodu krātuvē. No GitHub varat lejupielādēt krātuves failu struktūru vai klonēt to savā datorā

git klons

Kad jūsu datorā ir instalēta kodu krātuve, tagad jums ir visi koda moduļi, kas nepieciešami, lai izveidotu tūlītēju ESP IoT projektu. Sīkāka informācija par rīkjoslu nākamajā darbībā.

4. solis: MiPy-ESP ietvara arhitektūra

MiPy-ESP ietvara arhitektūra
MiPy-ESP ietvara arhitektūra

Šajā solī jūs darīsit

uzziniet par MiPy-ESP koda darbplūsmu

MiPy-ESP koda arhitektūra

Visi Python ietvara moduļi ir atrodami MiPY-ESP koda krātuves mapē /src. Mapē src/core ir galvenie moduļi, kas iekļauti katrā projektā. Mapē src/drivers ir izvēlēti moduļi dažādām aparatūrām, kas jāpievieno jūsu mikroshēmai. Mapē src/utilities ir papildu lietderības moduļi, kas jāiekļauj jūsu projektā.

Faili main.py un config.py ir atrodami mapē src/. Šie ir galvenie faili, kas jārediģē, lai izveidotu savu projektu:

config.py:

Šis fails ir jūsu projekta globālās konfigurācijas fails. Tam ir dažādi iestatījumi, visi ar aprakstošiem komentāriem failā.

main.py:

Šis ir galvenais mikrokontrollera koda cilpas skripts. Tajā ir ietverts lietojumprogrammas kods. Pēc mikroshēmas palaišanas main.py darbojas un importē visus no projekta atkarīgos moduļus ar norādītajām ievadēm no faila config.py. Iepriekš redzamā blokshēma parāda skripta main.py izkārtojumu.

Iepriekš redzamajā attēlā ir aprakstīts main.py darbplūsma:

  1. Pēc palaišanas kods mēģina savienot mikroshēmu ar Wi-Fi tīklu. Iepriekš lietotie tīkli un to paroles (šifrētas mikroshēmā) tiek saglabātas zibatmiņā. Tīkla SSID un to paroles var nodrošināt failā wifi.json šādā formātā: " SSID1 ":" Parole "," SSID ":" Parole2 "}. Šajā failā norādītie tīkli tiek saglabāti, paroles tiek šifrētas un fails tiek izdzēsts pēc palaišanas.
  2. Ja netiek atrasti jau zināmi tīkli, kods izveido piekļuves punkta (AP) tīmekļa serveri. Mikroshēmas AP servera SSID un parole ir iestatīti failā config.py Piesakoties mikroshēmas SSID, tīmekļa lapa mikroshēmas pieteikšanai Wi-Fi tiek pasniegta vietnē 192.168.4.1. Atklātie tīkli tiek parādīti izvēlnē vai SSID var ievadīt manuāli (slēptie tīkli) kopā ar Wi-Fi paroli. Veiksmīgi pievienojot mikroshēmu Wi-Fi, AP serveris izslēdzas un kods main.py turpina nākamās darbības.
  3. Main.py sadaļā Iestatīšana
    • tiek definētas funkcijas darbam un atzvaniem (u.c. MQTT atzvaniem) un regulāriem notikumiem.
    • Darbības funkcijām ir iestatīti dažādi laika uzdevumi.
    • Ir izveidots MQTT brokera klients
  4. Pēc tam kods nonāk galvenajā mikrokontrollera cilpā,

    • nepārtraukti pārbaudīt tīkla un MQTT brokeru savienojumus,
    • MQTT abonementi,
    • aparatūras I/O
    • un plānotie darbi.
    • Zaudējot tīkla vai MQTT brokera savienojumu, kods mēģina to atjaunot.

5. darbība: projekta koda sagatavošana

Projekta koda sagatavošana
Projekta koda sagatavošana
Projekta koda sagatavošana
Projekta koda sagatavošana

Šajā solī jūs darīsit

  • uzziniet par MiPy-ESP krātuves failu struktūru
  • sagatavojiet projekta kodu mikroshēmas augšupielādei

Iepriekš redzamajā attēlā ir aprakstīta repozitorija mapju struktūra un uzskaitīti ietvara pašreizējie moduļi. Jūsu projekts ir posmi src/ mapē. Galvenie MiPy-ESP ietvara moduļi atrodas src/core, papildu lietderības moduļi src/komunālie un aparatūras moduļi src/draiveros.

Lielākā daļa pieejamo MicroPython aparatūras bibliotēku var nokļūt draiveros/ mapē bez jebkādām izmaiņām. Visi pašreizējie draiveri tiek pārbaudīti, izmantojot MiPy-ESP sistēmu. Attiecībā uz moduļiem utilītprogrammās/ mapē, tie tiks pievienoti, kad tie stāsies spēkā.

Projekta koda posms Jūsu projekta kods jāievieto mapē src/ src. Tur jau ir rediģējami faili main.py un config.py. Kopējiet arī vēlamos projekta utilītus no src/utilies un src/drivers uz src/.

Ja vēlaties mikroshēmai nodrošināt zināmus Wi-Fi tīklus un paroles, pievienojiet failu wifi.json mapei src/.

Nodrošināto Makefile failu var izmantot failu sagatavošanai pārsūtīšanai uz mikroshēmu, apkopojot.py failus / src, apkopojot galvenos moduļus un pārsūtot failus uz jaunu mapi ar nosaukumu build / ar komandu

likt būvēt

Būvējamie faili ir gatavi augšupielādei mikroshēmu failu sistēmā. Pēc noklusējuma main.py un config.py netiek apkopoti binārā, lai tiem varētu viegli piekļūt, lai pārbaudītu izvietotās mikroshēmas. Komanda:

padarīt tīru

Izdzēš būvējumu/ mapi un tās saturu.

6. darbība: koda apkopošana un augšupielāde mikrokontrollerī

Koda apkopošana un augšupielāde mikrokontrollerī
Koda apkopošana un augšupielāde mikrokontrollerī
Koda apkopošana un augšupielāde mikrokontrollerī
Koda apkopošana un augšupielāde mikrokontrollerī

Šajā sadaļā jūs to darīsit

  • augšupielādējiet sagatavotos failus versijā/ no pēdējās sadaļas
  • sākt un uzraudzīt darbības kodu

Būvējuma/ failu augšupielāde ar Rshell

Augšupielādējiet visus failus direktorijā /build ESP mikroshēmā, izmantojot Rshell. Ja mikrokontrolleris ir pievienots USB, no būvēšanas/ mapes palaidiet Rshell ar komandu

rshell -p /dev /ttyUSB0

Pēc tam pārbaudiet mikroshēmu failus (ja tādi ir)

ls /tastatūra

Visus mikroshēmā esošos failus var izdzēst

rm /tastatūra/*.*

Kopējiet visus būvēšanas/ mikroshēmas projekta failus:

cp *. * /tastatūra

Pēc tam palaidiet interaktīvo Python termināli ar komandu

repl

Tagad varat izsaukt Python komandas vai importēt moduļus un uzraudzīt mikroshēmas sērijas izvadi no MiPy-ESP reģistrēšanas moduļa.

Restartējiet mikroshēmu, nospiežot atiestatīšanas pogu vai no komandrindas

importēt galvenais

vai

importa mašīna

un tad

machine.reset ()

Atkarībā no jūsu reģistrēšanas/atkļūdošanas iestatījumiem projekta konfigurācijas failā, repl tagad parādīs atkļūdošanas ziņojumus no ESP mikroshēmas, izmantojot seriālo savienojumu.

Cerams, ka tam vajadzētu sākt.

Ieteicams: