Innholdsfortegnelse:
- Trinn 1: Wemos D1 Mini ESP8266 -kortet
- Trinn 2: Gjør deg klar for MicroPython på ESP -brikken
- Trinn 3: Komme i gang med MiPy-ESP
- Trinn 4: MiPy-ESP Framework Architecture
- Trinn 5: Forberede prosjektkoden
- Trinn 6: Kompilering og opplasting av koden til mikrokontrolleren
Video: Komme i gang med Python for ESP8266 og ESP32: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Bakgrunn
ESP8266 og den yngre storebroren ESP32 er rimelige Wi-Fi-mikrobrikker med full TCP/IP-stabel og mikrokontroller. ESP8266-brikken ble først oppmerksom på produsentmiljøet tilbake i 2014. Siden den lave prisen (<5 USD), Wi-Fi-funksjonen, et innebygd flashminne på 1 eller 4 MB og en rekke tilgjengelige utviklinger boards, har gjort ESP-brikken til en av de mest populære mikrokontrollerne for WiFi og IoT DIY-prosjekter.
MicroPython er en slank og effektiv implementering av det stadig mer populære Python -programmeringsspråket som inkluderer en liten delmengde av Python -standardbiblioteket og er optimalisert for å kjøre på mikrokontrollere.
Kombinasjonen av disse to er et veldig interessant alternativ for DIY -prosjekter, både for nybegynnere og mer avanserte brukere.
MiPy-ESP-prosjektet
Tilbake i 2015 startet mine første prosjekter med ESP8266 med ESP-01-brikken ved bruk av Arudions for å kjøre chip AT-kommandoer over seriell tilkobling. Etter det brukte jeg i løpet av de neste årene Arduino -kjernen for ESP8266 for programmering av sjetongene med C ++ - språket. Dette fungerer bra, men for en Python -entusiast var oppdagelsen av MicroPython -implementeringen av Python 3 gode nyheter.
MiPy-ESP-prosjektet er et fleksibelt rammeverk som bruker MicroPython for Python IoT-prosjekter med full stabel på mikrokontrollerne i ESP-familien.
Rammeverket er utviklet av LeGarage Technical Comité Software Developer Team (LG-TC-SWDT-01) som tar sikte på å erstatte allerede etablert C ++-basert kode for våre mikrokontrollerprogrammer.
Prosjektet gir grunnleggende funksjoner som f.eks
- Prosedyrer for nettverkstilkobling
- Chip access point webserver (for wifi -tilkobling og servering av chip -websider for data I/O)
- MQTT -funksjoner
- Logging/feilsøking
- Planlegging av hendelser for mikrokontroller
- I/O -rutiner for maskinvare
Med ett kompakt hovedskript (main.py), alle med global konfigurasjon (config.py).
Denne mictocontroller -koden kjører med robust vedlikehold av brikketilkoblinger til WiFi -nettverk og MQTT -meglere. Eksisterende MicroPython -moduler for forskjellig maskinvare kan enkelt integreres i systemet.
MiPy-ESP-rammeverket har blitt ryggraden i alle våre hobbyelektronikk IoT-prosjekter som involverer ESP-familie mikrokontroller. Den er testet på flere ESP-familieplater, som NodeMCU, Wemos og Lolin-plater.
Følgende opplæring er en veiledning for hvordan du kommer i gang med ESP-familie mikrokontrollere og MicroPython ved bruk av MiPy-ESP-rammeverket.
Trinn 1: Wemos D1 Mini ESP8266 -kortet
MiPy-ESP-rammeverket fungerer med de fleste ESP8266-baserte mikrokontrollere.
Wemos D1 mini utviklingsbord er basert på ESP-8266EX chip. På et fotavtrykk på 2,5 x 3,5 cm har den 4 MB flashminne, 11 digitale inngangs-/utgangspinner, alle pinner støtter avbrudd, PWM, I2C, SPI, seriell og 1 analog inngang med 3,3 V maksimal inngang, kan kjøres på 5V strøm, har mikro -USB -tilkobling og er brødbrettskompatibel. Den lave prisen og den lille størrelsen har gjort det til mitt favoritt ESP -bord.
I tillegg kommer D1 mini pro -versjonen av brettet med mulighet for tilkobling av en ekstern antenne, noe som øker tilkoblingsområdet betydelig (+100 m rekkevidde). I tillegg til det, kommer brettet også med en rekke ut-av-esken forlengelsesplater med lignende kompakte størrelse.
Trinn 2: Gjør deg klar for MicroPython på ESP -brikken
I dette første trinnet vil du
- Koble ESP -kortet via USB til datamaskinen
- Installer Esptool -programvaren for å blinke brikken
- Slett chipminne
- Flash -brikken med MicroPython -fastvaren
- Installer Rshell for å aktivere kommandolinjeinteraksjon med brikken din
- Installer mpy-cross (for kompilering av.py-filer til binær)
Koble kortet til datamaskinen din via USBBoard med en innebygd USB-seriell port gjør UART tilgjengelig for din PC og er det enkleste alternativet for å komme i gang. For kort uten USB -tilkobling kan en FTDI -modul med USB til seriell brukes til å koble GPIO -pinnene for blinking koblet til omverdenen, men dette dekkes ikke i denne opplæringen.
For MicroPython som bruker MiPy-ESP-koden, er minimumskravet for chip flash-størrelse 1 MB. Det er også en spesiell konstruksjon for brett med 512 kB, men dette har ingen støtte for et filsystem, som MiPy-ESP er avhengig av.
Når du bruker en USB -kabel, får kortet strøm fra datamaskinen mens den er tilkoblet. Dette tillater også programmering og feilsøking over den serielle tilkoblingen. Når prosjektkoden lastes opp og prosjektet ditt distribueres, brukes ekstern strøm over strømforsyningspinnene på brettet.
Installere EsptoolInformasjon om Esptool -programvaren finner du på Esptool GitHub -depotet. Hvis du vil bruke Windows/Linux/OSX (MAC), dekker lenken ovenfor også det. Python -pakken kan installeres av
pip installer esptool
For Linux -brukere vedlikeholdes pakker for Esptool for Debian og Ubuntu, og kan også installeres med
sudo apt installere esptool
Slette ESP -flashminne Ved å bruke Esptool sletter du ESP -flashminnet med kommandoen
esptool.py --port /dev /ttyUSB0 erase_flash
Laste ned MicroPyton -fastvaren MicroPython -fastvaren ligger i en.bin -fil som kan lastes ned fra MicroPython -nettstedet.
Gjeldende prosjektmastergren i repoen er testet og er operativ med Micropython v.1.12. For å sikre suksess med MiPY-ESP-rammeverket, last ned filen 'esp8266-20191220-v1.12.bin' fra denne lenken og skriv fastvaren til brikken med kommandoen:
esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = detect 0 esp8266-20191220-v1.12.bin
Installere Rshell Rshell -pakken muliggjør kommandolinjeinteraksjon med ditt MicroPython -miljø installert på brikken. Den finner du i denne lenken. Rshell er et enkelt skall som kjører på verten og bruker MicroPythons raw-REPL for å sende python-utdrag til pyboardet for å få filsysteminformasjon og for å kopiere filer til og fra MicroPythons filsystem. REPL står for Read Evaluate Print Loop, og er navnet gitt til den interaktive MicroPython -ledeteksten du har tilgang til på ESP8266. Å bruke REPL er den desidert enkleste måten å teste ut koden og kjøre kommandoer. Installer Rshell med kommandoen:
sudo pip installer rshell
Installering av mpy-cross-kompilatoren MicroPython kan brukes med ascii.py-filer lastet opp til chipfilsystemet. MicroPython definerer også begrepet.mpy -filer som er et binært containerfilformat som inneholder forhåndskompilert kode, og som kan importeres som en vanlig.py -modul. Ved å kompilere.py -filer til.mpy, vil mer RAM -minne være tilgjengelig for din løpende kode - og dette er nødvendig for å ha en fungerende kjernemodul i MiPy -ESP -rammeverket.
For implementering av MiPy-ESP-kode, samler en mpy-cross MicroPython-krysskompilatoren.py-skriptene til.mpy før opplasting av brikker. Installer mpy-cross-pakken etter instruksjonene i denne lenken. Alternativt kan mpy-cross-kommandoen installeres med Python pip-kommandoen eller kjøres fra mpy-cross-mappebanen hvis du kloner MicroPython-depotet fra GitHub her.
Du har nå MicroPython og alle nødvendige verktøy installert for å komme i gang med å bygge ditt første MiPy-ESP-prosjekt
Trinn 3: Komme i gang med MiPy-ESP
I dette trinnet vil du
Last ned MyPy-ESP-rammeverket
Last ned MiPy-ESP-rammeverket MiPy-ESP-prosjektet finner du på GitHub i dette kodelagret. Fra GitHub kan du laste ned arkivfilstrukturen, eller klone den til datamaskinen din ved
git -klon
Med kodelagret installert på datamaskinen din, har du nå alle kodemodulene du trenger for å bygge et ESP IoT-prosjekt utenom esken. Flere detaljer om verktøykassen i neste trinn.
Trinn 4: MiPy-ESP Framework Architecture
I dette trinnet vil du
lære om arbeidsflyten for MiPy-ESP-koden
MiPy-ESP-kodearkitektur
Alle Python-rammemoduler finnes i /src-mappen i MiPY-ESP-kodelageret. Src/core -mappen inneholder kjernemodulene som går inn i hvert prosjekt. Mappen src/drivers har et utvalg moduler for ulike maskinvarer som skal kobles til brikken din. Mappen src/utilities inneholder valgfrie verktøymoduler som skal inkluderes i prosjektet.
Filene main.py og config.py finnes i src/ mappen. Dette er hovedfilene som skal redigeres for å bygge prosjektet ditt:
config.py:
Denne filen er den globale konfigurasjonsfilen for prosjektet ditt. Den har forskjellige innstillinger, alle med beskrivende kommentarer i filen.
main.py:
Dette er hovedskriptet for mikrokontrollerkodeløkken. Den inneholder den applikasjonsspesifikke koden i rammeverket. Ved chip-oppstart kjører og importerer main.py alle prosjektavhengige moduler med gitte innganger fra config.py-filen. Flytdiagrammet ovenfor viser oppsettet for main.py -skriptet.
Figuren ovenfor beskriver arbeidsflyten til main.py:
- Ved oppstart prøver koden å koble brikken til Wi-Fi-nettverk Tidligere anvendte nettverk og passordene deres (kryptert på brikken) lagres i flashminne. Nettverks-SSID-er og passordene deres kan klargjøres i filen wifi.json på formatet "" SSID1 ":" Passord "," SSID ":" Passord2 "}. De oppgitte nettverkene i denne filen lagres, passordene krypteres og filen slettes ved oppstart.
- Hvis ingen allerede kjente nettverk blir funnet, setter koden opp en tilgangspunkt (AP) webserver Chippen AP -serverens SSID og passord er angitt i config.py -filen. Ved å logge på SSID-brikken, vises en webside for pålogging av brikken til Wi-Fi på 192.168.4.1 Detekterte nettverk vises i en meny, eller SSID kan legges inn manuelt (skjulte nettverk) sammen med Wi-Fi-passord. Etter vellykket tilkobling av brikken til Wi-Fi, slår AP-serveren seg ned, og main.py-koden fortsetter til de neste trinnene.
-
I Oppsett -delen av main.py,
- funksjoner for jobber og tilbakeringing (etc. MQTT -tilbakeringing) og vanlige hendelser er definert.
- Ulike tidsjobber for kjørende funksjoner er angitt.
- MQTT meglerklient er etablert
-
Koden går deretter inn i hovedmikrokontrollerløkken,
- kontinuerlig kontroll av nettverks- og MQTT -meglerforbindelser,
- MQTT -abonnementer,
- maskinvare I/O
- og planlagte jobber.
- Ved tapt nettverk eller MQTT-meglerforbindelse, prøver koden å gjenopprette.
Trinn 5: Forberede prosjektkoden
I dette trinnet vil du
- lære om filstrukturen til MiPy-ESP-depotet
- forberede prosjektkoden din for opplasting av brikker
Lagermappestruktur Figuren ovenfor beskriver strukturen i depotmappen og viser de gjeldende modulene i rammeverket. Prosjektet ditt er etapper i src/ mappen. Core MiPy-ESP-rammemoduler ligger i src/core, valgfrie verktøymoduler i src/verktøy og maskinvaremoduler i src/drivere.
De fleste tilgjengelige MicroPython maskinvarebiblioteker kan gå inn i driverne/ mappen uten noen endringer. Alle nåværende drivere er testet med MiPy-ESP-rammeverket. Når det gjelder moduler i verktøyene/ mappen, vil flere bli lagt til etter hvert som de blir levende.
Lagring av prosjektkode Din projektspesifikke kode bør plasseres i src/ mappen. Allerede der er main.py og config.py filene du kan redigere. Kopier også de ønskede prosjektverktøyene fra src/utilities og src/drivers til src/.
Hvis du vil tilby kjente Wi-Fi-nettverk og passord til brikken, legg til filen wifi.json i src/.
Kompilering og forberedelse for opplasting En gitt Makefile kan brukes for å forberede filer for overføring til chip ved å kompilere.py -filer i / src, kompilere kjernemodulene og overføre de kompilerte filene til en ny mappe med navnet build / av kommandoen
lage bygge
Filene i build er klare for opplasting til chipfilsystemet. Som standard er main.py og config.py ikke kompilert til binære for å få enkel tilgang til dem for inspeksjon av distribuerte sjetonger. Kommandoen:
gjøre rent
Sletter build/ mappen og innholdet.
Trinn 6: Kompilering og opplasting av koden til mikrokontrolleren
I denne delen vil du
- last opp de forberedte filene i build/ fra siste seksjon
- starte og overvåke driftskoden
Laster opp build/ filer med Rshell
Last opp alle filer i /build -katalogen til ESP -brikken ved hjelp av Rshell. Med mikrokontrolleren koblet til USB, starter Rshell med build -kommandoen fra build/ mappen
rshell -p /dev /ttyUSB0
Inspiser deretter chipfilene (hvis noen) ved
ls /pyboard
Alle filer på brikken kan slettes av
rm /pyboard/*.*
Kopier alle prosjektfilene i build/ til brikken:
cp *. * /pyboard
Start deretter den interaktive Python -terminalen med kommandoen
erst
Du kan nå påkalle Python-kommandoer eller importere moduler og overvåke chip-seriell utgang fra MiPy-ESP-loggermodulen.
Start brikken på nytt ved å trykke på tilbakestillingsknappen, eller fra kommandolinjen ved
import hoved
eller
import maskin
og så
machine.reset ()
Avhengig av innstillingene for logging/feilsøking i konfigurasjonsfilen for prosjektet, vil erstatteren nå vise feilsøkingsmeldinger fra ESP -brikken over den serielle tilkoblingen.
Dette bør forhåpentligvis komme i gang.
Anbefalt:
Komme i gang med WeMos ESP8266: 6 trinn
Komme i gang med WeMos ESP8266: I denne instruksen skal vi kjøre det blinkende Led -eksemplet på WeMos ESP8266
Komme i gang med ESP32 CAM - Streaming av video ved bruk av ESP CAM over Wifi - ESP32 sikkerhetskamera -prosjekt: 8 trinn
Komme i gang med ESP32 CAM | Streaming av video ved bruk av ESP CAM over Wifi | ESP32 Security Camera Project: I dag lærer vi hvordan du bruker dette nye ESP32 CAM -kortet og hvordan vi kan kode det og bruke det som et sikkerhetskamera og få en streaming video over wifi
Komme i gang med ESP32 - Installere ESP32 -kort i Arduino IDE - ESP32 Blink -kode: 3 trinn
Komme i gang med ESP32 | Installere ESP32 -kort i Arduino IDE | ESP32 Blink -kode: I denne instruksjonsboken vil vi se hvordan du begynner å jobbe med esp32 og hvordan du installerer esp32 -kort i Arduino IDE, og vi vil programmere esp 32 for å kjøre blinkkode ved hjelp av arduino ide
Komme i gang med MicroPython på ESP8266: 10 trinn (med bilder)
Komme i gang med MicroPython på ESP8266: Vil du ha en annen måte å programmere de ESP8266-baserte kortene i stedet for den vanlige metoden ved å bruke Arduino IDE sammen med C/C ++ programmeringsspråk? I denne opplæringen lærer vi hvem du skal konfigurere og kontrollere et ESP8266 bord med MicroPython.BUIL
ESP32 med integrert OLED (WEMOS/Lolin) - Komme i gang Arduino Style: 4 trinn
ESP32 med integrert OLED (WEMOS/Lolin) - Komme i gang Arduino -stil: Hvis du er som meg, hopper du på sjansen til å få tak i den siste og beste ESP8266/etc … og sette den gjennom sine skritt. ESP32 er ikke annerledes, men jeg har funnet ut at det ikke er for mye der ute ennå med hensyn til dokumentasjon. Den