Sisukord:

Pythoniga alustamine ESP8266 ja ESP32 jaoks: 6 sammu
Pythoniga alustamine ESP8266 ja ESP32 jaoks: 6 sammu

Video: Pythoniga alustamine ESP8266 ja ESP32 jaoks: 6 sammu

Video: Pythoniga alustamine ESP8266 ja ESP32 jaoks: 6 sammu
Video: ESP8266 Беспроводной ЧМИ Nextion || Внешний ПЛК Arduino 2024, November
Anonim
Pythoniga alustamine ESP8266 ja ESP32 jaoks
Pythoniga alustamine ESP8266 ja ESP32 jaoks

Bacground

ESP8266 ja selle noorem suur vend ESP32 on odavad WiFi-mikrokiibid, millel on täielik TCP/IP-virn ja mikrokontrolleri võimalus. ESP8266 kiip jõudis esmakordselt tegijate kogukonna tähelepanu alla juba 2014. aastal. Sellest ajast alates on madal hind (<5 USD), WiFi-ühendus, 1 või 4 MB välkmälu ja mitmesugused saadaval olevad arendused lauad, on teinud ESP kiibist ühe populaarseima mikrokontrolleri WiFi ja IoT DIY projektide jaoks.

MicroPython on üha populaarsemaks muutuva Pythoni programmeerimiskeele lahja ja tõhus juurutus, mis sisaldab väikest Pythoni standardraamatukogu alamhulka ja on optimeeritud töötamiseks mikrokontrolleritel.

Nende kahe kombinatsioon on DIY projektide jaoks väga huvitav võimalus nii algajatele kui ka edasijõudnutele.

MiPy-ESP projekt

Aastal 2015 algasid minu esimesed projektid ESP8266-ga ESP-01 kiibiga, kasutades Arudionsit kiipide AT-käskude käivitamiseks jadaühenduse kaudu. Pärast seda rakendasin järgnevatel aastatel Arduino tuuma ESP8266 jaoks kiipide programmeerimiseks C ++ keelega. See töötab hästi, kuid Pythoni entusiastide jaoks oli minu avastus Python 3 MicroPythoni juurutamisest suurepärane uudis.

MiPy-ESP projekt on paindlik raamistik, mis kasutab MicroPythonit täispinu Python IoT projektide jaoks ESP-perekonna mikrokontrollerite jaoks.

Raamistiku on välja töötanud LeGarage'i tehnilise komitee tarkvaraarendusmeeskond (LG-TC-SWDT-01), mille eesmärk on asendada meie mikrokontrollerite rakenduste jaoks juba kehtestatud C ++ -põhine kood.

Projekt pakub põhifunktsioone, näiteks

  • Võrguühenduse protseduurid
  • Kiibi pääsupunkti veebiserver (WiFi -ühenduse jaoks ja kiipide veebilehtede teenindamiseks andmete I/O jaoks)
  • MQTT funktsioonid
  • Logimine/silumine
  • Mikrokontrolleri sündmuste ajastamine
  • Riistvara I/O rutiinid

Ühe peamise kompaktse koodiskriptiga (main.py), kõik globaalse konfiguratsiooniga (config.py).

See mikrokontrolleri kood töötab koos WiFi -võrgu ja MQTT maaklerite kiibiühenduste jõulise hooldusega. Olemasolevaid MicroPythoni mooduleid erinevate riistvara jaoks saab hõlpsasti süsteemi integreerida.

MiPy-ESP raamistikust on saanud meie kõigi ESP perekonna mikrokontrollereid hõlmavate hobi elektroonika IoT projektide selgroog. Seda on testitud mitmel ESP-pereplaadil, näiteks NodeMCU, Wemos ja Lolin plaatidel.

Järgmine õpetus on juhend ESP-perekonna mikrokontrollerite ja MicroPythoniga alustamiseks, kasutades MiPy-ESP raamistikku.

Samm: tahvel Wemos D1 Mini ESP8266

Wemos D1 Mini ESP8266 plaat
Wemos D1 Mini ESP8266 plaat
Wemos D1 Mini ESP8266 plaat
Wemos D1 Mini ESP8266 plaat
Wemos D1 Mini ESP8266 plaat
Wemos D1 Mini ESP8266 plaat
Wemos D1 Mini ESP8266 plaat
Wemos D1 Mini ESP8266 plaat

MiPy-ESP raamistik töötab enamiku ESP8266-põhiste mikrokontrolleritega.

Wemos D1 mini arendusplaat põhineb ESP-8266EX kiibil. 2,5 x 3,5 cm jalajäljel on sellel 4 MB välkmälu, 11 digitaalset sisend-/väljundnõela, kõik tihvtid toetavad katkestust, PWM, I2C, SPI, jada- ja 1 analoogsisend, mille maksimaalne sisend on 3,3 V, saab töötada 5 V toitega, on mikro -USB -ühendusega ja ühildub leivaplaadiga. Madal hind ja selle väike suurus on teinud sellest minu lemmik ESP -plaadi.

Lisaks on plaadi D1 mini pro versioon varustatud välise antenni ühendamise võimalusega, suurendades ühenduse ulatust märkimisväärselt (+100 m vahemik). Lisaks sellele on plaadil ka mitmesuguseid sarnaseid kompaktseid mõõtmeid.

Samm: valmistuge MicroPythoniks ESP kiibil kasutamiseks

MicroPythoniks valmistumine ESP kiibil
MicroPythoniks valmistumine ESP kiibil

Selles esimeses etapis saate

  • Ühendage ESP -plaat USB kaudu arvutiga
  • Kiibi vilkumiseks installige Esptooli tarkvara
  • Kustuta kiibi mälu
  • Välgutage kiipi MicroPythoni püsivara abil
  • Installige Rshell, et võimaldada käsurea interaktsiooni oma kiibiga
  • Installige mpy-cross (.py failide kompileerimiseks binaarseks)

Tahvli ühendamine arvutiga sisseehitatud USB-jadapordiga USB-plaatide kaudu muudab UART teie arvutile kättesaadavaks ja on lihtsaim võimalus alustamiseks. USB -ühenduseta tahvlite puhul saab välismaailmaga ühendatud välklambi jaoks mõeldud GPIO -tihvtide ühendamiseks kasutada FTDI -moodulit, millel on USB -jadaühendus, kuid käesolev õpetus seda ei hõlma.

MiPy-ESP koodi kasutava MicroPythoni puhul on kiibi välgu suuruse miinimumnõue 1 MB. Samuti on olemas spetsiaalne ehitus 512 kB tahvlitele, kuid see ei toeta failisüsteemi, millest MiPy-ESP sõltub.

Kui kasutate USB -kaablit, saab plaat ühendatud arvuti toite. See võimaldab ka programmeerimist ja silumist jadaühenduse kaudu. Kui projekti kood on üles laaditud ja teie projekt on kasutusele võetud, rakendatakse tahvli toiteplokkidele välist toiteallikat.

Esptooli tarkvara kohta leiate teavet Esptool GitHubi hoidlast. Kui soovite kasutada Windowsi/Linuxi/OSX -i (MAC), hõlmab see ka ülaltoodud linki. Pythoni paketti saab installida

pip install esptool

Linuxi kasutajate jaoks säilitatakse Esptooli paketid Debiani ja Ubuntu jaoks ning neid saab installida ka

sudo apt install esptool

ESP -välkmälu kustutamine Esptooli kasutades kustutate ESP -välkmälu käsuga

esptool.py --port /dev /ttyUSB0 erase_flash

MicroPytoni püsivara allalaadimine MicroPythoni püsivara asub.bin -failis, mille saab alla laadida MicroPythoni veebisaidilt.

Repo praegune projekti peamine haru on testitud ja töötab koos Micropython v.1.12 -ga. MiPY-ESP raamistiku edu tagamiseks laadige alla sellelt lingilt fail 'esp8266-20191220-v1.12.bin' ja kirjutage püsivara kiibile käsuga:

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

Rshelli pakett võimaldab käsurealt suhelda teie kiibile installitud MicroPythoni keskkonnaga. Selle leiate sellelt lingilt. Rshell on lihtne kest, mis töötab hostil ja kasutab MicroPythoni toores REPL-i, et saata pythoni katkendid klaviatuurile, et saada failisüsteemi teavet, ja kopeerida faile MicroPythoni failisüsteemi ja sealt tagasi. REPL tähistab Read Evaluate Print Loop ja see on interaktiivse MicroPythoni viiba nimi, millele pääsete juurde ESP8266 kaudu. REPL -i kasutamine on vaieldamatult lihtsaim viis oma koodi testimiseks ja käskude käivitamiseks. Installige Rshell käsuga:

sudo pip installige rshell

Mpy-cross kompilaatori MicroPython installimist saab rakendada kiibi failisüsteemi üles laaditud ascii.py failidega. MicroPython määratleb ka.mpy -failide mõiste, mis on binaarkonteineri failivorming, mis sisaldab eelkompileeritud koodi ja mida saab importida nagu tavalist.py -moodulit. Kui koostate.py failideks.py failid, saab teie jooksva koodi jaoks rohkem RAM -mälu - ja seda on vaja MiPy -ESP raamistiku toimiva põhimooduli saamiseks.

MiPy-ESP koodi juurutamiseks koostab mpy-cross MicroPython ristkompilaator enne kiibi üleslaadimist.py skriptid.mpy. Installige mpy-cross pakett selle lingi juhiste järgi. Teise võimalusena saab käsu mpy-cross installida käsuga Python pip või käivitada selle kausta mpy-cross teelt, kui kloonite MicroPythoni hoidla siit GitHubist.

Nüüd on teil installitud MicroPython ja kõik vajalikud tööriistad, et alustada oma esimese MiPy-ESP projekti ehitamist

Samm: MiPy-ESP-ga alustamine

Alustamine MiPy-ESP-ga
Alustamine MiPy-ESP-ga

Selles etapis saate

Laadige alla MyPy-ESP raamistik

MiPy-ESP raamistiku leiate selle koodihoidla GitHubi veebisaidilt. GitHubist saate alla laadida hoidla failistruktuuri või kloonida selle oma arvutisse

git kloon

Kui teie arvutisse on installitud koodide hoidla, on teil nüüd kõik koodimoodulid, mida vajate ESP IoT projekti loomiseks. Lisateavet tööriistakasti kohta leiate järgmisest sammust.

Samm: MiPy-ESP raamistiku arhitektuur

MiPy-ESP raamistiku arhitektuur
MiPy-ESP raamistiku arhitektuur

Selles etapis saate

lisateavet MiPy-ESP koodi töövoo kohta

MiPy-ESP koodi arhitektuur

Kõik Pythoni raamistiku moodulid on MiPY-ESP koodihoidla kaustas /src. Kaust src/core sisaldab põhimooduleid, mis lähevad igasse projekti. Kaustas src/drivers on valik mooduleid kiibiga ühendamiseks erinevate riistvara jaoks. Kaust src/utility sisaldab valikulisi utiliidimooduleid, mida oma projekti lisada.

Failid main.py ja config.py asuvad kaustas src/. Need on peamised failid, mida oma projekti loomiseks muuta:

config.py:

See fail on teie projekti üldine konfiguratsioonifail. Sellel on erinevad seaded, kõik koos kirjeldavate kommentaaridega failis.

main.py:

See on mikrokontrolleri koodilingi peamine skript. See sisaldab raamistikus rakendusepõhist koodi. Kiibi käivitamisel käivitab ja impordib failist config.py kõik projektist sõltuvad moodulid, millel on sisendid, kiibi käivitamisel. Ülaltoodud vooskeem näitab skripti main.py paigutust.

Ülaltoodud joonis kirjeldab main.py töövoogu:

  1. Alglaadimisel proovib kood kiipi Wi-Fi-võrguga ühendada. Varem rakendatud võrgud ja nende paroolid (kiibil krüpteeritud) salvestatakse välkmällu. Võrgu SSID-sid ja nende paroole saab ette näha failis wifi.json vormingus {" SSID1 ":" Parool "," SSID ":" Parool2 "}. Selle faili antud võrgud salvestatakse, paroolid krüptitakse ja fail kustutatakse käivitamisel.
  2. Kui juba teadaolevaid võrke ei leita, seadistab kood pääsupunkti (AP) veebiserveri. Kiibi AP -serveri SSID ja parool on määratud failis config.py Kiibi SSID-le sisse logides serveeritakse veebilehte kiibi WiFi-ks sisselogimiseks aadressil 192.168.4.1. Tuvastatud võrgud kuvatakse menüüs või SSID-d saab käsitsi sisestada (peidetud võrgud) koos WiFi-parooliga. Kiibi eduka ühendamise korral Wi-Fi-ga lülitub AP-server välja ja kood main.py jätkab järgmiste sammudega.
  3. Main.py jaotises Seadistamine

    • on määratletud funktsioonid tööde ja tagasikutsumiste jaoks (jne. MQTT tagasihelistamine) ja regulaarsed sündmused.
    • Käitamisfunktsioonide jaoks on määratud erinevad ajastatud tööd.
    • MQTT maakleri klient on loodud
  4. Seejärel läheb kood mikrokontrolleri põhiahelasse,

    • võrgu ja MQTT maakleriühenduste pidev kontrollimine,
    • MQTT tellimused,
    • riistvara I/O
    • ja plaanilised tööd.
    • Võrgu või MQTT maakleriühenduse katkemise korral proovib kood uuesti luua.

