Hrátky s WiFi čipem ESP8266 (5.díl – I²C LCD)

Dnes se budeme zabývat využitím zobrazovače v podobě 16×2 znaků velkého LCD displeje v kombinaci s WiFi modulem ESP-01 to vše přes I²C sběrnici, nebo-li TWI – two wire interface.

Princip toho jak sběrnice funguje si může každý nalézt ve wiki. Takže pouze ve zkratce – sběrnice běží po dvou drátech, na jednom běží hodinový signál, na druhém se vysílají data. Na sběrnici je možno připojit až 128 zařízení. Každé zařízení na sběrnici má svojí 7 bitovou adresu. Požadavky pro zápis/čtení jsou vždy volány s danou adresou.

Co budeme potřebovat:

Nahoře vidíme lcd displej a I²C kontrolér pro něj určený. Dole vlevo je odporový trimr pro ladění jasu displeje, zbytek tvoří modul ESP-01 a součástky pro jeho napájení.

Z ESP-01 modulu, kondenzátorů a regulátoru LF33CV si sestavíme napájecí zdroj podle minulého dílu tohoto seriálu.

I²C kontrolér napájíme na LCD a vše zapojíme podle schématu.

Pokud máme vyrobený přípravek pro napájení, můžeme ho díky regulátoru připojit na 5V jako LCD displej.

Kromě nahrání programu do ESP modulu zbývá objasnit ještě jednu zásadní otázku. Tou je zdroj dat. Na displeji se zobrazují především data z meteostanice, kterou si představíme v jednom z dalších dílů. Tato meteostanice ukládá data na server postavený na raspberry pi. Na raspberry běží webserver lighttp a z ten pomocí jednoduchého php skriptu na požádání vysype řetězec, který je podle potřeby rozřezán a zobrazen. S ESP se samozřejmě můžete připojit kamkoliv, a tak nejste limitováni použitím daného HW.

Kód je okomentovaný, ale jednoduché vysvětlení neuškodí. V kódu je definováno připojení na IP webserveru a GET request souboru openweathermap.php. Návratová hodnota může vypadat následovně:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Connection: close
Transfer-Encoding: chunked
Date: Sun, 01 Jan 2017 09:35:21 GMT
Server: lighttpd/1.4.35

99
@datum a cas @2016-12-31 14:59&teplota uvnitr@25.10ßC&teplota venku@9.50ßC&vlhkost@64.57%&tlak@1029 hPa&osvetleni@3003.8 lx&rychlost vetru@0 km/h&konec@
0

Skript si z tohoto řetězce vyzobe potřebná data, která začínají „@“ a končí „konec@“. Znak @ (zavináč) určuje zalomení řádku, znak & (ampersand) určuje data pro další obrazovku.

A před zdrojovým kódem ještě malé demo.

Přílohy

2 komentáře: „Hrátky s WiFi čipem ESP8266 (5.díl – I²C LCD)

    1. Ahoj Lukáši, můžeš nám říct více? Jaký display používáš? Co a kde ti to přesně píše?

Napsat komentář: Lukas Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna.