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:

marți, 29 noiembrie 2022

Placa de dezvoltare Witty cu ESP8266

      In cautarea unor placi de dezvoltare ieftine cu ESP8266, am dat de placa "Witty", care, in mod normal nu are interfata seriala, ci doar alimentare cu conector micro-usb, dar are pe cablaj un led multicolor, un buton farar retinere si o fotorezistenta conectata la intrarea analogica intr-o schema de divizor rezistiv. In plus, exista o placa adaptoare cu interfata usb, pentru progrmaare si monitorizare seriala a datelor.

    In articolul Witty Cloud Module Adapter Board  am gasit schemele celor 2 placi, cea de baza si cea de interfatare usb:

   Am gasit in articolul Hands-on review: Wi-Fi Witty, the $6 pre-made IoT solution o prezentare a pinilor si a conexiunilor cu ledul multicolor si fotorezistentei:

dar si in articolul AndroLogiciels: ESP12-F


Tot cautand informatii am gasit si articolul ESP8266 WIFI Witty Cloud Development Board(8154)
si un program de test rapid al functionalitatii la https://github.com/amkuipers/witty pe care l-am foloit si eu dupa cum se vede in filmuletele:
   Ulterior, mi-am pus capul la contributie si am scris un programior mai complex (witty_test2.ino), astfel ca la fiecare apasare a butonului fara retinere se schimba culoarea ledului multicolor, iar intensitatea luminoasa a acestuia depinde de intensitatea luminoasa de pe fotorezistenta:
   Am testat apoi ceasul NTP cu termometru/higrometru, ce are reglaj de pe o pagina locala web, cu programul acestuia,
 doar ca am modificat pinii folositi:
si asta se vede in filmuletele:
   Ca un rezumat, placa de dezvoltare "Witty" cu ESP8266 e utila, daca e deja achizitionata, are cam putini pini liberi, nu e nici "breadboard friendly", pentru a trebuit sa folosesc 2 breadboard-uri pentru a putea face si legaturi, dar daca se foloseste un cablaj de test sau unul clasic atunci se poate folosi fara probleme.

sâmbătă, 12 noiembrie 2022

Cum se foloseste metoda multiplexarii la afisajele led cu 7 segmente...

    In ai multe proiecte am folosit metoda multiplexarii, care pentru anumite persoane e ceva ciudat si de neinteles, asa ca o sa incerc sa va prezint aceasta metoda, cum am folosit-o eu la ceasuri sau la termostatele cu afisaj led din 7 segmente.

    Un exemplu concret este ceasul NTP cu date meteo de la senzor DHT22 pe afisaj led multiplexat (catod comun)

acolo am folosit un afisaj cu catod comun, avand codul LFD080AAG-103-01 la care i-am adaugat rezistente a fiecare segment (a...g + punctul zecimal).

   Un afisaj cu anod comun este KW4-563ASA, folosit initial in articolul Afisaje LED cu 7 segmente si.. Arduino (in 2013)
   Metoda este folosita de foarte mult timp, in primul rand, pentru ca reduce mult namarul de pini ai afisajului:  la afisajul multiplexat cu 4 cifre sunt doar 12 pini (4 cifre si 8 segmente), pe cand la un afisaj cu comanda separata sunt folositi 28 pini (4 grupe de cate 8 segmente).
   Daca vreau sa afisez ora 12:34, sunt 2 cazuri:
- cu secundele aprinse (in cazul de fata, doar punctul zecimal de la cifra a 2-a)
- fara secunde
   Bun, acum, pentru cazul afisarii orei cu secunda:

respectiv fara secunda

deci sunt 4 timpi:
- primul timp: se alimenteaza prima afisaj si se aprinde cifra 1
- al doilea timp: se alimenteaza al doilea afisaj si se aprinde cifra 2 ( cu sau fara punctul zecimal)
- al treilea timp: se alimenteaza al treilea afisaj si se aprinde cifra 3
- al patrulea timp: se alimenteaza al patrulea afisaj si se aprinde cifra 4
apoi se repeta de la timpul 1.
   La afisajele cu anod comun, un fisaj se comanda prin alimentarea cu plus a pinului comun si conectarea minusului, cel putin printr-o rezistenta de limitare a curentului, la toate segmentele dorite a se aprinde, iar la afisajul cu catod comun, segmentele seconecteaza la plus prin rezistenta si la masa se conecteaza pinul comun. Cifrele si anumite litere sau simboluri se fac cum e prezentat in articolul 7-segment HEX decoder
   Cand doresc sa afisez temperatura:

sau umiditatea relativa:

sau

care deriva din materialul prezentat in articolul Ceas cu reglaj manual al orei si datei, alarma si termometru pe afisaj multiplexat cu 4 cifre led
si are mai multe versiuni de sketch-uri pe https://github.com/tehniq3/multiplexedclock4b, iar schema este 
 
la care se poate conecta or un afisaj cu catod comun ori unul cu anod comun, doar se modifica cateva linii:
respectiv
   Un mod mai frumos de afisare a secundelor, consta in intoarcerea, cel putin a afisajului 3:
cum am folsit la ceasul "caramida din lemn"