Obsah:
- Krok 1: Doska Wemos D1 Mini ESP8266
- Krok 2: Príprava na MicroPython na čipe ESP
- Krok 3: Začíname s MiPy-ESP
- Krok 4: Rámcová architektúra MiPy-ESP
- Krok 5: Príprava kódu projektu
- Krok 6: Zostavenie a nahranie kódu do mikrokontroléra
Video: Začíname s Pythonom pre ESP8266 a ESP32: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Bacground
ESP8266 a jeho mladší veľký brat ESP32 sú lacné Wi-Fi mikročipy s plným zásobníkom TCP/IP a možnosťou mikroovládača. Čip ESP8266 sa dostal do povedomia komunity tvorcov už v roku 2014. Odvtedy nízka cena (<5 USD), jeho schopnosť Wi-Fi, vstavaná flash pamäť 1 alebo 4 MB a množstvo dostupných možností vývoja dosky, urobil z čipu ESP jeden z najobľúbenejších mikrořadičov pre projekty WiFi a IoT DIY.
MicroPython je štíhla a efektívna implementácia stále obľúbenejšieho programovacieho jazyka Python, ktorý obsahuje malú podmnožinu štandardnej knižnice Pythonu a je optimalizovaný na použitie na mikrokontroléroch.
Kombinácia týchto dvoch je veľmi zaujímavou možnosťou pre kutilské projekty, pre začiatočníkov aj pre pokročilejších používateľov.
Projekt MiPy-ESP
V roku 2015 moje prvé projekty s ESP8266 začali s čipom ESP-01 pomocou Arudions na spúšťanie príkazov AT čipu cez sériové pripojenie. Potom som v nasledujúcich rokoch použil jadro Arduino pre ESP8266 na programovanie čipov v jazyku C ++. To funguje dobre, ale pre nadšenca Pythonu bol môj objav implementácie systému Python 3 v programe MicroPython skvelou správou.
Projekt MiPy-ESP je flexibilný rámec, ktorý používa MicroPython na plnoštandardné projekty IoT Python na mikrořadičoch rodiny ESP.
Rámec je vyvinutý vývojovým tímom technickej komisie LeGarage (LG-TC-SWDT-01) s cieľom nahradiť už zavedený kód založený na C ++ pre naše aplikácie s mikrokontrolérmi.
Projekt poskytuje základné funkcie ako napr
- Postupy sieťového pripojenia
- Webový server s prístupovým bodom (pre wifi pripojenie a obsluhu čipových webových stránok pre dátové I/O)
- Funkcie MQTT
- Protokolovanie/ladenie
- Plánovanie udalostí mikrokontroléra
- Hardvérové I/O rutiny
S jedným hlavným kompaktným skriptom kódu (main.py), s globálnou konfiguráciou (config.py).
Tento kód mictocontroller beží s robustnou údržbou čipových pripojení k WiFi sieti a maklérom MQTT. Existujúce moduly MicroPython pre rôzny hardvér je možné jednoducho integrovať do systému.
Rámec MiPy-ESP sa stal chrbtovou kosťou všetkých našich projektov IoT hobby elektroniky, ktoré zahŕňali mikroovládače rodiny ESP. Bol testovaný na niekoľkých doskách radu ESP, ako sú dosky NodeMCU, Wemos a Lolin.
Nasledujúci návod je návodom, ako začať s mikrokontrolérmi rodiny ESP a MicroPython pomocou rámca MiPy-ESP.
Krok 1: Doska Wemos D1 Mini ESP8266
Rámec MiPy-ESP funguje s väčšinou mikrokontrolérov založených na ESP8266.
Mini vývojová doska Wemos D1 mini je založená na čipe ESP-8266EX. Na ploche 2,5 x 3,5 cm je vybavený 4 MB pamäte flash, 11 digitálnych vstupných/výstupných pinov, všetky piny podporujú prerušenie, PWM, I2C, SPI, sériový a 1 analógový vstup s maximálnym vstupom 3,3 V, môžu bežať na napájanie 5 V, má pripojenie micro USB a je kompatibilný s doskou. Nízka cena a malé rozmery z neho urobili moju obľúbenú dosku ESP.
Verzia dosky D1 mini pro je navyše vybavená možnosťou pripojenia externej antény, čo výrazne zvyšuje dosah pripojenia (dosah +100 m). K tomu sa doska dodáva aj s rôznymi doskami rozšírenými doskami podobnej kompaktnej veľkosti.
Krok 2: Príprava na MicroPython na čipe ESP
V tomto prvom kroku budete
- Pripojte dosku ESP cez USB k počítaču
- Nainštalujte softvér Esptool na flashovanie čipu
- Vymažte pamäť čipu
- Flashujte čip pomocou firmvéru MicroPython
- Nainštalujte Rshell, ktorý umožní interakciu príkazového riadka s vašim čipom
- Nainštalujte mpy-cross (na kompiláciu súborov.py do binárneho súboru)
Pripojenie dosky k počítaču prostredníctvom USB Dosky so vstavaným sériovým portom USB sprístupňujú UART pre váš počítač a je to najľahšia možnosť, ako začať. V prípade dosiek bez pripojenia USB je možné na pripojenie pinov GPIO na blikanie pripojených k vonkajšiemu svetu použiť modul FTDI s portom USB na sériový port, ale tento návod to nezahŕňa.
Pre MicroPython používajúci kód MiPy-ESP je minimálna požiadavka na veľkosť čipového blesku 1 MB. Existuje aj špeciálne zostavenie pre dosky s 512 kB, ale toto nemá podporu pre súborový systém, od ktorého závisí MiPy-ESP.
Pri použití kábla USB sa doska po pripojení napája z počítača. To tiež umožňuje programovanie a ladenie cez sériové pripojenie. Keď je kód projektu nahraný a váš projekt je nasadený, externé napájanie sa napája z kolíkov napájania dosky.
Inštalácia programu Esptool Informácie o softvéri Esptool nájdete v úložisku Esptool GitHub. Ak chcete používať Windows/Linux/OSX (MAC), vyššie uvedený odkaz to tiež pokrýva. Balík Python je možné nainštalovať pomocou
pip install esptool
Pre používateľov Linuxu sú balíky pre Esptool spravované pre Debian a Ubuntu a je tiež možné ich nainštalovať pomocou
sudo apt nainštalovať esptool
Vymazanie pamäte Flash ESPPomocou Esptool potom vymažete pamäť ESP Flash príkazom
esptool.py --port /dev /ttyUSB0 erase_flash
Sťahovanie firmvéru MicroPyton Firmvér MicroPython sa nachádza v súbore.bin, ktorý je možné stiahnuť z webovej stránky MicroPython.
Aktuálna hlavná vetva repo projektu bola testovaná a funguje s programom Micropython v.1.12. Aby ste zaistili úspech s rámcom MiPY-ESP, stiahnite si súbor „esp8266-20191220-v1.12.bin“z tohto odkazu a zapíšte firmvér na čip príkazom:
esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = detekovať 0 esp8266-20191220-v1.12.bin
Balík Rshell umožňuje interakciu príkazového riadka s vašim prostredím MicroPython nainštalovaným na čipe. Nájdete ho v tomto odkaze. Rshell je jednoduchý shell, ktorý beží na hostiteľovi a používa raw-REPL MicroPythonu na odosielanie útržkov pythonu na pyboard, aby získal informácie o súborovom systéme a kopíroval súbory do a zo súborového systému MicroPython. REPL je skratka pre Read Evaluate Print Loop a je názov pre interaktívnu výzvu MicroPython, ku ktorej máte prístup na ESP8266. Použitie REPL je zďaleka najľahší spôsob, ako otestovať kód a spustiť príkazy. Nainštalujte Rshell príkazom:
sudo pip install rshell
Inštaláciu kompilátora mpy-cross MicroPython je možné použiť so súbormi ascii.py nahranými do čipového súborového systému. MicroPython tiež definuje koncept súborov.mpy, čo je formát binárneho kontajnerového súboru, ktorý obsahuje predkompilovaný kód a ktorý je možné importovať ako normálny modul.py. Kompiláciou súborov.py do súboru.mpy bude pre váš spustený kód k dispozícii viac pamäte RAM - a to je potrebné na to, aby mal funkčný hlavný modul rámca MiPy -ESP.
Pri nasadení kódu MiPy-ESP skompilovaný kompilátor mpy-cross MicroPython kompiluje skripty.py do súboru.mpy pred načítaním čipu. Nainštalujte balík mpy-cross podľa pokynov v tomto odkaze. Prípadne môžete príkaz mpy-cross nainštalovať príkazom Python pip alebo ho spustiť z cesty k priečinku mpy-cross, ak tu klonujete úložisko MicroPython z GitHubu.
Teraz máte nainštalovaný MicroPython a všetky potrebné nástroje, ktoré vám pomôžu začať s budovaním vášho prvého projektu MiPy-ESP
Krok 3: Začíname s MiPy-ESP
V tomto kroku budete
Stiahnite si rámec MyPy-ESP
Sťahovanie rámca MiPy-ESP Projekt MiPy-ESP nájdete na GitHub v tomto úložisku kódov. Z GitHub si môžete stiahnuť štruktúru súborov úložiska alebo ich klonovať do svojho počítača pomocou
klon git
S úložiskom kódov nainštalovaným vo vašom počítači máte teraz všetky moduly kódu, ktoré potrebujete na zostavenie pripraveného projektu IoT ESP. Ďalšie podrobnosti o súprave nástrojov v nasledujúcom kroku.
Krok 4: Rámcová architektúra MiPy-ESP
V tomto kroku budete
Získajte informácie o pracovnom toku kódu MiPy-ESP
Architektúra kódu MiPy-ESP
Všetky moduly rámca Pythonu sa nachádzajú v priečinku /src v úložisku kódov MiPY-ESP. Priečinok src/core obsahuje základné moduly, ktoré sú súčasťou každého projektu. Priečinok src/drivers má výber modulov pre rôzny hardvér, ktoré sa majú pripojiť k vášmu čipu. Priečinok src/utilities obsahuje voliteľné pomocné moduly, ktoré môžete zahrnúť do svojho projektu.
Súbory main.py a config.py sa nachádzajú v priečinku src/. Toto sú hlavné súbory, ktoré je potrebné upraviť pri zostavovaní projektu:
config.py:
Tento súbor je globálnym konfiguračným súborom pre váš projekt. Má rôzne nastavenia, všetky s popisnými komentármi v súbore.
main.py:
Toto je hlavný skript pre kódovú slučku mikroovládača. Obsahuje kód špecifický pre aplikáciu v rámci. Po štarte čipu main.py spustí a importuje všetky moduly závislé od projektu so zadanými vstupmi zo súboru config.py. Vyššie uvedený vývojový diagram ukazuje rozloženie skriptu main.py.
Obrázok vyššie popisuje pracovný tok main.py:
- Pri štarte sa kód pokúsi pripojiť čip k sieti Wi-Fi Predtým použité siete a ich heslá (šifrované na čipe) sú uložené vo flash pamäti. Sieťové SSID a ich heslá je možné poskytnúť v súbore wifi.json vo formáte {" SSID1 ":" Heslo "," SSID ":" Heslo2 "}. Dané siete v tomto súbore sú uložené, heslá sú šifrované a súbor je odstránený pri spustení.
- Ak sa nenájdu siete, ktoré už nie sú známe, kód nastaví webový server prístupového bodu (AP). SSID a heslo servera AP čipu sa nastavia v súbore config.py. Po prihlásení sa k čipu SSID sa webová stránka na prihlásenie čipu do siete Wi-Fi zobrazí na adrese 192.168.4.1. Zistené siete sa zobrazia v ponuke alebo je možné SSID zadať ručne (skryté siete) spolu s heslom Wi-Fi. Po úspešnom pripojení čipu k sieti Wi-Fi sa server AP vypne a kód main.py prejde k ďalším krokom.
-
V sekcii Nastavenie na main.py
- sú definované funkcie pre úlohy a spätné volania (atď. MQTT spätné volania) a pravidelné udalosti.
- Sú nastavené rôzne načasované úlohy pre spustené funkcie.
- Je zriadený klient makléra MQTT
-
Kód potom prejde do hlavnej slučky mikrořadiča,
- priebežná kontrola sieťových a MQTT maklérskych spojení,
- Predplatné MQTT,
- hardvérové I/O
- a naplánované úlohy.
- Po strate sieťového pripojenia alebo pripojenia makléra MQTT sa kód pokúsi obnoviť.
Krok 5: Príprava kódu projektu
V tomto kroku budete
- Získajte informácie o štruktúre súborov úložiska MiPy-ESP
- pripravte kód svojho projektu na nahranie čipu
Štruktúra priečinka úložiska Vyššie uvedený obrázok popisuje štruktúru priečinkov úložiska a uvádza aktuálne moduly rámca. Váš projekt má fázy v priečinku src/. Moduly rámca Core MiPy-ESP sú umiestnené v src/core, voliteľné pomocné moduly v src/utilities a hardvérové moduly v src/driveroch.
Väčšina dostupných hardvérových knižníc MicroPython môže ísť do priečinka s ovládačmi/ priečinkami bez akýchkoľvek úprav. Všetky súčasné ovládače sú testované s rámcom MiPy-ESP. Čo sa týka modulov v pomocných programoch/ priečinku, ďalšie budú pridané, keď ožijú.
Vytvorenie kódu projektu Váš kód špecifický pre projekt by mal byť umiestnený v priečinku src/. Už existujú súbory main.py a config.py, ktoré môžete upravovať. Skopírujte tiež požadované projektové nástroje zo src/utilities a src/drivers do src/.
V prípade, že chcete na čip poskytnúť známe siete Wi-Fi a heslá, pridajte súbor wifi.json do src/.
Za predpokladu, že Makefile je možné použiť na prípravu súborov na prenos na čip, kompiláciou súborov.py v / src, kompiláciou základných modulov a prenosom kompilovaných súborov do nového priečinka s názvom build / príkazom
urobiť stavbu
Vytvorené súbory sú pripravené na nahranie do čipového súborového systému. Štandardne nie sú súbory main.py a config.py kompilované do binárnych súborov, aby k nim bol ľahký prístup pri kontrole nasadených čipov. Príkaz:
vyčistiť
Odstráni zostavu/ priečinok a jeho obsah.
Krok 6: Zostavenie a nahranie kódu do mikrokontroléra
V tejto sekcii budete
- nahrajte pripravené súbory v zostave/ z poslednej sekcie
- spustite a monitorujte spustený kód
Odovzdávanie zostáv/ súborov pomocou Rshell
Nahrajte všetky súbory v adresári /build na čip ESP pomocou Rshell. Keď je mikrokontrolér pripojený k USB, zo zostavy/ priečinka spustite príkaz Rshell príkazom
rshell -p /dev /ttyUSB0
Potom skontrolujte čipové súbory (ak existujú) pomocou
ls /pyboard
Všetky súbory na čipe je možné odstrániť pomocou
rm /pyboard/*.*
Skopírujte všetky súbory projektu v zostave/ na čip:
cp *. * /pyboard
Potom príkazom spustite interaktívny terminál Python
repl
Teraz môžete z modulu záznamníka MiPy-ESP vyvolávať príkazy Pythonu alebo importovať moduly a monitorovať sériový výstup čipov.
Reštartujte čip stlačením tlačidla reset alebo z príkazového riadka
import hlavný
alebo
importný stroj
a potom
machine.reset ()
V závislosti od vašich nastavení protokolovania/ladenia v konfiguračnom súbore projektu bude teraz zdroj zobrazovať správy o ladení z čipu ESP cez sériové pripojenie.
Dúfajme, že by to malo začať.
Odporúča:
Kódujte hru s PYTHONOM (PRE figuríny!): 14 krokov
KÓDUJTE HRU S PYTHONOM (PRE DUMMY!): Vitajte v Pythone, treťom najpopulárnejšom programovacom jazyku na svete! … a pravdepodobne najjednoduchšom! Vedeli ste, že Youtube & Google má ako hlavný jazyk svojich úspešných aplikácií Python & webové stránky, ktoré vidíte? Nuž … a teraz
Začíname s Pythonom: 7 krokov (s obrázkami)
Začíname s Pythonom: Programovanie je úžasné! Je kreatívne, zábavné a dodáva vášmu mozgu mentálne cvičenie. Mnohí z nás sa chcú dozvedieť niečo o programovaní, ale presvedčiť samých seba, že to nedokážu. Možno má príliš veľa matematiky, možno žargón, ktorý sa hádže okolo, vydesí
Začíname so súpravou pre stolné počítače Raspberry Pi 4: 7 krokov
Začíname so súpravou pre stolné počítače Raspberry Pi 4: Raspberry Pi 4 je malý, výkonný mini počítač s podporou 4K s dvoma obrazovkami, rozhraním USB 3.0, novým CPU a GPU a až 4 GB RAM. V tomto návode budete naučte sa nastaviť Raspberry Pi 4 Model B a nainštalovať všetko, čo potrebujete na používanie
Začíname s ESP32 CAM - Streamovanie videa pomocou ESP CAM cez Wifi - Projekt bezpečnostnej kamery ESP32: 8 krokov
Začíname s ESP32 CAM | Streamovanie videa pomocou ESP CAM cez Wifi | Projekt bezpečnostnej kamery ESP32: Dnes sa naučíme používať túto novú dosku ESP32 CAM a ako ju môžeme kódovať a používať ako bezpečnostnú kameru a získať streamované video cez wifi
Začíname s ESP32 - Inštalácia dosiek ESP32 do Arduino IDE - Kód blinkru ESP32: 3 kroky
Začíname s ESP32 | Inštalácia dosiek ESP32 do Arduino IDE | Kód blinkru ESP32: V tomto návode uvidíme, ako začať pracovať s esp32 a ako nainštalovať dosky esp32 do Arduino IDE a naprogramujeme esp 32 tak, aby spustil kód blinkingu pomocou arduino ide