Dupa ce am testat ceasul, m-am gandit sa adaug si cateva informatii meteo. Am apelat la AI, dar de data asta, dupa vreo 4 zile de incercari, am zis sa incerc si eu. Nu mi-a iesit din prima, dar modificarea, sau mai bine zis adaptarea programului de ceas, era destul de simpla si cu o versiune de program destul de matura, am facut 2 filmulete
Programul ceasului contine o variabila ce permite activatea afisarii in text definit, dar a fost usor sa fac ca textul sa fie redefinit la fiecare actualizare a datelor de la serverul open-meteo.
Am regasit un afisaj de generatie veche (vintage), pe care l-am primit acum vreo 10 ani de la dl. Janos Baricz, ca sa facem un ceas cu el. La acea vreme am facut un ceas RTC cu un senzor DHT22 si reglaj din encoder.
Acum, am apelat la AI, sa folosesc placuta ESP32-C3 Supermini.
Pana nu am furnizat AI-ului programul de test care functiona si cu Arduino clasic, nu am avut nimic functional, desi primeam informatii ca nu am conectat bine placa la afisaj, cand raspundeam ca nu apare nimic pe afisaj. Programul de test este SDA5708_demo1a.ino .
Dupa depasirea acestui mic impediment, am realizat un ceas NTP
Ulterior, am adaugat reconectare automata la reteaua wifi, in caz ca se pierde legatura, programul imbunatatit este NTPclock_esp32ce_SDA5708_v0a.ino .
Am adaugat intensitate luminoasa afisaj in 3 trepte (zi, seara si noapte), apoi cateva informatii de pe site-ul open-meteo (temperatura, umiditate relativa in aer, presiune atmosferica si stare generala vreme), care in ultima versiune de program (NTPclock_esp32ce_SDA5708_v1a.ino) arata asa:
Am realizat 2 filmulete cu o versiune ulterior modificata de program:
Deoarece modul de afisare ora ca ceas digital cu cifre mari si ceas analogic simplu plus prezentarea informatiilor meteo pe 2 randuri mi s-a parut interesant, am mutat proiectul pe afisajul OLED de 2.42".
Programul adaptat penteu OLED-ul cu driver SSD1309 (functioneaza similar cu SSD1306, care echipeaza afisajele de 0.96") este weatherstation2_esp32c3_ssd1309_v1e.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.
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
si am obtinut o versiune interesanta, folosindu-ma si de data asta de AI, dar modificand si eu cand era cazul, programul rezultat este weatherstation2_esp32c3_st7920_v1b.ino.
Schema de conectare este aceeasi, schimbarile sunt doar la nivel de program.