Obsah:

Začínáme s Pythonem pro ESP8266 a ESP32: 6 kroků
Začínáme s Pythonem pro ESP8266 a ESP32: 6 kroků

Video: Začínáme s Pythonem pro ESP8266 a ESP32: 6 kroků

Video: Začínáme s Pythonem pro ESP8266 a ESP32: 6 kroků
Video: 51. Python pro pokročilé - OOP - Tvoříme smečku psů procvičování 2024, Červenec
Anonim
Začínáme s Pythonem pro ESP8266 a ESP32
Začínáme s Pythonem pro ESP8266 a ESP32

Bacground

ESP8266 a jeho mladší velký bratr ESP32 jsou levné Wi-Fi mikročipy s plným zásobníkem TCP/IP a schopností mikrořadiče. Čip ESP8266 se poprvé dostal do povědomí komunity tvůrců v roce 2014. Od té doby nízká cena (<5 USD), jeho schopnost Wi-Fi, vestavěná flash paměť o velikosti 1 nebo 4 MB a řada dostupných vývojových možností desek, učinil z čipu ESP jeden z nejpopulárnějších mikrořadičů pro projekty WiFi a IoT DIY.

MicroPython je štíhlá a efektivní implementace stále populárnějšího programovacího jazyka Python, který zahrnuje malou podmnožinu standardní knihovny Pythonu a je optimalizován pro provoz na mikrokontrolérech.

Kombinace těchto dvou je velmi zajímavou možností pro kutilské projekty, jak pro začátečníky, tak pro pokročilejší uživatele.

Projekt MiPy-ESP

V roce 2015 začaly moje první projekty s ESP8266 s čipem ESP-01 pomocí Arudions pro spouštění příkazů AT čipu přes sériové připojení. Poté jsem v příštích letech použil jádro Arduino pro ESP8266 pro programování čipů v jazyce C ++. To funguje dobře, ale pro nadšence Pythonu byl můj objev implementace Python 3 v MicroPythonu skvělá zpráva.

Projekt MiPy-ESP je flexibilní rámec využívající MicroPython pro full-stack projekty Python IoT na mikrořadičích rodiny ESP.

Rámec je vyvinut vývojářským týmem LeGarage Technical Comittee Software Developer (LG-TC-SWDT-01) s cílem nahradit již zavedený kód založený na C ++ pro naše aplikace s mikrokontroléry.

Projekt poskytuje základní funkce jako např

  • Postupy připojení k síti
  • Webový server s přístupovým bodem pro čip (pro wifi připojení a obsluhování čipových webových stránek pro datové I/O)
  • Funkce MQTT
  • Protokolování/ladění
  • Plánování událostí mikrokontroléru
  • Hardwarové I/O rutiny

S jedním hlavním kompaktním skriptem kódu (main.py), vše s globální konfigurací (config.py).

Tento kód mictocontroller běží s robustní údržbou čipových připojení k WiFi síti a brokerům MQTT. Stávající moduly MicroPython pro různý hardware lze snadno integrovat do systému.

Rámec MiPy-ESP se stal páteří všech našich projektů IoT hobby elektroniky zahrnujících mikrořadiče rodiny ESP. Byl testován na několika deskách řady ESP, jako jsou desky NodeMCU, Wemos a Lolin.

Následující tutoriál je příručkou, jak začít s mikrokontroléry řady ESP a MicroPython pomocí rámce MiPy-ESP.

Krok 1: Deska Wemos D1 Mini ESP8266

Deska Wemos D1 Mini ESP8266
Deska Wemos D1 Mini ESP8266
Deska Wemos D1 Mini ESP8266
Deska Wemos D1 Mini ESP8266
Deska Wemos D1 Mini ESP8266
Deska Wemos D1 Mini ESP8266
Deska Wemos D1 Mini ESP8266
Deska Wemos D1 Mini ESP8266

Rámec MiPy-ESP funguje s většinou mikrokontrolérů založených na ESP8266.

Mini vývojová deska Wemos D1 mini je založena na čipu ESP-8266EX. Na půdorysu 2,5 x 3,5 cm nabízí 4 MB flash paměti, 11 digitálních vstupních/výstupních pinů, všechny piny podporují přerušení, PWM, I2C, SPI, sériový a 1 analogový vstup s maximálním vstupem 3,3 V, lze provozovat na 5V napájení, má připojení micro USB a je kompatibilní s prkénkem. Nízká cena a malé rozměry z něj udělaly moji oblíbenou desku ESP.

Verze desky D1 mini pro je navíc dodávána s možností připojení externí antény, což výrazně zvyšuje dosah připojení (dosah +100 m). Kromě toho je deska dodávána také s řadou desek rozšiřujících desek, které jsou připraveny k okamžitému použití, s podobnými kompaktními rozměry.

Krok 2: Připravte se na MicroPython na čipu ESP

Příprava na MicroPython na čipu ESP
Příprava na MicroPython na čipu ESP

V tomto prvním kroku budete

  • Připojte desku ESP přes USB k počítači
  • Nainstalujte si software Esptool pro flashování čipu
  • Vymažte paměť čipu
  • Flashujte čip pomocí firmwaru MicroPython
  • Nainstalujte Rshell, který umožní interakci příkazového řádku s vaším čipem
  • Nainstalujte mpy-cross (pro kompilaci souborů.py do binárního souboru)

Připojení desky k počítači pomocí USB Desky s vestavěným sériovým portem USB zpřístupňují UART vašemu počítači a jsou nejjednodušší možností, jak začít. U desek bez připojení USB lze k připojení kolíků GPIO pro blikání připojených k vnějšímu světu použít modul FTDI s rozhraním USB na sériový port, ale v tomto tutoriálu to není zahrnuto.

Pro MicroPython používající kód MiPy-ESP je minimální požadavek na velikost čipu flash 1 MB. Existuje také speciální sestavení pro desky s 512 kB, ale toto nemá podporu pro souborový systém, na kterém MiPy-ESP závisí.

Při použití kabelu USB se deska připojí k počítači. To také umožňuje programování a ladění přes sériové připojení. Když je nahrán kód projektu a váš projekt je nasazen, externí napájení je připojeno přes kolíky napájecího zdroje na desce.

Informace o instalaci softwaru Esptool najdete v úložišti Esptool GitHub. Pokud chcete používat Windows/Linux/OSX (MAC), výše uvedený odkaz to také pokrývá. Balíček Pythonu lze nainstalovat do

pip install esptool

Pro uživatele Linuxu jsou balíčky pro Esptool spravovány pro Debian a Ubuntu a lze je také nainstalovat pomocí

sudo apt nainstalovat esptool

Vymazání flash paměti ESP Pomocí Esptool poté vymažete flash paměť ESP příkazem

esptool.py --port /dev /ttyUSB0 erase_flash

Stažení firmwaru MicroPyton Firmware MicroPython se nachází v souboru.bin, který lze stáhnout z webu MicroPython.

Aktuální hlavní větev projektu repo byla testována a je funkční s Micropython v.1.12. Aby byl zajištěn úspěch s rámcem MiPY-ESP, stáhněte si soubor 'esp8266-20191220-v1.12.bin' z tohoto odkazu a zapište firmware na čip příkazem:

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

Instalace Rshell Balíček Rshell umožňuje interakci příkazového řádku s vaším prostředím MicroPython nainstalovaným na čipu. Najdete ho v tomto odkazu. Rshell je jednoduchý shell, který běží na hostiteli a používá raw-REPL společnosti MicroPython k odesílání úryvků pythonu na pyboard za účelem získání informací o souborovém systému a ke kopírování souborů do a ze souborového systému MicroPython. REPL znamená Read Evaluate Print Loop a je to název daný interaktivní výzvě MicroPython, ke které máte přístup na ESP8266. Použití REPL je zdaleka nejjednodušší způsob, jak otestovat kód a spustit příkazy. Nainstalujte Rshell příkazem:

sudo pip install rshell

Instalaci kompilátoru mpy-cross MicroPython lze použít se soubory ascii.py nahranými do čipového souborového systému. MicroPython také definuje koncept souborů.mpy, což je formát binárního kontejnerového souboru, který obsahuje předkompilovaný kód a který lze importovat jako normální modul.py. Zkompilováním souborů.py do souboru.mpy bude pro váš spuštěný kód k dispozici více paměti RAM - a to je nutné, aby měl funkční základní modul rámce MiPy -ESP.

Pro nasazení kódu MiPy-ESP kompilátor mpy-cross MicroPython cross kompiluje skripty.py do.mpy před nahráním čipu. Nainstalujte balíček mpy-cross podle pokynů v tomto odkazu. Alternativně lze příkaz mpy-cross nainstalovat příkazem Python pip nebo spustit z cesty ke složce mpy-cross, pokud zde naklonujete úložiště MicroPython z GitHubu.

Nyní máte nainstalován MicroPython a všechny potřebné nástroje, abyste mohli začít s budováním prvního projektu MiPy-ESP

Krok 3: Začínáme s MiPy-ESP

Začínáme s MiPy-ESP
Začínáme s MiPy-ESP

V tomto kroku budete

Stáhněte si rámec MyPy-ESP

Stažení rámce MiPy-ESP Projekt MiPy-ESP najdete na GitHubu v tomto úložišti kódů. Z GitHubu si můžete stáhnout strukturu souboru úložiště nebo jej klonovat do počítače

klon git

S úložištěm kódů nainstalovaným na vašem počítači máte nyní všechny moduly kódu, které potřebujete k vytvoření out-of-the-box projektu ESP IoT. Další podrobnosti o sadě nástrojů v dalším kroku.

Krok 4: Rámcová architektura MiPy-ESP

Rámcová architektura MiPy-ESP
Rámcová architektura MiPy-ESP

V tomto kroku budete

se dozvíte o pracovním postupu kódu MiPy-ESP

Architektura kódu MiPy-ESP

Všechny moduly architektury Python se nacházejí ve složce /src v úložišti kódů MiPY-ESP. Složka src/core obsahuje základní moduly, které jsou součástí každého projektu. Složka src/drivers obsahuje výběr modulů pro připojení různých hardwarů k vašemu čipu. Složka src/utilities obsahuje volitelné moduly nástrojů, které lze zahrnout do projektu.

Soubory main.py a config.py se nacházejí ve složce src/. Toto jsou hlavní soubory, které je třeba upravit při vytváření projektu:

config.py:

Tento soubor je globálním konfiguračním souborem pro váš projekt. Má různá nastavení, vše s popisnými komentáři v souboru.

main.py:

Toto je hlavní skript pro smyčku kódu mikrořadiče. Obsahuje kód specifický pro aplikaci v rámci. Po spuštění čipu main.py spustí a importuje všechny moduly závislé na projektu s danými vstupy ze souboru config.py. Výše uvedený vývojový diagram ukazuje rozložení skriptu main.py.

Obrázek výše popisuje pracovní postup main.py:

  1. Při spuštění se kód pokusí připojit čip k síti Wi-Fi. Dříve použité sítě a jejich hesla (šifrovaná na čipu) jsou uložena ve flash paměti. SSID sítě a jejich hesla lze zřídit v souboru wifi.json ve formátu {" SSID1 ":" Heslo "," SSID ":" Heslo2 "}. Dané sítě v tomto souboru jsou uloženy, hesla jsou šifrována a soubor je při spuštění odstraněn.
  2. Pokud nejsou nalezeny žádné již známé sítě, kód nastaví webový server přístupového bodu (AP). SSID a heslo čipového AP serveru se nastaví v souboru config.py. Po přihlášení k čipu SSID se webová stránka pro přihlášení čipu k Wi-Fi zobrazí na adrese 192.168.4.1. Zjištěné sítě se zobrazí v nabídce nebo lze SSID zadat ručně (skryté sítě) společně s heslem Wi-Fi. Po úspěšném připojení čipu k Wi-Fi se AP server vypne a main.py kód přejde k dalším krokům.
  3. V části Nastavení na main.py

    • jsou definovány funkce pro úlohy a zpětná volání (atd. zpětná volání MQTT) a pravidelné události.
    • Jsou nastaveny různé časované úlohy pro spuštěné funkce.
    • Je vytvořen klient brokera MQTT
  4. Kód pak přejde do hlavní smyčky mikrořadiče,

    • průběžná kontrola připojení makléře k síti a MQTT,
    • Předplatné MQTT,
    • hardwarové I/O
    • a naplánované úlohy.
    • Po ztrátě připojení k síti nebo zprostředkovateli MQTT se kód pokusí obnovit.

