La sugestia unui urmaritor al canalului de youtube sa folosesc placa cu ESP32 C3 Mini in loc de Wemos D1 Mini (cu ESP8266), am cerut AI-ului sa imi modifice ultimul program (sketch) pentru noul microcontroler.
Deoarece indicele UV era indicat "doar ziua" intre orele 9 si 20, am cerut a se modifce programul astfel sa sie indicat indicele cand este mai mare ca zero, asa ca programul actualizat este NTPclock_openmeteo_v2b.ino.
Fata de ceasul prezentat in prima parte, am mai facut mici modificari, in primul rand am testat cum sa fac reglajul intensitatii, deoarece pe timp de noapte e deranjanta intensitatea maxima a culorilor.
apoi am adaugat o fotorezistenta intr-un circuit de divizor rezisitv ca in articolul ESP32 - light sensor
si programul meu de test a fost Analog_Clock_NTP_P3_BMZ_1b.ino, in care am pastrat conectarea divizorului rezistiv de la 3.3V la pinulGPIO 36 (adica ADCO0):
adica alimentare de la 3,3V a fotorezistentei, conectare la pinul 36 (GPIO36), apoi rezistenta de 10kΩ la masa (GND).
apoi am realizat ca limba de ora este ascunsa de cea de minute, asa ca am modificat programul, ca limba de secunde sa fie afisata prima, apoi cea de minute si peste cea de ore;
Am vrut sa implementez reglajul orei de vara/iarna de pe o pagina locala web, ca la alte ceasuri, dar am avut ceva dificultati, asa ca din lipsa de timp, am implementat reglajul cu ajutorul unui comutator,care muta pinul 23 la +3.3V pentru ora vara (DST)
Dupa cum spuneam si prin filmulete, ma deranja modul de schimbare la fiecare secunda a culorilor, asa ca am modificat sa fie la fiecare minut. Programul modificat, si folosit in filmuleltele urmatoare, este Analog_Clock_NTP_P3_BMZ_1.ino
Am reusit sa am indicatii in limba romana si pentru ceasul acesta (vedeti articolul precedent), scriind intr-un sir de caractere numele zilei, in alt sir de numere lungimea (numarul de caractere al numelui), la fel si pentru numele lunilor.
Schema de conectarea a modulelor este identica ca si la versiunile anterioare, doar ca s-a modificat un pic programul.
Ca si in versiuniule precedente, apare ora animata cu cifrele ce se modifica ce "coboara", apoi apare ziua, data, temperatura si umiditatea realtia a aerului, dupa cum se vede din pozele urmatoare:
Cel mai bine se vede modul de prezentare in filmuletele urmatoare:
23.09.2019
Deoarece uneori afisajul ramane stins, la initializare, am modifica ca textele ce se deruleaza sa fie impartite, intr-un minut sa apara data, in celalalt temperatura si umiditatea.
Programul modificat este MatrixClock_ESP8266_DHT_3e2ok.ino si modul de afisare se vede in cele 2 filmulete:
- ceas matriceal animat cu higrometru si termometru (6)
Deoarece am observat ca daca ESP-ul se deconecteaza de la retea, verificarea la fiecare minut, in secunda 10, determina stingerea afisajului pentru perioada verificarii, am modificat sa am acest procedeu doar la ora 0:0:10, deoarece ceasul RTC cu Ds3221 este foarte precis si nu pot aparea decalaje de ora prea mari intr-o zi.
si am dezactivat indicarea anumitor stari prin aprindere/stingrea ledului de la D0/GPIO0 👽
05.03.2020
Revenind acum cateva zile la ultima versiune, am constatat de dimineata ca se stinge afisajul cand sa afiseze ziua si data. Intre timp si Bogdan Argatu mi-a sesizat problema, asa ca am inceput amandoi investigatiile.
In ecranul de monitorizare seriala apare ceva de genul
Deoarece problema este doar cand se afiseaza numele zilei intreg, am pus sa mi se afiseze variabilele ce sunt calculate pentru a scoate din sir ziua si am observat ca duminica pentru RTC e zero, iar eu scad un 1 pentru ca am creat sirul incepand cu luni.
asa ca am modificat programul, creand o variabila zi3 care daca e mai mica ca 0 se face 6:
Programul cu aceasta corectie este MatrixClock_ESP8266_DHT_3e2ok2.ino !!! dar am corectat si versiunile anterioare... pentru a nu aparea erori.
La ultima versiune, am modifcat si literele 'a' si 'c', deoarece 'a' era prea inalt, iar 'c' prea scund.
Am folosit caracterele groase pentru numere, create de Bogdan, si programul devine MatrixClock_ESP8266_DHT_3e3.ino modul de prezentare se vede in filmuletele urmatoare:
Deoarece unori apar caractere gresite la temperatura si umiditate, am schimbat libraria DHT cu una dedicata pentru ESP8266 si anume DHTesp, asa ca programul este acum MatrixClock_ESP8266_DHT_3e3e4.ino.