Samm: projekti koodi ettevalmistamine

Projekti koodi ettevalmistamine
Projekti koodi ettevalmistamine
Projekti koodi ettevalmistamine
Projekti koodi ettevalmistamine

Selles etapis saate

  • Lisateave MiPy-ESP hoidla failistruktuuri kohta
  • valmistage oma projekti kood ette kiibi üleslaadimiseks

Ülaltoodud joonis kirjeldab hoidla kaustade struktuuri ja loetleb raamistiku praegused moodulid. Teie projekt on src/ kausta etapid. Põhilised MiPy-ESP raamimoodulid asuvad src/core, valikulised utiliidimoodulid src/utilies ja riistvara moodulid src/drivers.

Enamik MicroPythoni riistvararaamatukogusid saab ilma muudatusteta minna draiveritesse/ kausta. Kõiki praeguseid draivereid testitakse MiPy-ESP raamistikuga. Mis puutub moodulitesse utiliitides/ kaustas, siis neid lisandub, kui need ellu tulevad.

Teie projektipõhine kood tuleks paigutada kausta src/. Seal on juba redigeeritavad failid main.py ja config.py. Samuti kopeerige soovitud projekti utiliidid saidilt src/utility ja src/drivers draivile src/.

Kui soovite kiibile varustada tuntud WiFi-võrke ja paroole, lisage fail wifi.json kausta src/.

Kompileeritud Makefile'i saab rakendada failide ettevalmistamiseks kiibile ülekandmiseks, koostades.py failid / src -s, koondades põhimoodulid ja teisaldades kompileeritud failid uude kausta nimega build /

ehitama panema

Koostatud failid on kiipfailisüsteemi üleslaadimiseks valmis. Vaikimisi pole kompileeritud main.py ja config.py binaarseks, et neile hõlpsasti juurde pääseda juurutatud kiipide kontrollimiseks. Käsk:

puhtaks teha

Kustutab ehitise/ kausta ja selle sisu.

Samm: koodi koostamine ja mikrokontrollerile üleslaadimine

Koodi koostamine ja mikrokontrollerile üleslaadimine
Koodi koostamine ja mikrokontrollerile üleslaadimine
Koodi koostamine ja mikrokontrollerile üleslaadimine
Koodi koostamine ja mikrokontrollerile üleslaadimine

Selles jaotises saate

  • laadige valmisfailid üles ehitamisest/ viimasest jaotisest
  • käivitage ja jälgige töötavat koodi

Ehitusfailide üleslaadimine Rshelli abil

Laadige Rshelli abil üles kõik failid kataloogis /build ESP kiibile. Kui mikrokontroller on ühendatud USB -ga, käivitage ehitamisest/ kaustast käsk Rshell

rshell -p /dev /ttyUSB0

Seejärel kontrollige kiibifailid (kui neid on)

ls /klaviatuur

Kõik kiibil olevad failid saab kustutada

rm /klaviatuur/*.*

Kopeerige kõik ehitise/ kiibi projektifailid:

cp *. * /klaviatuur

Seejärel käivitage interaktiivne Pythoni terminal käsuga

repl

Nüüd saate käivitada Pythoni käske või importida mooduleid ja jälgida kiipide jadaväljundit MiPy-ESP logger moodulist.

Taaskäivitage kiip, vajutades lähtestamisnuppu või käsurealt

import peamine

või

impordimasin

ja siis

machine.reset ()

Sõltuvalt projekti konfiguratsioonifaili logimis-/silumisseadetest kuvab repl nüüd jadaühenduse kaudu ESP -kiibi silumissõnumid.

Loodetavasti peaks see alustama.

Soovitan: