hamik144



6. Hodiny, teploměr, meteo-stanice

První jednoduché projekty s ESP32 (na 8-mi znakovém sedmisegmentovém displeji nebo s OLED či LCD displejem)

Předpokládáme, že již máte ESP32 s nahraným Micropythonem. Na úvod si tentokrát povíme něco málo o práci se soubory, přímo ve flash paměti. Na ESP32 totiž neběží žádný operační systém, jako na běžném počítači. Systém se odkazuje do SDK (Software Development Kit) a proto jsme využili možnosti Micropythonu a na práci se soubory jsme napsali vlastní knihovnu inspirovanou Linuxem:

# použít se může klasicky více způsoby:
>>> from util.shell import ls # import jediné konkrétní funkce  
>>> ls() # vypíše seznam souborů kořenového adresáře
>>> ls("examples") # soubory v podadresáři "examples" (ukázky)
 
>>> from util.shell import * # import "všeho" 
z terminálu import * nevadí, pro línější programátory (a je nás asi takových většina) - ale v programu používat nedoporučujeme 

# můžeme si pak vyzkoušet i
>>> cat() # což defaultně zobrazí "main.py" nebo
>>> free() # nám vypíše volnou RAM

Spustíme-li přímo shell() - můžeme pracovat v modu, jako v Linuxu, zkuste si:
>>> from util.shell import shell 
>>> shell() 

Hodiny na sedmisegmentovém displeji

Na vývojové desce ROBOTboard je připojen modul ESP32 (2x 15 pin) a sedmisegmentový display (SPI obvod max) – vše opět v klasické elektroinstalační krabičce.
Celý zdrojový kód najdete v odkaze. Princip je takový, že se modul připojí k internetu, odkud si zjistí, kolik je hodin a pak zobrazuje čas na displeji – střídavě s pomlčkou a bez pomlčky (dvojtečka ne tom displeji není).

>>> cat("examples/clock.py") # zobrazí zdrojový kód základu hodin 
# hodiny s displejem jsou v examples/disp7_clock.py 
# naučte se koukat do zdrojových kódů na github.com/octopuslab
  
# spuštění z konzole provedeme jednorázově:
>>> import examples.disp7_clock

# automatické spuštění po startu (zkopírování do main.py):
>>> from util.shell import cp
>>> cp("examples/disp7_clock.py") # zkopíruje do main.py
# pak se spustí vždy po restartu, i po připojení na powerbanku

Teploměr na OLED displeji

Na nově vyvíjeném modulu ESP32board s připojeným OLED displejem a „one-wire“ teploměrem (vpravo dole):

# pro výpis všech ukázek s oled displejem použijeme "linux" příkaz:
>>> from util.shell import find
>>> find("oled") # defaultně hledá v adresáři "examples"

# náš teploměr s čidlem DS18S20 spustíme:
>>> import examples/oled_thermometer

Všechny zdrojové kódy a detaily zapojení postupně probereme v některém z dalších dílů. Záleží na odezvě, jaký bude zájem a případné dotazy. Velkou část ukázek popisujeme na webu, něco je na Facebooku (facebook.com/octopuslabcz), Twitteru (twitter.com/laboctopus) nebo Instagramu (instagram.com/octopusengine). Budeme rádi, když nás budete sledovat a začnete s námi komunikovat i na sociálních sítích.

echny zdrojové kódy a detaily zapojení postupně probereme v některém z dalších dílů. Záleží na odezvě, jaký bude zájem a případné dotazy. Velkou část ukázek popisujeme na webu, něco je na Facebooku (facebook.com/octopuslabcz), Twitteru (twitter.com/laboctopus) nebo Instagramu (instagram.com/octopusengine). Budeme rádi, když nás budete sledovat a začnete s námi komunikovat i na sociálních sítích.

Meteostanice s LCD a čidlem BME280

Čidlo BME280 (připojeno přes sběrnici I2C) měří kromě teploty také atmosferický tlak a vlhkost vzduchu – což je ideální pro konstrukci malé
meteorologické stanice:

# princip získání dat ze senzoru je zřejmý z ukázky:
from examples.bmp280 import bmp_init 
bmp = bmp_init() 
t = bmp.temperature