duminică, 11 decembrie 2022

Ceas analogic NTP pe afisaj P3 64x64 cu ESP32

    In urma vizionarii unui filmulet de pe net, cu un afisaj matriceal led cu rezolutie 64x64, 

si, ulterior, al altui filmulet, cu acelasi proiect
am incercat sa compilez sketch-ul din descrierea primului video si am avut probleme doarece nu exista fisierul fontului mic (acum este).
   Am observat ca am nevoie de 2 biblioteci, 
- DS1307ESP: https://github.com/3tawi/DS1307ESP
   Deoarece in biblioteca de control a afisajului exista doar un font
trebuie copiat fontul descarcat odata cu sketch-ul in subdirectorul font al acestei biblioteci:
si acum sketch-ul se compileaza
   Am comandat afisajul, care arata asa, fiind inscriptionat 
   Despre acest tip de afisaj puteti gasi o multime de informatii in articolul RGB-Matrix-P3-64x64
   Conform sketch-ului ceasului, conectarea dintre placa cu ESP32 si conectorul HUB75 al afisajului P3 64x64 este:
Prima placa cu ESP32, pe care am gasit-o, este un ESP32 DevKit v4

asa ca am desenat rapid o schita de conectare
sa imi fie usor de realizat montajul pe breadboard (de fapt, doua, una langa alta)
Atentie, conectorul este inscriptionat gresit, D este notat GND (intre B si LAT).

    Dupa incarcarea sketch-ului, am avut probleme, ca nu am avut antena externa (placa de am eu necesita)
dar pana la urma, pe afisaj a aparut ceasul


   Cu aceasta ocazie, am masurat si consumul (informativ):
- doar afisajul
- placa cu ESP32, intre 70 si 190mA

deci maxim 330-350mA la 5V, putandu-se alimenta ceasul dintr-un "incarcator de telefon".
   Am adaptatt sketch-ul din primul filmulet, inlocuind doar datele retelei Wi-Fi locale si fusul orar al Romania (+2, in perioada de iarna), deci sketch-ul folosit este Analog_Clock_NTP_P3_BMZ_0.ino
si am realizat 2 filmulete:
   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

vineri, 9 decembrie 2022

Ceas NTP pe afisaj OLED de 0.96" (128x64) cu interfata i2c

    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).
   Schema modificata este tot simpla:
iar programul adapat initial este NTP_clock_on_OLED_v1.ino care are definite clar numele retelei Wi-Fi si parola, iar versiunea NTP_clock_on_OLED_v2.ino este cea care face o Configurare usoara conectare la retea Wi-Fi pentru microcontrolerele ESP8266/ESP32 (folosind biblioteca WiFiManager).
   Functie de pozitia comutorului de la pinul D5, se alege:
- ora de vara cand pinul D5 este la +3.3V
- ora de iarna cand pinul D5 este la masa (GND)
  Un filmulet scurt ce indica ce am prezentat mai sus este ceas NTP pe afisaj OLED cu selector de ora vara/iarna
ca si urmatoarele:

vineri, 2 decembrie 2022

Termometru/higrometru cu DHT22/11 si ceas NTP cu reglaj pe afisaj led din 7 segmente cu MAX7219

    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 
iar in secundele 56-59 umiditatea relativa
   Mai bine se vede modul de functionare in filmuletele urmatoare, cand se foloseste programul ntp_clock_webcontrol_MAX7219_7seg_3.ino:
iar daca se foloseste programul NTP_clockntp_clock_webcontrol_MAX7219_7seg_3a.ino vom avea o aprindere intermitenta (in ton cu secundele) a liniilor dintre ore/minute si minute/secunde
- format de 24 ore:
- format de 12 ore:

3.12.2022
   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: