
Stacja pogodowa na wyświetlaczu 240x128 ze sterownikiem T6963, Arduino Nano jako "sterownikiem" wyświetlacza i ESP8266 jako źródłem.
Uzyskałem wyświetlacz z lekkim uszkodzeniem w postaci nieczynnych poziomych linii, wyeliminowałem te linie wykorzystując odpowiednie graficzne ułożenie (przerwy między ramkami w grafice wyświetlacza widocznym na zdjęciu).
Sterownik wyświetlacza działa na bibliotece u8glib i Timelib.h dla Arduino. Sterownik jest tak zaprogramowany aby przyjmował czas w postaci czasu unixowego (czas w sekundach od początku epoki) i wiadomości tekstowe które wyświetli w dwóch ramkach pod datą. Informacje te są przesyłane z ESP8266 poprzez UART.
0x02 to znak początku wiadomości,
0x03 to znak końca wiadomości
Można przesłać 3 typy informacji w postaci:
znak początku"0x02" parametr, informacja znak końca"0x03"
linia pierwsza: 0x02 1, ramka pierwsza 0x03
linia druga: 0x02 2, ramka druga 0x03
i czas w postaci czasu unixowego.
ESP8266 poprzez WiFi pobiera czas z wskazanego serwera czasu (biblioteka Timelib.h), wykorzystuję również bibliotekę Timezone.h - aby dostosować czas do obowiązującego w Polsce (czas letni/zimowy), ponieważ czas z serwera to UTC 0. Informacje pogodowe pobierane są z serwera Open Weather Maps - aby z niego korzystać należy założyć darmowe konto i wygenerować klucz API potrzebny do obsługi zapytań tego serwera.
Początkowo próbowałem skorzystać z biblioteki JSON dla Arduino do odczytu informacji pogodowych, lecz zrezygnowałem z tego na rzecz własnego 'parsowania' danych. Dane zwracane przez bibliotekę miały własny format danych, które ciężko konwersować do innych typów.
[Jeśli chcesz skorzystać poniższych kodów, przy próbie załadowania tych kodów do mikrokontrolerów upewnij się, że masz załadowane potrzebne biblioteki użyte w kodzie.]
Kod dla Arduino Nano jako sterownik wyświetlacza:
Code: c
Kod dla ESP8266:
Code: c
Pomocne linki:
wątek na forum Arduino: Topic: Serial Input Basics - updated - jak działa komunikacja UART i przykładowe kody (bazowałem głównie na przykładzie nr 5)
Open Weather Maps API - stąd można pozyskać dane środowiskowe (temperatura, wilgotność, itd...)
Jak dodać płytkę ESP8266 do Arduino IDE
Projekt zaktualizowany o użycie samego ESP8266: Link
Cool? Ranking DIY