Deoarece afisajul OLED de 2.42" are rezolutie de 128x64 si foloseste driverul SSD1309, ca si afisajul OLED de 0.96" care are aceeasi rezolutie si un driver similar, SSD1306, iar in testele anterioare, au functionat similar, am zis sa mut si proiectul ceasului NTP cu simularea schimbarii prin cadere a jumatatilor de cifre (ceasuri "flip").
Deoarece informatia e greu de citit pe ecranul cu diagonala de 0.96" (cca. 2,5cm) am renuntat repede la teste. Ulterior, am testat pe un afisaj OLED de 2.42" (cca. 6,2cm) si e "alta viata"
Intr-o comanda din China, am achizitionat si o placa de dezvoltare cu ESP32-S3 (format mic) si un afisaj OLED cu 2 colori (de fapt, 2 zone, una cu galben si una cu albasteu).
Deoarece programul nu este optimizat pentru un afisaj OLED cu 2 zone de culoare, informatia arata ciudat
Pana sa obtin ceva afisat pe ecran, a trebuit sa rulez programul i2c scanner deoarece pe cablaj era inscriptionata adresa in alt format hexazecimal de 8 bini, 0x78, iar uzual e folosita cea hexazecimala 0x3C, cu 7 biti, detalii se gasesc in articolul Element14 - OLED I2C Silkscreens are wrong, or are they?
Dupa ce am aranjat cu AI-ul pozitia informatiilor pe ecran, adaugand si schimbarea automata a orei pentru Romania, programul orig8nal a devenit NTPclock_esp32s3_ssd1306_v1.ino.
Am achizitionat un afisaj OLED de 2.42" care are un driver SSD1309 cu protocol de comunicare SPI, dar poate fi configurat si i2c.
Nu aveam asteptati prea mari de la afisaj, dar dupa ce am incarcat un program de test creat cu AI-ul am observat ca are un contrast foarte puternic in comparatie cu afisajul cu driver ST7920, ulterior constand ca este si mai rapid (configuratia este ca a unui afisaj cu driver SSD1306 ce fontroleaza afisajele OLED de 0.92" sau 0.96").
Schema de conectare este realizata ca in sketch, alimentarea fiind la 3.3V
Am considerat ca statia meteo cu ST7920 poate fi sugestiva pentru compararea afisajelor, avand aceeasi rezolutie (128x64) si outand fi controlate cu biblioteca grafica u8g2.
Am gasit pe Hackster.io un articol interesant numit Weather Station Station, care folosea un ESP8266 si un afisaj cu driver ST7920. Ora e luata de pe un server NTP, iar informatiile meteo de la serverul openweathermap, care necesita utilizarea unui cont din care putem obtine o cheie unica (APIkey).
Fiecare informatie are un simbol mare si valoare plus un text deplasabil.
Am apelat la Z.AI sa imi adapteze codul pentru placa cu ESP32-C3 Mini (Supermini) in care sa folosesc aceeasi schema, ca si la celelalte proiecte.
Am mai aranjat si eu dupa ce am considerat ca trebuie si ora afisata, altfel derularea informatiilor e prea lenta si intr-un final plictisitoare.
Ulterior am renuntat la informatiile de pe openweathermap deoarece pentru incele UV cu cheia uzuala oferea informatii intarziate (aproape de apusul soarelui era indicat un indice UV de cca 7.2 in loc de 0.0) asa ca am trecut la open-meteo.
Daca tot sunt la momentul testarii diverselor ceasuri NTP cu informatii meteo, am zis sa incerc si unul cu afisaj matriceal cu 32x8 leduri (controlate cu MAX7219).
Afisajul se conecteaza la placa ESP32-S3 Mini (Supermini) asa cum este in program
iar montajul este foarte simplu
Partea deosebita ca ora se regleaza automat datorita apelarii unei adrese prin care afla coordonatele geografice ale zonei de unde se apeleaza, dar si ora locala (de fapt cu cat e decalata ora in secunde fata de cea "standard") - http://ip-api.com/json/?fields=country,city,lat,lon,timezone,offset
Deoarece mi-a placut mai mult versiunea in care ceasul analogic era cat inaltimea afisajului (64), am apelat la AI sa imi modifice programul... am mai modificat si eu, astfel ca ceasul digital are fonturile groase maxim posibil, reducand spatiul dintre ore si minute.
Informatiile meteo sunt scrise pe 2 randuri, cu fomturi maxim posibil, 8 caractere pe randul de sus si 9-10 caractere pe randul de jos.
Programul modificat este weatherstation2_esp32c3_st7920_v1d.ino iar schema de conectare este nemodificata, fata de ce am prezentat in articolele anterioare