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
Daca m-am tot jucat cu ceasuri NTP cu Wemos D1 (ESP8266), la care am afisaj ora pe diferite afisaje led, am zis sa am si unul pe in afisaj OLED cu interfata i2c. Cele mai uzuale sunt cele cu diagonala de 0.96" (cca 2,44cm) si rezolutie 128x64 pixeli.
Dintre toate exemplele de pe net, am ales pe cel din articolul ESP8266 NTP Clock, care are o schema si o prezentare cu caractere foarte dragute (dar care ocupa destul de multa memorie):
Am reprodus si eu ceasul, schimband modul de de afisare al datei, dupa cum se vede in filmuletele:
Pogramul modificat de mine, si folosit in filuleltele de mai sus, este NTP_clock_on_OLED_v0.ino.
Ulterior, am incercat sa adaptez partea de reglaj de pe o pagina locala web, dar spatiul ocupat de fonturile astea frumoase, imi tot dadeau erori in functionare, asa ca am renuntat si am ous un comutator (pinul D5 la GND pentru ora de iarna, respectiv la 3.3V pentru ora de vara sau Daylight Saving Time / DST).
Am schimbat afisajul ceasului ce ia infirmatiile de pe un server NTP, dar are reglaje si de pe o pagina locala web cum am prezentat intr-un articol precedent, din unul cu 4 cifre si driver TM1737 intr-unul cu 8 cifre si driver MAX7219.
Schema deriva din cea gasita in articolul IOT ESP32-8266 & Crypto earning, doar ca i-am adaugat senzorul de temperatura/umiditate DHT22 (AM2302):
Ca si precedentele versiuni recente de ceas NTP, la initializarea ceasului ni se afiseaza un AP care persista daca ceasu nu are configurata reteaua wi-fi si parola acesteia (se foloseste facilitatea librariei WiFiManager),
iar daca datele sunt deja introduse, va apare adresa, de exemplu 192.168.3.109:
apoi se intra in modul de ceas, in format de 24 sau 12 ore (functie de alegerea din pagina locala web)
Daca este activata afisarea informatiilor suplimentare, in minutele pare, apare de la secunda 55 data si anul:
iar in minutele impare, dintre secundele 50-55, temperatura
Am observat ca lapierderea tensiunii sau prima alimentare, afisajul nu se aprinde decat la apasarea butonului de RESET de pe pleca WeMos D1, asa ca am modificat un pic schema si acum alimentez afisajul si senzorul DHT22 (AM2302) cu 5V, nu cu 3,3V: