Image
1.11.2019 3 Comments

IoT prakticky: Python na ESP32 III, prvé pokusy s hardvérom

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 populárnym čipom ESP32 a ukázali postup, ako do vývojovej dosky nahrať interpreter programovacieho jazyka Python, konkrétne implementáciu Micropython s knižnicou octopus od octopusLab.cz.

V druhej časti https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32--popis-portov-a-rozhrani sme predstavili piny rozhrania. Len pripomíname, že obvod ESP 32 využíva 3.3 V logiku, čiže privedenie 5V na niektorý z pinov by ho s najväčšou pravdepodobnosťou zničilo. V tomto dieli ukážeme jednoduché príklady zamerané na využitie hardvéru ESP 32.

Všetky príklady sú vo videu



Predpokladáme, že máte modul s nainštalovaným interpreterom Micropythonu. Správne nakonfigurovaný modul vypíše na emulátor terminálu prompt >>>.  Python je interpreter, môžete mu priamo zadať nejaký jednoduchý matematický výraz a terminálová aplikácia by mala vypísať výsledok

>>> 1 + 1

Po úspešnej konfigurácii môžeme začať jednoduchými pokusmi s hardvérom. Pripomíname, že bez obmedzenia môžete využiť piny GPIO2 ku ktorému je však pripojená modrá LED dióda na doske, GPIO 4, GPIO5, GPIO13 a GPIO16 až GPIO33. Na pinoch GPIO 14 a 15 je počas bootovania PWM signál, inak ich tiež môžete použiť bez obmedzenia.  

Ako prvá sa ponúka LED dióda, ktorá je priamo na doske a je pripojená k pinu GPIO2. 

from machine import Pin
from time import sleep
 
led = Pin(2, Pin.OUT)
led.value(1)

Skúsime LED diódu rozblikať v nekonečnej slučke.

from machine import Pin
from time import sleep
 
led = Pin(2, Pin.OUT)
while True:
  led.value(1) 
  sleep(0.3)
  led.value(0)
  sleep(0.3)

Nekonečnú slučku prerušíte príkazom Ctrl-C b aplikácii PuTTY.

Pre diódu zapojenú mimo dosku ESP32, pripojenú cez rezistor 330 ohm napríklad na pin GPIO 15 by stačí príklad mierne modifikovať.

Schéma zapojenia

Pre zmenu tu LED diódu nerozsvecujeme a nezhášame, ale zisťujeme jej aktuálny stav a negujeme ho. Čiže ak dióda svietila, tak ju zhasneme a opačne. Pin GPIO15 sme vybrali preto, lebo je v nami použitom module v dolnej rade ako tretí zľava, hneď vedľa napájacieho napätie 3V3 a GND. 

from machine import Pin
from time import sleep
 
led = Pin(15, Pin.OUT)
while True:
  led.value(1) 
  sleep(0.3)
  led.value(0)
  sleep(0.3)

 

Reálne zapojenie. Kvôli zjednodušeniu je vývod GND pripojený priamo na LED diódu a nie na napájacie lišty v dolnej časti prepojovacej dosky

Písať rozsiahlejšie programy cez konzolovú aplikáciu typu PuTTY je trochu nepraktické, rovnako nepraktické je písanie kódu v textovom editore do súborov s príponou .py a ich následné posielanie do dosky. Preto odporúčame vhodný editor pre Python, najlepšie s farebným rozlíšením syntaxe. Odporúčame uPyCraft, ktorý je k dispozícii pre Windows, aj MacOS. Je to open source projekt a všetko potrebné vrátane zdrojoviek je na GitHube https://github.com/DFRobot/uPyCraft. Pre Windows stačí stiahnuť spustiť EXE súbor.

Následne v menu Tools vyberiete príslušný COM port a typ dosky, v našom prípade ESP 32. Vytvoríte si nový súbor, napríklad pokus.py, napíšete kód a súbor uložite. Po pripojená tlačidlom Connect môžete svoje programy zavádzať priamo do dosky tlačidlom Download and Run.

Vyskúšame jednoduchú aplikáciu, ktorá bude na porte GPIO4 snímať stav tlačidla a podľa toho sa rozsvieti, alebo zhasne LED dióda na porte D15

from machine import Pin
from time import sleep
 
led = Pin(15, Pin.OUT)
tlacidlo = Pin(4, Pin.IN)
while True:
  tlacidlo_stav = tlacidlo.value()
  led.value(tlacidlo_stav)
  sleep(0.1)

Reálne zapojenie. Napájacie napätie 3.3 V aj GND sú vyvedené la lištu v zpodnej časti dosky označené červenou a modrou linkou

Hardvérové komponenty však môžete prehľadnejšie a v zmysle objektovo orientovaného programovania ovládať pomocou funkcií knižnice Octopus. Možnosti tejto knižnice predstavíme v ďalšom pokračovaní

 

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mikrokontroléry

Programovanie PLC – aplikácia pre riadiacu jednotku UniPi Axon M205 so systémom Mervis

24.02.2020 00:10

V predchádzajúcom článku zo série programovanie PLC sme predstavili riadiacu jednotku UniPi Axon M205. Programovanie tejto riadiacej jednotky s implicitne nainštalovaným systémom Mervis pomocou diagra ...

Mikrokontroléry

Programovanie PLC – Riadiaca jednotka UniPi Axon M205

22.02.2020 00:10

Programovateľný logický kontrolér (PLC) a prevodník Unipi Axon M205 má k dispozícii dostatočný počet digitálnych, reléových a analógových vstupov a výstupov, takže sa dá použiť aj v rozsiahlejších pro ...

Mikrokontroléry

Programovanie PLC – Siemens Logo! analógové vstupy a funkcie

21.02.2020 00:10

V predchádzajúcich častiach sme predstavili možnosti programovania „entry level“ PLC Siemens Logo!, či už priamo pomocou tlačidiel na module, alebo vo vývojovom prostredí Logo! Soft Control. Pokračuje ...

3 Comments

  1. Chyba v schéme reakcia na: IoT prakticky: Python na ESP32 III, prvé pokusy s hardvérom
    5.11.2019 11:11
    Upozorňujem na chybu v schéme zapojenia:
    Je prepojený pin 3V3 na GND = skrat!
    (... červené a modré prepojenie hneď vľavo dole)
    Niekomu to môže spôsobiť "odpálenie" kitu s ESP 32.
    Reagovať
  2. adkoo reakcia na: IoT prakticky: Python na ESP32 III, prvé pokusy s hardvérom
    1.11.2019 11:11
    velmi chvalim tuto seriu clankov. Sam programujem arduino, esp32 po veceroch ale v praxi pracujem s dsp a microchip pic32. Pracovat s esp32 je zabava, mam napriklad urobenych niekolko snimacov teploty/vlhkosti, pripojenych na bateriu a wifi. esp32 ma vyborny sleep mod, a snimace mi na jedno nabitie posielaju data cez wifi a IFTTT na do google calc kazdych 15 minu cca pol roka. Cele sa to zmesti aj s bateriou do zapalkovej skatulky. plus rano mi to posle najnizsiu a najvyssiu teplotu priamo do iphonu ako popup spravu.
    Reagovať
  3. MU editor reakcia na: IoT prakticky: Python na ESP32 III, prvé pokusy s hardvérom
    1.11.2019 07:11
    Odporúčam skúsiť aj MU editor alfa verziu má v sebe zabudovanú podporu pre ESP32
    https://codewith.mu/en/download
    jr
    Reagovať

Gopas .Net DevDays 2020 - 24.4.2020

Videá