Obsah:

Začíname s Pythonom pre ESP8266 a ESP32: 6 krokov
Začíname s Pythonom pre ESP8266 a ESP32: 6 krokov

Video: Začíname s Pythonom pre ESP8266 a ESP32: 6 krokov

Video: Začíname s Pythonom pre ESP8266 a ESP32: 6 krokov
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, Júl
Anonim
Začíname s Pythonom pre ESP8266 a ESP32
Začíname s Pythonom pre ESP8266 a ESP32

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

Doska Wemos D1 Mini ESP8266
Doska Wemos D1 Mini ESP8266
Doska Wemos D1 Mini ESP8266
Doska Wemos D1 Mini ESP8266
Doska Wemos D1 Mini ESP8266
Doska Wemos D1 Mini ESP8266
Doska Wemos D1 Mini ESP8266
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

Príprava na MicroPython na čipe ESP
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

Začíname s MiPy-ESP
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

Rámcová architektúra MiPy-ESP
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:

  1. 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í.
  2. 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.
  3. 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
  4. 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

Príprava kódu projektu
Príprava kódu projektu
Príprava kódu projektu
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

Zostavenie a nahranie kódu do mikrokontroléra
Zostavenie a nahranie kódu do mikrokontroléra
Zostavenie a nahranie kódu do mikrokontroléra
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: