Indholdsfortegnelse:

Kom godt i gang med Python til ESP8266 og ESP32: 6 trin
Kom godt i gang med Python til ESP8266 og ESP32: 6 trin

Video: Kom godt i gang med Python til ESP8266 og ESP32: 6 trin

Video: Kom godt i gang med Python til ESP8266 og ESP32: 6 trin
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Juli
Anonim
Kom godt i gang med Python til ESP8266 og ESP32
Kom godt i gang med Python til ESP8266 og ESP32

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

Wemos D1 Mini ESP8266 Board
Wemos D1 Mini ESP8266 Board
Wemos D1 Mini ESP8266 Board
Wemos D1 Mini ESP8266 Board
Wemos D1 Mini ESP8266 Board
Wemos D1 Mini ESP8266 Board
Wemos D1 Mini ESP8266 Board
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

Gør dig klar til MicroPython på ESP -chippen
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

Kom godt i gang med MiPy-ESP
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

MiPy-ESP Framework Architecture
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:

  1. 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.
  2. 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.
  3. 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
  4. 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

Udarbejdelse af din projektkode
Udarbejdelse af din projektkode
Udarbejdelse af din projektkode
Udarbejdelse 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

Kompilering og upload af koden til mikrokontrolleren
Kompilering og upload af koden til mikrokontrolleren
Kompilering og upload af koden til mikrokontrolleren
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: