Innholdsfortegnelse:

Komme i gang med Python for ESP8266 og ESP32: 6 trinn
Komme i gang med Python for ESP8266 og ESP32: 6 trinn

Video: Komme i gang med Python for ESP8266 og ESP32: 6 trinn

Video: Komme i gang med Python for ESP8266 og ESP32: 6 trinn
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, November
Anonim
Komme i gang med Python for ESP8266 og ESP32
Komme i gang med Python for ESP8266 og ESP32

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

Wemos D1 Mini ESP8266 -brettet
Wemos D1 Mini ESP8266 -brettet
Wemos D1 Mini ESP8266 -brettet
Wemos D1 Mini ESP8266 -brettet
Wemos D1 Mini ESP8266 -brettet
Wemos D1 Mini ESP8266 -brettet
Wemos D1 Mini ESP8266 -brettet
Wemos D1 Mini ESP8266 -brettet

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

Gjør deg klar for MicroPython på ESP -brikken
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

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

MiPy-ESP rammearkitektur
MiPy-ESP rammearkitektur

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:

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

Forbereder prosjektkoden din
Forbereder prosjektkoden din
Forbereder prosjektkoden din
Forbereder prosjektkoden din

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

Kompilering og opplasting av koden til mikrokontrolleren
Kompilering og opplasting av koden til mikrokontrolleren
Kompilering og opplasting av koden til mikrokontrolleren
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: