Indholdsfortegnelse:
- Trin 1: Wemos D1 Mini ESP8266 Board
- Trin 2: Gør dig klar til MicroPython på ESP -chippen
- Trin 3: Kom godt i gang med MiPy-ESP
- Trin 4: MiPy-ESP Framework Architecture
- Trin 5: Forberedelse af din projektkode
- Trin 6: Kompilering og upload af koden til mikrokontrolleren
Video: Kom godt i gang med Python til ESP8266 og ESP32: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Baggrund
ESP8266 og den yngre storebror ESP32 er billige Wi-Fi-mikrochips med fuld TCP/IP-stak og mikro-controller-kapacitet. ESP8266-chippen blev først opmærksom på producentfællesskabet tilbage i 2014. Siden da har den lave pris (<5 USD), dens Wi-Fi-kapacitet, en indbygget flashhukommelse på 1 eller 4 MB og en række tilgængelige udviklinger boards, har gjort ESP-chippen til en af de mest populære mikro-controllere til WiFi og IoT DIY-projekter.
MicroPython er en slank og effektiv implementering af det stadig mere populære Python -programmeringssprog, der indeholder en lille delmængde af Python -standardbiblioteket og er optimeret til at køre på mikrokontrollere.
Kombinationen af disse to er en meget interessant mulighed for DIY -projekter, både for begyndere og mere avancerede brugere.
MiPy-ESP-projektet
Tilbage i 2015 startede mine første projekter med ESP8266 med ESP-01-chippen ved hjælp af Arudions til at køre chip AT-kommandoer over seriel forbindelse. Derefter anvendte jeg i de næste år Arduino -kernen til ESP8266 til programmering af chipsene med C ++ - sproget. Dette fungerer fint, men for en Python -entusiast var min opdagelse af MicroPython -implementeringen af Python 3 gode nyheder.
MiPy-ESP-projektet er en fleksibel ramme, der anvender MicroPython til Python IoT-projekter i fuld stak på ESP-familiens mikrokontroller.
Rammen er udviklet af LeGarage Technical Comité Software Developer Team (LG-TC-SWDT-01) med det formål at erstatte allerede etablerede C ++-baserede kode til vores mikrokontrollerprogrammer.
Projektet giver grundlæggende funktioner som f.eks
- Netværksforbindelsesprocedurer
- Chip access point webserver (til wifi -forbindelse og servering af chip -websider til data I/O)
- MQTT funktionaliteter
- Logning/fejlfinding
- Planlægning af mikrokontroller -begivenheder
- Hardware I/O -rutiner
Med et hovedkompakt kodescript (main.py), alle med global konfiguration (config.py).
Denne mictocontroller -kode kører med robust vedligeholdelse af chipforbindelser til WiFi -netværk og MQTT -mæglere. Eksisterende MicroPython -moduler til forskellige hardware kan let integreres i systemet.
MiPy-ESP-rammen er blevet rygraden i alle vores hobbyelektronik IoT-projekter, der involverer ESP-familie mikrokontroller. Det er blevet testet på flere ESP-familie boards, som NodeMCU, Wemos og Lolin boards.
Den følgende vejledning er en vejledning til, hvordan du kommer i gang med ESP-familie mikrokontrollere og MicroPython ved hjælp af MiPy-ESP-rammen.
Trin 1: Wemos D1 Mini ESP8266 Board
MiPy-ESP-rammen fungerer med de fleste ESP8266-baserede mikrokontrollere.
Wemos D1 mini udviklingsbord er baseret på ESP-8266EX chip. På et fodaftryk på 2,5 x 3,5 cm har den 4 MB flashhukommelse, 11 digitale input/output -ben, alle ben understøtter afbrydelse, PWM, I2C, SPI, seriel og 1 analog indgang med maksimum 3,3 V input, kan køre på 5V strøm, har mikro -USB -forbindelse og er brødbrætskompatibel. Den lave pris og den lille størrelse har gjort det til mit foretrukne ESP -bord.
Derudover leveres D1 mini pro -versionen af kortet med mulighed for tilslutning af en ekstern antenne, hvilket øger forbindelsesområdet betydeligt (+100 m rækkevidde). Hertil kommer, at brættet også leveres med en række ud-af-kassen forlængelsesbrædder med lignende kompakte størrelse.
Trin 2: Gør dig klar til MicroPython på ESP -chippen
I dette første trin vil du
- Tilslut ESP -kortet via USB til din computer
- Installer Esptool -softwaren til at blinke chippen
- Slet chiphukommelse
- Flash chippen med MicroPython firmware
- Installer Rshell for at muliggøre kommandolinjens interaktion med din chip
- Installer mpy-cross (til kompilering af.py-filer til binær)
Tilslutning af kortet til din computer via USBBoard med en indbygget USB-seriel port gør UART tilgængelig for din pc og er den nemmeste mulighed for at komme i gang. For tavler uden USB -forbindelse kan et FTDI -modul med USB til seriel bruges til at forbinde GPIO -benene til at blinke forbundet til omverdenen, men dette er ikke dækket af denne vejledning.
For MicroPython, der bruger MiPy-ESP-koden, er minimumskravet til chipflashstørrelse 1 MB. Der er også en særlig build til boards med 512 kB, men dette har ingen understøttelse af et filsystem, som MiPy-ESP afhænger af.
Når du bruger et USB -kabel, får kortet strøm fra din computer, mens det er tilsluttet. Dette giver også mulighed for programmering og fejlfinding over den serielle forbindelse. Når projektkoden uploades, og dit projekt implementeres, tilføres ekstern strøm over tavlenes strømforsyningspinde.
Installation af EsptoolInformation om Esptool -softwaren findes i Esptool GitHub -depotet. Hvis du vil bruge Windows/Linux/OSX (MAC), dækker ovenstående link også det. Python -pakken kan installeres af
pip installere esptool
For Linux -brugere vedligeholdes pakker til Esptool til Debian og Ubuntu og kan også installeres med
sudo apt installere esptool
Sletning af ESP -flashhukommelse Ved hjælp af Esptool sletter du derefter ESP -flashhukommelsen med kommandoen
esptool.py --port /dev /ttyUSB0 erase_flash
Download af MicroPyton -firmware MicroPython -firmware findes i en.bin -fil, der kan downloades fra MicroPython -webstedet.
Den nuværende projektmastergren i repoen er testet og fungerer med Micropython v.1.12. For at sikre succes med MiPY-ESP-rammerne skal du downloade filen 'esp8266-20191220-v1.12.bin' fra dette link og skrive firmwaren til chippen med kommandoen:
esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = detect 0 esp8266-20191220-v1.12.bin
Installation af Rshell Rshell -pakken muliggør kommandolinjeinteraktion med dit MicroPython -miljø installeret på chippen. Det kan findes i dette link. Rshell er en enkel skal, der kører på værten og bruger MicroPythons raw-REPL til at sende pythonuddrag til pyboardet for at hente filsystemoplysninger og for at kopiere filer til og fra MicroPythons filsystem. REPL står for Read Evaluate Print Loop og er navnet på den interaktive MicroPython -prompt, som du kan få adgang til på ESP8266. Brug af REPL er langt den nemmeste måde at teste din kode og køre kommandoer på. Installer Rshell med kommandoen:
sudo pip installer rshell
Installation af mpy-cross-kompilatoren MicroPython kan anvendes med ascii.py-filer, der uploades til chipfilsystemet. MicroPython definerer også begrebet.mpy -filer, som er et binært containerfilformat, der indeholder forkompileret kode, og som kan importeres som et normalt.py -modul. Ved at kompilere.py -filer til.mpy vil der være mere RAM -hukommelse tilgængelig til din kørende kode - og dette er nødvendigt for at have et fungerende kernemodul i MiPy -ESP -rammen.
Til implementering af MiPy-ESP-kode kompilerer en mpy-cross MicroPython-cross-kompilatoren.py-scripts til.mpy før chipoverførsel. Installer mpy-cross-pakken efter vejledningen i dette link. Alternativt kan mpy-cross-kommandoen installeres med Python pip-kommando eller køre fra mpy-cross-mappestien, hvis du kloner MicroPython-depotet fra GitHub her.
Du har nu installeret MicroPython og alle de nødvendige værktøjer til at komme i gang med at bygge dit første MiPy-ESP-projekt
Trin 3: Kom godt i gang med MiPy-ESP
I dette trin vil du
Download MyPy-ESP-rammerne
Download af MiPy-ESP-ramme MiPy-ESP-projektet kan findes på GitHub i dette kodelagringssted. Fra GitHub kan du downloade arkivfilstrukturen eller klone den til din computer ved
git -klon
Med kodelagret installeret på din computer har du nu alle de kodemoduler, du har brug for til at opbygge et out-of-the-box ESP IoT-projekt. Flere detaljer om værktøjskassen i næste trin.
Trin 4: MiPy-ESP Framework Architecture
I dette trin vil du
lære om MiPy-ESP-kode-arbejdsgangen
MiPy-ESP kode arkitektur
Alle Python-rammemoduler findes i mappen /src i MiPY-ESP-kodelagret. Mappen src/core indeholder de kernemoduler, der går ind i hvert projekt. Mappen src/drivers har et udvalg af moduler til forskellige hardware, der skal tilsluttes din chip. Mappen src/utilities indeholder valgfrie hjælpemoduler, der skal inkluderes i dit projekt.
Filerne main.py og config.py findes i src/ mappen. Disse er de vigtigste filer, der skal redigeres til opbygning af dit projekt:
config.py:
Denne fil er den globale konfigurationsfil for dit projekt. Den har forskellige indstillinger, alle med beskrivende kommentarer i filen.
main.py:
Dette er hovedscriptet til mikrocontroller-kodekredsen. Den indeholder den applikationsspecifikke kode i rammen. Ved chipstart kører og importerer main.py alle de projektafhængige moduler med givne input fra filen config.py. Ovenstående rutediagram viser layoutet af main.py -scriptet.
Ovenstående figur beskriver arbejdsgangen for main.py:
- Ved opstart forsøger koden at forbinde chippen til Wi-Fi-netværk Tidligere anvendte netværk og deres adgangskoder (krypteret på chip) gemmes i flash-hukommelse. Netværks-SSID'er og deres adgangskoder kan klargøres i filen wifi.json på formatet "" SSID1 ":" Password "," SSID ":" Password2 "}. De givne netværk i denne fil gemmes, adgangskoder krypteres, og filen slettes ved opstart.
- Hvis der ikke findes netværk i forvejen ved, opretter koden en webserver til et access point (AP) Chippen AP -serverens SSID og adgangskode er angivet i filen config.py. Ved at logge på chip-SSID'et, vises en webside til logon af chippen til Wi-Fi på 192.168.4.1 Detekterede netværk vises i en menu, eller SSID kan indtastes manuelt (skjulte netværk) sammen med Wi-Fi-adgangskode. Efter en vellykket forbindelse af chippen til Wi-Fi lukker AP-serveren ned, og main.py-koden fortsætter til dens næste trin.
-
I afsnittet Opsætning af main.py,
- funktioner til job og tilbagekald (osv. MQTT -tilbagekald) og regelmæssige hændelser er defineret.
- Der indstilles forskellige timede job til kørende funktioner.
- MQTT -mæglerklient er etableret
-
Koden går derefter ind i den vigtigste mikrokontroller loop,
- løbende kontrol af netværks- og MQTT -mæglerforbindelser,
- MQTT -abonnementer,
- hardware I/O
- og planlagte job.
- Ved tabt netværk eller MQTT-mæglerforbindelse forsøger koden at genetablere.
Trin 5: Forberedelse af din projektkode
I dette trin vil du
- lære om MiPy-ESP-arkivfilstrukturen
- forberede din projektkode til chipoverførsel
Lagermappestruktur Figuren ovenfor beskriver opbevaringsmappens struktur og viser de aktuelle moduler i rammen. Dit projekt er etaper i src/ mappen. Core MiPy-ESP-rammemoduler findes i src/core, valgfrie hjælpemoduler i src/utilities og hardwaremoduler i src/drivere.
De fleste tilgængelige MicroPython -hardwarebiblioteker kan gå ind i driverne/ mappen uden ændringer. Alle nuværende drivere er testet med MiPy-ESP-rammen. Med hensyn til moduler i hjælpeprogrammerne/ mappen vil der blive tilføjet flere, når de kommer til live.
Isætning af projektkode Din projektspecifikke kode skal placeres i src/ mappen. Allerede der er main.py og config.py filerne, du kan redigere. Kopier også de ønskede projektværktøjer fra src/utilities og src/drivers til src/.
Hvis du vil tilvejebringe kendte Wi-Fi-netværk og adgangskoder til chippen, skal du tilføje filen wifi.json til src/.
Kompilering og forberedelse til upload En forudsat Makefile kan anvendes til at forberede filer til overførsel til chip ved at kompilere.py -filer i / src, kompilere kernemodulerne og overføre de kompilerede filer til en ny mappe med navnet build / med kommandoen
lave bygge
Filerne i build er klar til upload til chipfilsystemet. Som standard kompileres main.py og config.py ikke til binært for let at få adgang til dem til inspektion af implementerede chips. Kommandoen:
gøre rent
Sletter build/ mappen og dens indhold.
Trin 6: Kompilering og upload af koden til mikrokontrolleren
I dette afsnit vil du
- uploade de forberedte filer i build/ fra sidste sektion
- starte og overvåge den kørende kode
Upload af build/ filer med Rshell
Upload alle filer i /build bibliotek til ESP -chip ved hjælp af Rshell. Med mikrokontrolleren tilsluttet USB starter Rshell fra build/ mappen med kommandoen
rshell -p /dev /ttyUSB0
Efterse derefter chipfilerne (hvis nogen) ved
ls /pyboard
Alle filer på chip kan slettes af
rm /pyboard/*.*
Kopier alle projektfiler i build/ til chippen:
cp *. * /pyboard
Start derefter den interaktive Python -terminal med kommandoen
udskiftning
Du kan nu påberåbe Python-kommandoer eller importere moduler og overvåge chip-seriel output fra MiPy-ESP-loggermodulet.
Genstart chippen ved at trykke på reset -knappen eller fra kommandolinjen ved
import hoved
eller
import maskine
og så
machine.reset ()
Afhængigt af dine lognings-/fejlfindingsindstillinger i projektkonfigurationsfilen vil replen nu vise fejlfindingsmeddelelser fra ESP -chippen over den serielle forbindelse.
Dette skulle forhåbentlig få dig i gang.
Anbefalede:
Kom godt i gang med Python: 7 trin (med billeder)
Kom godt i gang med Python: Programmering er fantastisk! Det er kreativt, sjovt og giver din hjerne en mental træning. Mange af os ønsker at lære mere om programmering, men overbeviser os selv om, at vi ikke kan. Måske har den for meget matematik, måske skræmmer den jargon, der kastes rundt
Kom godt i gang med ESP32 CAM - Streaming af video ved hjælp af ESP CAM over Wifi - ESP32 sikkerhedskamera projekt: 8 trin
Kom godt i gang med ESP32 CAM | Streaming af video ved hjælp af ESP CAM over Wifi | ESP32 Security Camera Project: I dag lærer vi, hvordan man bruger dette nye ESP32 CAM -kort, og hvordan vi kan kode det og bruge det som et sikkerhedskamera og få en streaming video over wifi
Kom godt i gang med ESP32 - Installation af ESP32 -plader i Arduino IDE - ESP32 Blink -kode: 3 trin
Kom godt i gang med ESP32 | Installation af ESP32 -plader i Arduino IDE | ESP32 Blink -kode: I denne instruks kan vi se, hvordan man begynder at arbejde med esp32, og hvordan man installerer esp32 -kort i Arduino IDE, og vi vil programmere esp 32 til at køre blinkkode ved hjælp af arduino ide
Kom godt i gang med MicroPython på ESP8266: 10 trin (med billeder)
Kom godt i gang med MicroPython på ESP8266: Vil du have en anden måde at programmere de ESP8266-baserede kort frem for den almindelige metode ved hjælp af Arduino IDE sammen med C/C ++ programmeringssprog? I denne vejledning lærer vi, hvem du skal konfigurere og styre et ESP8266 bord ved hjælp af MicroPython.BUIL
Kom godt i gang med MBlock -browserbaseret kodning til HyperDuino: 3 trin
Kom godt i gang med MBlock -browserbaseret kodning til HyperDuino: Velkommen til mBlock -webbaseret tutorial med HyperDuino. Dette viser dig, hvordan du konfigurerer mBlock og uploader din kode til din HyperDuino. Dette viser dig også, hvordan du opretter en grundlæggende kode til en smart bil. For at starte kan vi springe lige ind