Tartalomjegyzék:

Első lépések a Python használatával ESP8266 és ESP32 esetén: 6 lépés
Első lépések a Python használatával ESP8266 és ESP32 esetén: 6 lépés

Videó: Első lépések a Python használatával ESP8266 és ESP32 esetén: 6 lépés

Videó: Első lépések a Python használatával ESP8266 és ESP32 esetén: 6 lépés
Videó: 7. ESP32 webkliens IOT alkalmazások 2024, November
Anonim
A Python első lépései ESP8266 és ESP32 rendszerekhez
A Python első lépései ESP8266 és ESP32 rendszerekhez

Bacground

Az ESP8266 és öccse, az ESP32 alacsony költségű Wi-Fi mikrochipek, teljes TCP/IP verem és mikrovezérlő képességgel. Az ESP8266 chip először 2014-ben került a gyártóközösség figyelmébe. Azóta az alacsony ár (<5 USD), a Wi-Fi-képessége, az 1 vagy 4 MB-os beépített flash memória és a különféle fejlesztések táblák, az ESP chipet az egyik legnépszerűbb mikrovezérlővé tette a WiFi és az IoT DIY projektekhez.

A MicroPython az egyre népszerűbb Python programozási nyelv karcsú és hatékony megvalósítása, amely a Python szabványos könyvtár kis részhalmazát tartalmazza, és mikrokontrollereken való futtatásra van optimalizálva.

E kettő kombinációja nagyon érdekes lehetőség a DIY projektekhez, kezdőknek és haladóknak egyaránt.

A MiPy-ESP projekt

2015-ben az első projektjeim az ESP8266-tal az ESP-01 lapkával kezdődtek, az Arudions használatával, amellyel a chipes AT parancsok soros kapcsolaton keresztül futtathatók. Ezt követően a következő években az Arduino magot alkalmaztam az ESP8266 -hoz a chipek C ++ nyelvű programozásához. Ez jól működik, de egy Python rajongó számára a Python 3 MicroPython implementációjának felfedezése nagyszerű hír volt.

A MiPy-ESP projekt rugalmas keretrendszer, amely a MicroPython alkalmazásával teljes kötegű Python IoT projekteket hajt végre az ESP-család mikrovezérlőin.

A keretrendszert a LeGarage Műszaki Bizottság szoftverfejlesztői csapata (LG-TC-SWDT-01) fejlesztette ki, amelynek célja a mikrokontroller-alkalmazásokhoz már bevált C ++ alapú kód lecserélése.

A projekt olyan alapvető funkciókat kínál, mint pl

  • Hálózati csatlakozási eljárások
  • Chip hozzáférési pont webszerver (wifi kapcsolathoz és chip weboldalak kiszolgálásához adat I/O)
  • MQTT funkciók
  • Naplózás/hibakeresés
  • Mikrokontroller eseményütemezése
  • Hardver I/O rutinok

Egy fő kompakt kódszkripttel (main.py), mind globális konfigurációval (config.py).

Ez a mikrokontroller kód fut a WiFi hálózathoz és az MQTT brókerekhez tartozó chipkapcsolatok robusztus karbantartásával. A különböző hardverekhez meglévő MicroPython modulok könnyen integrálhatók a rendszerbe.

A MiPy-ESP keretrendszer minden ESP-család mikrovezérlőit érintő hobbielektronikai IoT-projektünk gerincévé vált. Számos ESP-családi táblán tesztelték, például a NodeMCU, a Wemos és a Lolin táblákon.

A következő oktatóanyag útmutatást nyújt az ESP családba tartozó mikrokontrollerek és a MicroPython használatához a MiPy-ESP keretrendszer használatával.

1. lépés: A Wemos D1 Mini ESP8266 tábla

A Wemos D1 Mini ESP8266 tábla
A Wemos D1 Mini ESP8266 tábla
A Wemos D1 Mini ESP8266 tábla
A Wemos D1 Mini ESP8266 tábla
A Wemos D1 Mini ESP8266 tábla
A Wemos D1 Mini ESP8266 tábla
A Wemos D1 Mini ESP8266 tábla
A Wemos D1 Mini ESP8266 tábla

A MiPy-ESP keretrendszer a legtöbb ESP8266 alapú mikrovezérlővel működik.

A Wemos D1 mini fejlesztőlap ESP-8266EX chipen alapul. 2,5 x 3,5 cm alapterületen 4 MB flash memóriával, 11 digitális bemeneti/kimeneti tűvel rendelkezik, minden érintkező támogatja a megszakítást, PWM, I2C, SPI, soros és 1 analóg bemenet, 3,3 V maximális bemenettel, 5 V -os tápellátással, mikro USB csatlakozóval rendelkezik, és kompatibilis a kenyérlemezzel. Az alacsony ár és kis mérete miatt ez lett a kedvenc ESP -lapom.

Ezenkívül a kártya D1 mini pro verziójában lehetőség van külső antenna csatlakoztatására, ami jelentősen megnöveli a csatlakozási tartományt (+100 m hatótávolság). Ezenkívül a tábla különféle, kompakt méretű, dobozon kívüli bővítőlemezeket is tartalmaz.

2. lépés: Felkészülés a MicroPythonra az ESP Chipen

Felkészülés a MicroPythonra az ESP chipen
Felkészülés a MicroPythonra az ESP chipen

Ebben az első lépésben megteszi

  • Csatlakoztassa az ESP kártyát USB -n keresztül a számítógéphez
  • Telepítse az Esptool szoftvert a chip villogásához
  • Törölje a chip memóriáját
  • Flash a chip a MicroPython firmware
  • Telepítse az Rshell -t a parancssori interakció engedélyezéséhez a chipével
  • Az mpy-cross telepítése (.py fájlok binárisra fordításához)

Ha a táblát a számítógéphez csatlakoztatja a beépített USB-soros porttal rendelkező USB-kártyákon keresztül, az UART elérhetővé válik a számítógép számára, és ez a legegyszerűbb lehetőség az induláshoz. Az USB -csatlakozás nélküli táblák esetében az FTDI -modul USB -soros csatlakozóval használható a külvilághoz csatlakoztatott villogó GPIO -érintkezők csatlakoztatására, de ez nem tartalmazza ezt az oktatóanyagot.

A MiPy-ESP kódot használó MicroPython esetében a chip vaku minimális követelménye 1 MB. Van egy speciális felépítés is az 512 KB-os táblákhoz, de ez nem támogatja a fájlrendszert, amelytől a MiPy-ESP függ.

USB -kábel használata esetén a tábla a számítógépről kap áramot, miközben csatlakoztatva van. Ez lehetővé teszi a programozást és a hibakeresést is a soros kapcsolaton keresztül. A projektkód feltöltésekor és a projekt telepítésekor külső áramellátás történik a tábla tápcsatlakozóin.

Az Esptool szoftverrel kapcsolatos információk megtalálhatók az Esptool GitHub adattárban. Ha a Windows/Linux/OSX (MAC) rendszert szeretné használni, akkor a fenti link erre is kiterjed. A Python csomag telepíthető

pip install esptool

Linux felhasználók számára az Esptool csomagjait a Debian és az Ubuntu számára karbantartják, és telepíthetők vele

sudo apt install esptool

Az ESPP flash memória törlése Az Esptool használatával törölheti az ESP flash memóriát a paranccsal

esptool.py --port /dev /ttyUSB0 erase_flash

A MicroPyton firmware letöltése.bin fájlban található, amely letölthető a MicroPython webhelyről.

A repó jelenlegi projektmesterága tesztelve lett, és működik a Micropython v.1.12 verziójával. A MiPY-ESP keretrendszer sikerének biztosítása érdekében töltse le az 'esp8266-20191220-v1.12.bin' fájlt erről a linkről, és írja be a firmware-t a chipre a következő paranccsal:

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

Az Rshell csomag lehetővé teszi a parancssori interakciót a chipre telepített MicroPython környezettel. Ezen a linken megtalálható. Az Rshell egy egyszerű shell, amely a gazdagépen fut, és a MicroPython raw-REPL-jét használja, hogy python-töredékeket küldjön a billentyűzetre a fájlrendszer-információk megszerzése érdekében, és fájlokat másoljon a MicroPython fájlrendszerébe és onnan. A REPL a Read Evaluate Print Loop rövidítése, és ez a neve annak az interaktív MicroPython promptnak, amelyet az ESP8266 -on érhet el. A REPL használata messze a legegyszerűbb módja a kód tesztelésének és a parancsok futtatásának. Telepítse az Rshell parancsot a következő paranccsal:

sudo pip telepítse az rshell -t

Az mpy-cross fordító MicroPython telepítése alkalmazható a chip fájlrendszerbe feltöltött ascii.py fájlokkal. A MicroPython meghatározza az.mpy fájlok fogalmát is, amely egy bináris konténer fájlformátum, amely előre lefordított kódot tartalmaz, és amelyet egy normál.py modulként lehet importálni. A.py fájlok.mpy formátumba történő fordításával több RAM memória áll rendelkezésre a futó kódhoz - és ez szükséges ahhoz, hogy a MiPy -ESP keretrendszer működőképes alapmodulja legyen.

A MiPy-ESP kódtelepítéshez az mpy-cross MicroPython keresztfordító lefordítja a.py szkripteket a.mpy fájlba a chip feltöltése előtt. Telepítse az mpy-cross csomagot ezen a linken található utasítások szerint. Alternatív megoldásként az mpy-cross parancs telepíthető a Python pip paranccsal, vagy futtatható az mpy-cross mappa útvonaláról, ha itt klónozza a MicroPython lerakatot a GitHub-ból.

Most már telepítve van a MicroPython és az összes szükséges eszköz, amelyek az első MiPy-ESP projekt elkészítéséhez szükségesek

3. lépés: Első lépések a MiPy-ESP-vel

Első lépések a MiPy-ESP-vel
Első lépések a MiPy-ESP-vel

Ebben a lépésben lesz

Töltse le a MyPy-ESP keretrendszert

A MiPy-ESP projekt a GitHub webhelyen található ebben a kódtárban. A GitHub -ról letöltheti a tároló fájlstruktúráját, vagy klónozhatja azt a számítógépére

git klón

A számítógépre telepített kódtárral mostantól minden kódmodul megvan, amire szüksége van a kész ESP IoT projekt létrehozásához. További részletek az eszköztárban a következő lépésben.

4. lépés: A MiPy-ESP keretrendszer architektúrája

A MiPy-ESP keretrendszer architektúrája
A MiPy-ESP keretrendszer architektúrája

Ebben a lépésben lesz

megismerheti a MiPy-ESP kód munkafolyamatát

MiPy-ESP kód architektúra

Az összes Python keretrendszer a MiPY-ESP kódtár /src mappájában található. Az src/core mappa tartalmazza az összes projekthez tartozó alapvető modulokat. Az src/drivers mappában különféle modulok találhatók a chiphez csatlakoztatható különféle hardverekhez. Az src/segédprogramok mappa opcionális segédprogram -modulokat tartalmaz, amelyeket bele kell foglalni a projektbe.

A main.py és config.py fájlok az src/ mappában találhatók. Ezek a fő fájlok, amelyeket szerkeszteni kell a projekt építéséhez:

config.py:

Ez a fájl a projekt globális konfigurációs fájlja. Különféle beállításokkal rendelkezik, mindegyik leíró megjegyzésekkel a fájlban.

main.py:

Ez a mikro-vezérlő kódhurok fő szkriptje. Ez tartalmazza az alkalmazás-specifikus kódot a keretben. A chip indításakor a main.py futtatja és importálja az összes projektfüggő modult a megadott bemenetekkel a config.py fájlból. A fenti folyamatábra a main.py parancsfájl elrendezését mutatja.

A fenti ábra a main.py munkafolyamatát írja le:

  1. Indításkor a kód megpróbálja a chipet Wi-Fi hálózathoz csatlakoztatni. A korábban alkalmazott hálózatok és jelszavaik (chipen titkosítva) a flash memóriában vannak tárolva. A hálózati SSID-k és jelszavaik a wifi.json fájlban állíthatók elő a következő formátumban: " SSID1 ":" Jelszó "," SSID ":" Jelszó2 "}. A fájl adott hálózatait tárolja, a jelszavakat titkosítja, és a fájlt rendszerindításkor törli.
  2. Ha nem talál már ismert hálózatokat, a kód beállít egy hozzáférési pont (AP) webszervert. A chip AP -kiszolgáló SSID -je és jelszava a config.py fájlban van beállítva. A chip SSID-be való bejelentkezéssel egy weboldal jelenik meg a chip Wi-Fi-re való bejelentkezéséhez a 192.168.4.1 címen. A felismert hálózatok megjelennek a menüben, vagy az SSID manuálisan (rejtett hálózatok) és Wi-Fi jelszóval együtt adhatók meg. A chip sikeres csatlakoztatása után a Wi-Fi-hez az AP szerver leáll, és a main.py kód folytatja a következő lépéseket.
  3. A main.py Beállítás részében

    • feladatok és visszahívások (stb. MQTT visszahívások) és a rendszeres események funkciói vannak definiálva.
    • A futó funkciókhoz különböző időzített feladatok vannak beállítva.
    • Létrejött az MQTT brókercég
  4. A kód ezután a fő mikrovezérlő hurokba kerül,

    • a hálózati és MQTT bróker kapcsolatok folyamatos ellenőrzése,
    • MQTT előfizetések,
    • hardver I/O
    • és ütemezett munkák.
    • Megszakadt hálózati vagy MQTT közvetítőkapcsolat esetén a kód megpróbálja újra létrehozni.

5. lépés: A projektkód előkészítése

A projektkód előkészítése
A projektkód előkészítése
A projektkód előkészítése
A projektkód előkészítése

Ebben a lépésben lesz

  • Ismerje meg a MiPy-ESP lerakat fájlstruktúráját
  • készítse elő projektkódját a chip feltöltéséhez

A fenti ábra a lerakat mappa szerkezetét írja le, és felsorolja a keretrendszer aktuális moduljait. A projekt az src/ mappa szakaszai. A központi MiPy-ESP keretmodulok az src/core, az opcionális segédmodulok az src/segédprogramok és a hardvermodulok az src/drivers-ban találhatók.

A legtöbb rendelkezésre álló MicroPython hardverkönyvtár módosítás nélkül beléphet az illesztőprogramokba/ mappákba. Az összes jelenlegi illesztőprogramot a MiPy-ESP keretrendszerrel tesztelik. Ami a segédprogramok/ mappa moduljait illeti, az újonnan megjelenőkkel bővülni fog.

A projektkód lépése A projekt -specifikus kódot az src/ mappába kell helyezni. A main.py és config.py fájlok már szerkeszthetők. Másolja a kívánt projekt segédprogramokat is az src/segédprogramokból és az src/illesztőprogramokból az src/mappába.

Ha ismert Wi-Fi hálózatokat és jelszavakat szeretne szolgáltatni a chiphez, adja hozzá a wifi.json fájlt az src/fájlhoz.

A mellékelt Makefile alkalmazható a fájlok chipre való átvitelére való előkészítéshez.py fájlok lefordításával az / src fájlban, az alapmodulok összeállításával és az összeállított fájlok áthelyezésével egy új, build / nevű mappába

építeni

A build fájlok készen állnak a chip fájlrendszerbe való feltöltésre. Alapértelmezés szerint a main.py és a config.py nincs binárisra fordítva, hogy könnyen hozzáférhessenek hozzájuk a telepített chipek ellenőrzéséhez. A parancs:

tisztítsd meg

Törli a buildet/ mappát és annak tartalmát.

6. lépés: A kód összeállítása és feltöltése a mikrokontrollerre

A kód összeállítása és feltöltése a mikrokontrollerre
A kód összeállítása és feltöltése a mikrokontrollerre
A kód összeállítása és feltöltése a mikrokontrollerre
A kód összeállítása és feltöltése a mikrokontrollerre

Ebben a részben lesz

  • töltse fel az előkészített fájlokat a buildben/ az utolsó szakaszból
  • indítsa el és figyelje a futó kódot

Build/ fájlok feltöltése az Rshell segítségével

Töltsön fel minden fájlt a /build könyvtárban az ESP chipre az Rshell használatával. Ha a mikrokontroller csatlakoztatva van az USB -hez, a buildből/ mappából indítsa el az Rshell parancsot

rshell -p /dev /ttyUSB0

Ezután ellenőrizze a chip fájlokat (ha vannak)

ls /billentyűzet

A chipen lévő összes fájl törölhető

rm /billentyűzet/*.*

Másolja az összes projektfájlt a buildben/ a chipre:

cp *. * /billentyűzet

Ezután indítsa el az interaktív Python terminált a paranccsal

repl

Most meghívhatja a Python parancsokat vagy importálhat modulokat, és figyelheti a chip soros kimenetét a MiPy-ESP naplózó modulból.

Indítsa újra a chipet a reset gomb megnyomásával vagy a parancssorból

import fő

vagy

importáló gép

és akkor

machine.reset ()

A projekt konfigurációs fájljának naplózási/hibakeresési beállításaitól függően a repl mostantól az ESP chip hibakeresési üzeneteit jeleníti meg a soros kapcsolaton keresztül.

Ennek remélhetőleg meg kell kezdenie.

Ajánlott: