
IoT prakticky: Python na ESP32 IV, knižnica octopus na obsluhu hardvéru a komunikácie
ESP 32 je plnohodnotná IoT platforma pretože umožňuje priame pripojenie k internetu cez WiFi. Aby ste mohli využívať WiFi pripojenie, potrebujete nastaviť pripojenie k WiFi routeru. Predpokladáme, že máte nainštalovanú implementáciu Micropythonu od octopusLab.cz. Postup je popísaný v článku https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32--vyvojove-dosky--instalacia-Micropythonu
Link na stiahnutie binárky Micropythonu je https://octopusengine.org/download/micropython/micropython-octopus.bin. Pripomíname, že Python je interpretačný jazyk, takže zdrojový kód sa nekompiluje, ale priamo vykonáva.
Celý postup inštalovania a konfigurovania knižnice je vo videu
Micropython od octopuslab.cz má implementovanú zjednodušenú inicializáciu systému pomocou príkazu
octopus_initial.setup()
Po zadaní príkazu cez terminálovú aplikáciu, vo Windows odporúčame PuTTY sa zobrazí ponuka funkcií inicializačného menu:
Na pripojenie k WiFi je potrebné najskôr zadať SSID siete a prístupové heslo. Zadajte príkaz:
w
Zobrazia sa informácie o wifi ovládači a ponuka menu pre nastavenie WiFi
Vašu WiFi sieť pridáte do konfigurácie príkazom
a
Budete vyzvaní, aby ste zadali SSID a heslo vašej siete.
Po zadaní týchto údajov sa znovu zobrazí ponuka menu SETUP
Príkazom
cw
sa pripojíte k WiFi sieti. Zobrazia sa informácie o parametroch pripojenia a úspešné pripojenie bude potvrdené oznamom
WIFI: OK
Keď máte pripojenie k internetu úspešne inicializované, môžete pristúpiť k ďalšiemu kroku - inštaláciu knižnice octopus
V menu SETUP zadajte príkaz [sd] - system download.
sd
Postupne sa nainštalujú knižnice a zobrazí sa zoznam nainštalovaných komponentov a výzva, aby ste príkazom CTRL-D urobili soft reset dosky.
O úspešnom nainštalovaní knižnice sa presvedčíte tak, že zadáte príkaz
setup()
a zobrazí sa vám rozšírená ponuka konfiguračného menu SETUP.
Zobrazí sa menu s ponukou možností. Napríklad ak potrebujete nakonfigurovať vstupy a výstupy zadáte príkaz: ios. Zobrazí sa ponuka v ktorej zapínate, alebo vypínate jednotlivé porty a komunikačné rozhrania. Číslo určuje počet zariadení. Napríklad ak máte v sérii zaradené štyri diódy Neopixel nastavíte ws [4]
Pokročilejší hardvér typu displej a komunikačné rozhrania zatiaľ necháme bokom (nie na dlho) a skúsime jednoduchú obsluhu GPIO portu, konkrétne GPIO2 na ktorom je pripojená modrá LED dióda umiestnená priamo na doske. Takže v menu I/O settings nastavíme položku 1 – LED diódu na doske
Príkazom
from util.octopus import *
sa do pamäti importujú triedy s metódami na obsluhu hardvéru, ktorý používate. Čiže ak máte cez príkaz ios nastavenú konfiguráciu hardvéru
Importujú sa objekty na obsluhu LED diódy, RGB LED diódy Neopixel, displeja zo sedem segmentových číslic a OLED displeja pripojeného cez I2C. Takáto dynamická konfigurácia umožňuje, aby ste v pamäti mali len tie objekty, ktoré vo svojom kóde využívate
V kóde ale import s hviezdičkou nepoužívajte, tam treba uviesť zoznam knižníc, napríklad
>>> from util.octopus import w, web_server
Pred použitím je potrebné knižnicu Octopus inicializovať príkazom:
octopus()
Terminál zobrazí informáciu o úspešnom inicializovaní knižnice. Výpis obsahuje aj informáciu o voľnej kapacite pamäti RAM. V našom prípade máme k dispozícii približne 77 kilobajtov.
Zoznam tried, ktoré sú aktuálne k dispozícii vypíšete príkazom TAB (klávesom tabulátor)
Vyskúšajme fungovanie knižníc. Podobne ako v predchádzajúcom dieli, aj teraz najskôr rozsvietime modrú LED diódu, ktorá je priamo na doske a je pripojená k pinu GPIO2. Tentokrát však budeme LED diódu na doske pomocou funkcií z objektovo orientovanej knižnice Octopus.
Príkaz vytvorí inštanciu objektu LED
led = Led(2)
Na rozsvietenie diódy je potrebné zadať príkaz:
led.value(1)
Príkaz toggle() prepne stav LED, takže ak je zhasnutá, tak sa rozsvieti a naopak
led.toggle()
Na bliknutie LEDkou môžete použiť funkciu, kde parametre sú čas svietenia a čas vypnutia v milisekundách.
Ak chcete vedieť na ktorý pin je pripojený objekt LED, zistíte to príkazom
Ak máte LED diódu pripojenú na porte, napríklad GPIO15, inicializujete ju príkazom
Python je objektovo orientovaný programovací jazyk. Na výpis metód a premenných objektu stačí napísať názov objektu, za ním bodku a stlačiť kláves TAB. Kláves TAB slúži ako určitý ekvivalent inteligentnej nápovedy. Stačí začať písať príkaz a po zatlačení TAB sa vypíše celý názov.
V našom prípade sú vypísané metódy a premenné objektu LED.
Ukážeme príklad pre obsluhu sedem segmentového displeja, pripojeného cez SPI. Displej má sériový driver MAX7219 a je zložený z dvoch modulov po 4 znaky, spolu je teda možné zobraziť 8 znakov. V príklade sme displej pripojili do slotu na doske ROBOTboard od octopuslab.cz,
![]() |
![]() |
popis rozhraní dosky ROBOTboard je na https://www.octopuslab.cz/vyvojove-desky/robot-board/
![]() |
![]() |
ale nakoľko displej sa pripája pomocou štyroch pinov, v budúcom dieli ukážeme jeho zapojenie na prepojovacom poli podľa tejto schémy
Najskôr pomocou príkazu [ds] - device setting nastavíme mapovanie pinov pre konkrétnu vývojovú dosku.
ds
V našom prípade pre dosku ROBOTboard nastavíme voľbu 5. Túto voľbu budeme používať aj keď budeme v budúcom dieli realizovať zapojenia elektornických komponentov na prepojoovacom poli. Mapovanie pinov pre túto konfugurácii nájdete na https://github.com/octopusengine/octopuslab/blob/master/esp32-micropython/pinouts/olab_esp32_robot_board1.py
Displej je potrebné inicializovať príkazom disp7_init(). Príkaz nainicializuje komunikačné rozhranie SPI a odovzdá inštanciu objektu d7.
d7 = disp7_init()
Môžete zobraziť číslo.
d7.show(3.1415926)
Alebo aj textový reťazec, pretože na 7 segmentovom displeji sa dá zobraziť aj hodne písmen, avšak nie všetky. My sme sa pokúsili zobraziť text
d7.show("PCREVUE")
Jednotlivé segmenty znakov sú v knižnici interne adresované takto:.
Bodka za číslom má kód 128.
Takže program pre blikajúcu pomlčku segmentu bude
bodku rozblikáte pomocou kódu
V budúcom pokračovaní ukážeme obsluhu ďalších hardvérových komponentov a komunikačných rozhraní a ukážeme ako môže doska ESP 32 fungovať ako webový server
Rekapitulácia seriálu
V prvej časti seriálu https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32--vyvojove-dosky--instalacia-Micropythonu sme predstavili vývojové dosky s ESP32 a ukázali postup, ako do vývojovej dosky nahrať interpreter programovacieho jazyka Python, konkrétne implementáciu Micropython od octopusLab.cz.
V druhej časti https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32--popis-portov-a-rozhrani sme predstavili piny rozhrania.
V tretej časti https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32-III--prve-pokusy-s-hardverom sme ukázali obsluhu vstupných a výstupných portov
Zobrazit Galériu