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