Dupa ce am tot testat diverse biblioteci care sa mearga cu ESP8266 cu afisajul led P10, inclusiv biblioteca DMD2, care are reglaj al intensitatii luminoase, ce functioneaza bine pe Arduino clasic, nu am fost multumit de rezultate pe ESP8266 pana am dat de biblioteca DMDESP.
Dupa ce am constatat ca ceasurile RTC cu afisaj P10 sunt stabile si reglajul intensitatii merge corespunzator, am adaugat si un senzor DHT22 (AM2302).
Schema folosita de mine este cea prezentata mai jos, doar ca eu am folosit modulul numit DHT22 (care este, de fapt un senzor AM2302 si o rezistenta de 4k7 intre +5V si pinul de date). Daca aveam senzorul AM2302 il conectam ca in partea din stanga si necesita si rezistenta de 4k7.
Am modificat programul, devenit DMD2-P10-clock5.ino, care la minutele pare indica in ultimele 5 secunde din minut data, iar la minutele impare temperatura si umiditatea relativa a aerului, dupa cum se poate vedea in filmuletele:
Partea de ceas a ramas cu toate facilitatile din ceasurile anterioare:
- reglaj ceas si data (intrare in meniu cu butonul MENU si crestere sau scadere valori din cele 2 butoane, + respectiv minus)
- reglaj intensitate luminoasa in 17 trepte (5, 16, 32... 255 din 255) prin apasare a butonului -, apoi din cele 2 butoane + si -, pentru iesire se apasa butonul MENU
- schimbare intre cifre subtiri si groase prin apasarea repetata a butonului +
Un panou cu leduri verzi are urmatoarele consumuri (valorile pot avea variatii functie de numarul de cifre afisat in cazul orei sau numerele afisate, dar o idee ne putem face de cat de mult consuma):
- 1,871A (1871mA) pentru ceas,cu intensitate la maxim si cifre groase (care nu poate fi folosit in camera si citit de la distanta mica)
- 0,901A (901mA) pentru ceas,cu intensitate la maxim si cifre normale (care nu poate fi folosit in camera si citit de la distanta mica)
- 0,035A (35mA) ceas,cu intensitate la minim si cifre groase (pentru utilizare in casa)
- 0,016A (16mA) ceas,cu intensitate la minim si cifre groase (pentru utilizare in casa)
- 0,025A (25mA) pentru data, la intensitate minima
- 0,022A (22mA) pentru temperatura si umiditate relativa, la intensitate minima
Modeul de conectare pe breadboard si fire nu este foarte stabil, contactele pot fi imperfecte,etc, asa am desenat un cablaj (neoptimizat totusi) in care pot sa folosesc diversi senzori: AM2302 la care trebuie sa montez rezistenta de 4k7, senzori ca DHT22, fara rezistenta, senzor DS18B20 la care trebuie rezistenta, apoi reglaj cu cele 3 butoane fara retinere sau din encoder (inca nu am implementat toate aceste versiuni, dar pentru a fi disponibile pentru viitor). Am pus pe PCBWay la proiecte, articolul Adjusting RTC clock on P10 display astfel ca se pot comanda cablaje la ei sau la alti furnizori (prin descarcare fisiere Gerber).
Schema generala arata asa:
iar cablajul (virtual momentan)
Dupa ce voi primi cablajele, am sa postez niste poze.
Dupa ce am verificat ca ceasurile cu noua biblioteca DMD2 sunt stabile, am adaugat un al treilea buton pentru a putea avea un reglaj rapid si a nu intra in meniul de reglaj ceas si data.
Schema devine
Cele 3 butoane fac urmatoarele functii:
- daca se apasa butonul + se comuta modul de afisare intre font subtire si cel gros.
- daca se apasa butonul - se intra in modul de reglare intensitate luminoasa (brithness, semnalata prin aparitia unui punct pe primul rand de sus, in extrema stanga este minimul (PWM = 5) si in dreaptta (PWM = 255), cresterea intensitatii se face din butonul +, respectiv scaderea prin apasarea butonului -, iar iesirea si memorarea in EEPROM prin apasarea butonului MENU.
- daca se apasa butonul MENU se intra in modul de reglaj ceas si data, folosind butoane + si -, respectiv MENU/NEXT pentru trecerea la parametrul urmator, asemanator de modul cum s-a prezentat in articolul Ceas cu reglaj pe afisaj P10 de 32x16 leduri
a) ora
b) minutele
c) anul
d) luna
e) ziua
- la treapta minima 0 din 16 (PWM = 5 din 255), consum 0,02A, respectiv 0,05A
- la o treapta intermediara, 3 din 16 (PWM = 48 din 255), consum 0,20A, respectiv 0,44A
- la maxim, treapta 16 din 16 (PWM = 255 din 255), consum 1A, respectiv peste 2A