Obsah:
- Krok 1: Deska Wemos D1 Mini ESP8266
- Krok 2: Připravte se na MicroPython na čipu ESP
- Krok 3: Začínáme s MiPy-ESP
- Krok 4: Rámcová architektura MiPy-ESP
- Krok 5: Příprava kódu projektu
- Krok 6: Kompilace a nahrání kódu do mikrokontroléru
Video: Začínáme s Pythonem pro ESP8266 a ESP32: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
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
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
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
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
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:
- 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.
- 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.
-
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
-
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
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
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:
Synchronizace složek s Pythonem: 5 kroků
Synchronizace složek s Pythonem: Tento návod vám ukáže, jak synchronizovat dvě složky (a všechny složky v nich), aby jedna byla přímou kopií druhé. Ideální pro lokální zálohování práce na cloudový/síťový server nebo USB disk. Žádné zkušenosti s programováním nejsou
KÓDUJTE HRU S PYTHONEM (PRO DUMMY!): 14 kroků
KÓDUJTE HRU S PYTHONEM (PRO DUMMY!): Vítejte v Pythonu, třetím nejpopulárnějším programovacím jazyce na světě! … a pravděpodobně nejjednodušší! Věděli jste, že Youtube & Oba Google mají Python jako hlavní jazyk pro své úspěšné aplikace & webové stránky, které vidíte? DOBŘE … teď jo
Začínáme s Pythonem: 7 kroků (s obrázky)
Začínáme s Pythonem: Programování je úžasné! Je kreativní, zábavné a dodává vašemu mozku mentální trénink. Mnoho z nás se chce dozvědět něco o programování, ale přesvědčit se, že to neumíme. Možná má příliš mnoho matematiky, možná ten žargon, který se hází kolem, děsí
Začínáme s ESP32 CAM - Streamování videa pomocí ESP CAM přes Wifi - Projekt bezpečnostní kamery ESP32: 8 kroků
Začínáme s ESP32 CAM | Streamování videa pomocí ESP CAM přes Wifi | Projekt bezpečnostní kamery ESP32: Dnes se naučíme používat tuto novou desku ESP32 CAM a jak ji můžeme kódovat a používat jako bezpečnostní kameru a získávat streamované video přes wifi
Začínáme s ESP32 - Instalace desek ESP32 do Arduino IDE - Kód mrknutí ESP32: 3 kroky
Začínáme s ESP32 | Instalace desek ESP32 do Arduino IDE | ESP32 Blink Code: V tomto instruktážním programu uvidíme, jak začít pracovat s esp32 a jak instalovat desky esp32 do Arduino IDE a naprogramujeme esp 32 tak, aby spustil blink kód pomocí arduino ide