Pythonin käytön aloittaminen ESP8266 ja ESP32: 6 vaihetta
Pythonin käytön aloittaminen ESP8266 ja ESP32: 6 vaihetta
Anonim
Pythonin käytön aloittaminen laitteille ESP8266 ja ESP32
Pythonin käytön aloittaminen laitteille ESP8266 ja ESP32

Tausta

ESP8266 ja sen nuorempi isoveli ESP32 ovat edullisia Wi-Fi-mikrosiruja, joissa on täysi TCP/IP-pino ja mikro-ohjainkyky. ESP8266-siru tuli valmistajayhteisön tietoon ensimmäisen kerran jo vuonna 2014. Siitä lähtien alhainen hinta (<5 USD), sen Wi-Fi-ominaisuus, sisäänrakennettu 1 tai 4 Mt: n flash-muisti ja monipuolinen kehitys on tehnyt ESP-sirusta yhden suosituimmista mikro-ohjaimista WiFi- ja IoT DIY -projekteissa.

MicroPython on laiha ja tehokas toteutus yhä suositummasta Python -ohjelmointikielestä, joka sisältää pienen osajoukon Python -standardikirjastosta ja joka on optimoitu toimimaan mikro -ohjaimilla.

Näiden kahden yhdistelmä on erittäin mielenkiintoinen vaihtoehto DIY -projekteille sekä aloittelijoille että kokeneemmille käyttäjille.

MiPy-ESP-projekti

Vuonna 2015 ensimmäiset projektini ESP8266: n kanssa alkoivat ESP-01-sirulla, joka käytti Arudionsia sirun AT-komentojen suorittamiseen sarjaliitännän kautta. Sen jälkeen käytin seuraavien vuosien aikana Arduino -ydintä ESP8266: lle sirujen ohjelmoimiseksi C ++ -kielellä. Tämä toimii hyvin, mutta Python -harrastajalle löytöni Python 3: n MicroPython -toteutuksesta oli hieno uutinen.

MiPy-ESP-projekti on joustava kehys, joka soveltaa MicroPythonia täydellisiin Python IoT -projekteihin ESP-perheen mikro-ohjaimissa.

Kehyksen on kehittänyt LeGarage-teknisen komitean ohjelmistokehittäjäryhmä (LG-TC-SWDT-01), jonka tarkoituksena on korvata jo vakiintunut C ++ -pohjainen koodi mikro-ohjainsovelluksillemme.

Projekti tarjoaa perusominaisuuksia, kuten

  • Verkkoyhteysmenettelyt
  • Chip -tukiaseman verkkopalvelin (wifi -yhteydelle ja sirujen verkkosivujen palvelemiselle datan I/O: lle)
  • MQTT -toiminnot
  • Kirjaaminen/virheenkorjaus
  • Mikro -ohjaimen tapahtumien ajoitus
  • Laitteiston I/O -rutiinit

Yksi pääkompakti koodikomentosarja (main.py), kaikki globaalilla kokoonpanolla (config.py).

Tämä mikrokontrollerikoodi toimii tehokkaasti ylläpitämällä siruliitäntöjä WiFi -verkkoon ja MQTT -välittäjiin. Olemassa olevat MicroPython -moduulit eri laitteistoille voidaan helposti integroida järjestelmään.

MiPy-ESP-kehyksestä on tullut kaikkien harrastuselektroniikan IoT-projektiemme selkäranka, johon kuuluu ESP-perheen mikro-ohjaimia. Se on testattu useilla ESP-perheen levyillä, kuten NodeMCU-, Wemos- ja Lolin-levyillä.

Seuraava opetusohjelma opastaa ESP-perheen mikro-ohjaimien ja MicroPythonin käytön aloittamiseen MiPy-ESP-kehyksen avulla.

Vaihe 1: Wemos D1 Mini ESP8266 -levy

Wemos D1 Mini ESP8266 -levy
Wemos D1 Mini ESP8266 -levy
Wemos D1 Mini ESP8266 -levy
Wemos D1 Mini ESP8266 -levy
Wemos D1 Mini ESP8266 -levy
Wemos D1 Mini ESP8266 -levy
Wemos D1 Mini ESP8266 -levy
Wemos D1 Mini ESP8266 -levy

MiPy-ESP-kehys toimii useimpien ESP8266-pohjaisten mikro-ohjaimien kanssa.

Wemos D1 mini -kehityskortti perustuu ESP-8266EX-siruun. 2,5 x 3,5 cm: n jalanjäljellä siinä on 4 Mt: n flash -muisti, 11 digitaalista tulo-/ulostulonappia, kaikki nastat tukevat keskeytystä, PWM, I2C, SPI, sarja ja 1 analoginen tulo, jonka maksimitulo on 3,3 V, voidaan käyttää 5 V: n virralla, siinä on mikro -USB -liitäntä ja se on yhteensopiva leipälevyn kanssa. Alhainen hinta ja sen pieni koko ovat tehneet siitä suosikki ESP -levyn.

Lisäksi kortin D1 mini pro -versiossa on mahdollisuus liittää ulkoinen antenni, mikä lisää liitäntäaluetta merkittävästi (+100 m: n kantama). Tämän lisäksi levyyn kuuluu myös erilaisia valmiita laajennuslevyjä, joiden koko on samanlainen.

Vaihe 2: MicroPythonin valmistautuminen ESP -sirulle

Valmistautuminen MicroPythoniin ESP -sirulla
Valmistautuminen MicroPythoniin ESP -sirulla

Tässä ensimmäisessä vaiheessa teet

  • Liitä ESP -kortti tietokoneeseen USB -liitännän kautta
  • Asenna Esptool -ohjelmisto sirun vilkuttamiseen
  • Tyhjennä sirumuisti
  • Flash -siru MicroPython -laiteohjelmistolla
  • Asenna Rshell, jotta komentorivin vuorovaikutus voidaan ottaa käyttöön sirusi kanssa
  • Asenna mpy-cross (.py-tiedostojen kääntämiseksi binääriksi)

Taulun liittäminen tietokoneeseen USB-korttien kautta, joissa on sisäänrakennettu USB-sarjaportti, tekee UART: n saataville tietokoneellesi ja on helpoin vaihtoehto alkuun pääsemiseksi. Jos levyllä ei ole USB -liitäntää, FTDI -moduulia, jossa on USB -sarja, voidaan käyttää GPIO -nastojen liittämiseen ulkomaailmaan, mutta tämä ei kuulu tähän opetusohjelmaan.

MiPy-ESP-koodia käyttävässä MicroPythonissa sirun flash-koon vähimmäisvaatimus on 1 Mt. On myös erityinen rakenne levyille, joiden koko on 512 kt, mutta tämä ei tue tiedostojärjestelmää, josta MiPy-ESP riippuu.

Kun käytät USB -kaapelia, tietokone saa virtansa levylle, kun se on kytketty. Tämä mahdollistaa myös ohjelmoinnin ja virheenkorjauksen sarjaliitännän kautta. Kun projektikoodi ladataan ja projektisi otetaan käyttöön, kortin virtalähteiden päälle syötetään ulkoista virtaa.

Esptool -ohjelmiston tiedot löytyvät Esptool GitHub -varastosta. Jos haluat käyttää Windows/Linux/OSX (MAC) -järjestelmää, yllä oleva linkki kattaa myös sen. Python -paketin voi asentaa

pip asenna esptool

Linux -käyttäjille Esptool -paketteja ylläpidetään Debianille ja Ubuntulle, ja ne voidaan myös asentaa

sudo apt asentaa esptool

ESP -flash -muistin pyyhkiminen Esptoolia käyttämällä ESP -flash -muisti tyhjennetään komennolla

esptool.py --port /dev /ttyUSB0 erase_flash

MicroPyton -laiteohjelmiston lataaminen MicroPython -laiteohjelmisto sijaitsee.bin -tiedostossa, jonka voi ladata MicroPython -sivustosta.

Repon nykyinen projektin päähaara on testattu ja toimii Micropython v.1.12: n kanssa. Varmistaaksesi MiPY-ESP-kehyksen onnistumisen, lataa tiedosto 'esp8266-20191220-v1.12.bin' tästä linkistä ja kirjoita laiteohjelmisto sirulle komennolla:

esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = havaitse 0 esp8266-20191220-v1.12.bin

Rshellin asennus Rshell -paketti mahdollistaa komentorivin vuorovaikutuksen sirulle asennetun MicroPython -ympäristön kanssa. Se löytyy tästä linkistä. Rshell on yksinkertainen kuori, joka toimii isäntänä ja käyttää MicroPythonin raw-REPL-protokollaa python-katkelmien lähettämiseen näppäimistöön tiedostojärjestelmätietojen saamiseksi ja tiedostojen kopioimiseksi MicroPython-tiedostojärjestelmään ja sieltä. REPL on lyhenne sanoista Read Evaluate Print Loop, ja se on nimi, joka annetaan interaktiiviselle MicroPython -kehotteelle, jota voit käyttää ESP8266 -laitteessa. REPL: n käyttäminen on ylivoimaisesti helpoin tapa testata koodisi ja suorittaa komentoja. Asenna Rshell komennolla:

sudo pip asenna rshell

Asentamalla mpy-cross-kääntäjä MicroPython voidaan käyttää sirutiedostojärjestelmään ladattuja ascii.py-tiedostoja. MicroPython määrittelee myös.mpy -tiedostojen käsitteen, joka on binäärisäiliötiedostomuoto, joka sisältää valmiiksi kootun koodin ja joka voidaan tuoda tavallisen.py -moduulin tapaan. Kääntämällä.py -tiedostot.mpy -tiedostoon lisää RAM -muistia juoksevalle koodillesi - ja tämä on tarpeen, jotta MiPy -ESP -kehyksen ydinmoduuli toimii.

MiPy-ESP-koodin käyttöönottoa varten mpy-cross MicroPython cross-kääntäjä kääntää.py-komentosarjat.mpy-tiedostoon ennen sirun lataamista. Asenna mpy-cross-paketti tämän linkin ohjeiden mukaisesti. Vaihtoehtoisesti mpy-cross-komento voidaan asentaa Python pip -komennolla tai suorittaa mpy-cross-kansion polulta, jos kloonat MicroPython-arkiston täältä GitHubista.

Sinulla on nyt MicroPython ja kaikki tarvittavat työkalut asennettuna ensimmäisen MiPy-ESP-projektisi rakentamiseen

Vaihe 3: MiPy-ESP: n käytön aloittaminen

MiPy-ESP: n käytön aloittaminen
MiPy-ESP: n käytön aloittaminen

Tässä vaiheessa teet

Lataa MyPy-ESP-kehys

MiPy-ESP-kehyksen lataaminen MiPy-ESP-projekti löytyy GitHubista tästä koodivarastosta. GitHubista voit ladata arkiston tiedostorakenteen tai kloonata sen tietokoneellesi

git -klooni

Kun koodivarasto on asennettu tietokoneellesi, sinulla on nyt kaikki koodimoduulit, joita tarvitset valmiiden ESP IoT -projektien rakentamiseen. Lisätietoja työkalupakista seuraavassa vaiheessa.

Vaihe 4: MiPy-ESP-puitearkkitehtuuri

MiPy-ESP-puitearkkitehtuuri
MiPy-ESP-puitearkkitehtuuri

Tässä vaiheessa teet

oppia MiPy-ESP-koodin työnkulusta

MiPy-ESP-koodiarkkitehtuuri

Kaikki Python-kehysmoduulit löytyvät MiPY-ESP-koodivaraston /src-kansiosta. Src/core -kansio sisältää ydinmoduulit, jotka menevät jokaiseen projektiin. Src/drivers -kansiossa on valikoima moduuleja eri laitteille, jotka liitetään siruun. Src/utility -kansio sisältää valinnaisia apumoduuleja, jotka voidaan sisällyttää projektiin.

Tiedostot main.py ja config.py löytyvät kansiosta src/. Nämä ovat tärkeimmät muokattavat tiedostot projektin rakentamiseksi:

config.py:

Tämä tiedosto on projektisi yleinen määritystiedosto. Siinä on erilaisia asetuksia, joissa kaikissa on kuvaavia kommentteja.

main.py:

Tämä on mikro-ohjaimen koodisilmukan pääskripti. Se sisältää sovelluskohtaisen koodin kehyksessä. Sirun käynnistyksen yhteydessä main.py suorittaa ja tuo kaikki projektista riippuvat moduulit annetuilla panoksilla config.py-tiedostosta. Yllä oleva vuokaavio näyttää main.py -komentosarjan asettelun.

Yllä oleva kuva kuvaa main.py: n työnkulkua:

  1. Käynnistyksen yhteydessä koodi yrittää yhdistää sirun Wi-Fi-verkkoonAiemmin käytetyt verkot ja niiden salasanat (sirulle salatut) tallennetaan flash-muistiin. SSID1 ":" Salasana "," SSID ":" Salasana2 "}. Tämän tiedoston tietyt verkot tallennetaan, salasanat salataan ja tiedosto poistetaan käynnistyksen yhteydessä.
  2. Jos tunnettuja verkkoja ei löydy, koodi määrittää tukiaseman (AP) verkkopalvelimen Sirun AP -palvelimen SSID ja salasana asetetaan config.py -tiedostoon. Kirjautumalla sirun SSID-tunnukseen, verkkosivu, jolla siru kirjaudutaan Wi-Fi-verkkoon, näytetään osoitteessa 192.168.4.1 Havaitut verkot näkyvät valikossa tai SSID voidaan syöttää manuaalisesti (piilotetut verkot) yhdessä Wi-Fi-salasanan kanssa. Kun siru on yhdistetty onnistuneesti Wi-Fi-verkkoon, tukiasemapalvelin sammuu ja main.py-koodi jatkaa seuraaviin vaiheisiin.
  3. Main.py: n Asetukset -osiossa
    • toimintoja töille ja takaisinsoittoille (jne. MQTT -takaisinsoitot) ja säännöllisille tapahtumille.
    • Juoksutoiminnoille on asetettu erilaisia ajastettuja töitä.
    • MQTT -välittäjäasiakas on perustettu
  4. Koodi menee sitten mikro-ohjaimen pääsilmukkaan,

    • jatkuvasti tarkistaa verkko- ja MQTT -välittäjäyhteydet,
    • MQTT -tilaukset,
    • laitteiston I/O
    • ja aikataulutetut työt.
    • Jos verkko- tai MQTT-välittäjäyhteys katkeaa, koodi yrittää luoda uudelleen.

Vaihe 5: Projektikoodin valmistelu

Projektikoodin valmistelu
Projektikoodin valmistelu
Projektikoodin valmistelu
Projektikoodin valmistelu

Tässä vaiheessa teet

  • oppia MiPy-ESP-arkiston tiedostorakenteesta
  • valmistele projektikoodisi sirun lataamista varten

Arkiston kansiorakenne Yllä oleva kuva kuvaa arkiston kansiorakennetta ja luettelee kehyksen nykyiset moduulit. Projektisi on vaiheita src/ kansiossa. Ydin MiPy-ESP-kehysmoduulit sijaitsevat src/core-ohjelmassa, valinnaiset apuohjelmamoduulit src/apuohjelmat -laitteistossa ja laitteistomoduulit src/-ohjaimissa.

Useimmat saatavilla olevat MicroPython -laitteistokirjastot voivat siirtyä ohjaimiin/ kansioon ilman muutoksia. Kaikki nykyiset ohjaimet testataan MiPy-ESP-kehyksellä. Apuohjelmien/ kansion moduuleja lisätään lisää niiden tullessa eloon.

Projektikoodin vaiheistus Projektikohtainen koodisi tulee sijoittaa src/ kansioon. Main.py- ja config.py -tiedostot ovat jo muokattavissa. Kopioi myös halutut projektin apuohjelmat src/utility ja src/drivers -src/.

Jos haluat toimittaa tunnetut Wi-Fi-verkot ja salasanat sirulle, lisää tiedosto wifi.json kohteeseen src/.

Toimitettua Makefileä voidaan käyttää tiedostojen valmisteluun sirulle siirtämiseksi kokoamalla.py -tiedostot / src -tiedostoon, kokoamalla ydinmoduulit ja siirtämällä kootut tiedostot uuteen kansioon nimeltä build / komennolla

saada rakentamaan

Koontiversiossa olevat tiedostot ovat valmiita ladattavaksi sirutiedostojärjestelmään. Oletuksena main.py ja config.py eivät ole käännetty binääriksi, jotta niihin pääsee helposti käsiksi käytettävien sirujen tarkastamiseksi. Käsky:

tehdä puhtaiksi

Poistaa koontiversion/ kansion ja sen sisällön.

Vaihe 6: Koodin kokoaminen ja lataaminen mikro -ohjaimeen

Koodin kokoaminen ja lataaminen mikro -ohjaimeen
Koodin kokoaminen ja lataaminen mikro -ohjaimeen
Koodin kokoaminen ja lataaminen mikro -ohjaimeen
Koodin kokoaminen ja lataaminen mikro -ohjaimeen

Tässä osiossa saat

  • lataa valmiit tiedostot koontiversiossa/ viimeisestä osasta
  • käynnistä ja seuraa käynnissä olevaa koodia

Rakennuksen/ tiedostojen lataaminen Rshellillä

Lataa kaikki /build -hakemiston tiedostot ESP -sirulle Rshellin avulla. Kun mikro -ohjain on kytketty USB: hen, käynnistä Rshell komennolla koontiversiosta/ kansiosta

rshell -p /dev /ttyUSB0

Tarkista sitten sirutiedostot (jos niitä on)

ls /näppäimistö

Kaikki sirulla olevat tiedostot voidaan poistaa

rm /näppäimistö/*.*

Kopioi kaikki rakennustiedostot/ sirulle:

cp *. * /näppäimistö

Käynnistä sitten interaktiivinen Python -pääte komennolla

repl

Voit nyt kutsua Python-komentoja tai tuoda moduuleja ja seurata sirun sarjalähtöä MiPy-ESP-kirjausmoduulista.

Käynnistä siru uudelleen painamalla nollauspainiketta tai komentoriviltä

tuonti pää

tai

tuontikone

ja sitten

machine.reset ()

Riippuen kirjaus-/virheenkorjausasetuksista projektin määritystiedostossa, repl näyttää nyt ESP -sirun virheenkorjausviestit sarjayhteyden kautta.

Tämän pitäisi toivottavasti päästä alkuun.