Krok 5: Příprava kódu projektu

Příprava kódu projektu
Příprava kódu projektu
Příprava kódu projektu
Příprava kódu projektu

V tomto kroku budete

  • informace o struktuře souborů úložiště MiPy-ESP
  • připravte kód svého projektu pro nahrání čipu

Struktura složek úložiště Obrázek výše popisuje strukturu složek úložiště a uvádí aktuální moduly rámce. Váš projekt je fází ve složce src/. Moduly základní architektury MiPy-ESP jsou umístěny ve src/core, volitelné obslužné moduly v src/utilities a hardwarové moduly v src/driver.

Většina dostupných hardwarových knihoven MicroPython může přejít do složky ovladače/ bez jakýchkoli úprav. Všechny přítomné ovladače jsou testovány s rámcem MiPy-ESP. Pokud jde o moduly ve složkách/ nástrojích, budou přidány další, jakmile ožijí.

Stanovení kódu projektu Váš kód specifický pro projekt by měl být umístěn ve složce src/. Již existují soubory main.py a config.py, které můžete upravovat. Zkopírujte také požadované projektové nástroje ze src/utilities a src/drivers do src/.

V případě, že byste chtěli na čip poskytnout známé sítě Wi-Fi a hesla, přidejte soubor wifi.json do src/.

Kompilace a příprava k odeslání Za předpokladu, že Makefile lze použít pro přípravu souborů pro přenos na čip, kompilací souborů.py v / src, kompilací základních modulů a přenosem kompilovaných souborů do nové složky s názvem build / příkazem

udělat stavbu

Soubory v sestavení jsou připraveny k nahrání do čipového souborového systému. Ve výchozím nastavení nejsou main.py a config.py kompilovány do binárních souborů, aby k nim byl snadný přístup pro kontrolu nasazených čipů. Příkaz:

vyčistit

Odstraní build/ složku a její obsah.

Krok 6: Kompilace a nahrání kódu do mikrokontroléru

Kompilace a nahrání kódu do mikrokontroléru
Kompilace a nahrání kódu do mikrokontroléru
Kompilace a nahrání kódu do mikrokontroléru
Kompilace a nahrání kódu do mikrokontroléru

V této sekci budete

  • nahrajte připravené soubory v sestavení/ z poslední sekce
  • spustit a sledovat běžící kód

Odesílání sestavení/ souborů pomocí Rshell

Nahrajte všechny soubory v adresáři /build na ESP čip pomocí Rshell. Když je mikrokontrolér připojen k USB, spusťte příkaz Rshell z buildu/ složky

rshell -p /dev /ttyUSB0

Poté zkontrolujte soubory čipů (pokud existují) pomocí

ls /pyboard

Všechny soubory na čipu lze odstranit pomocí

rm /pyboard/*.*

Zkopírujte všechny soubory projektu v buildu/ na čip:

cp *. * /pyboard

Potom spusťte interaktivní terminál Pythonu příkazem

dopl

Nyní můžete z modulu MiPy-ESP logger vyvolat příkazy Pythonu nebo importovat moduly a sledovat sériový výstup čipů.

Restartujte čip stisknutím tlačítka reset nebo pomocí příkazového řádku

import hlavní

nebo

importní stroj

a pak

machine.reset ()

V závislosti na vašem nastavení protokolování/ladění v konfiguračním souboru projektu bude repl nyní zobrazovat zprávy o ladění z čipu ESP přes sériové připojení.

To by snad mělo začít.

Doporučuje: