Sisällysluettelo:

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

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

Video: Pythonin käytön aloittaminen ESP8266 ja ESP32: 6 vaihetta
Video: Как собрать ПЛК LDmicro Arduino (часть 1) 2024, Joulukuu
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.

Suositeltava: