Sisukord:
- Samm: tahvel Wemos D1 Mini ESP8266
- Samm: valmistuge MicroPythoniks ESP kiibil kasutamiseks
- Samm: MiPy-ESP-ga alustamine
- Samm: MiPy-ESP raamistiku arhitektuur
- Samm: projekti koodi ettevalmistamine
- Samm: koodi koostamine ja mikrokontrollerile üleslaadimine
Video: Pythoniga alustamine ESP8266 ja ESP32 jaoks: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
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
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
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
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
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:
- 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.
- 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.
-
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
-
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
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
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:
Pythoniga alustamine: 7 sammu (piltidega)
Alustage Pythoniga: programmeerimine on fantastiline! See on loominguline, lõbus ja annab ajule vaimse treeningu. Paljud meist tahavad õppida programmeerimisest, kuid veenavad end, et me ei saa. Võib -olla on selles liiga palju matemaatikat, võib -olla hirmutab ümberpööratud žargoon
ESP32 kasutamise alustamine - ESP32 tahvlite installimine Arduino IDE -sse ESP32 vilkuv kood: 3 sammu
ESP32 kasutamise alustamine | ESP32 tahvlite installimine Arduino IDE -sse ESP32 vilkumiskood: selles juhendis näeme, kuidas alustada esp32 -ga töötamist ja kuidas esp32 -tahvleid Arduino IDE -sse installida, ning programmeerime esp 32, et käivitada vilkumiskood arduino ide abil
Mad Lib koos Pythoniga: 10 sammu
Mad Lib koos Pythoniga: Mad Libsi programmi loomine pythonis Mida vajate: 1. Windowsi või Maci arvuti 2. Interneti -ühendus Mida saate lõpuks teada: 1. Stringid 2. Muutujad2. Sisend & printimisfunktsioonid
PiTanq - robotpaak Raspberry Pi ja Pythoniga, et õppida AI -d: 10 sammu
PiTanq-robotpaak Raspberry Pi ja Python to AI abil: Pitanq on robot-tank koos kaameraga, mida toidab Raspberry Pi. Selle eesmärk on aidata õppida isesõitmise tehisintellekti. Paagi tehisintellekti toetavad spetsiaalselt Raspbian Jessie jaoks ehitatud OpenCV ja Tensoflow. Tugeva alumiiniumi baasil
Pythoniga numbrite äratundja: 3 sammu
Digitaalne äratundja koos Pythoniga: üks populaarsemaid aktuaalseid teemasid on „Computer Vision”, mis sisaldab laadimistarkvara allalaadimise tarkvara, mis on ette nähtud patroonide patroonideks. Võimalik kujutlusvõime que esta habilidad es muy útil para una computadora y permite expandir