Pentru a fi sigur ca totul este in regula, am incarcat programul de cautare periferice i2c (i2c_scanner) s am obtinut:
- 0x27 este adresa interfetei pentru afisajul LCD2004
- 0x68 este adresa RTC-ului (DS3231)
- 0x57 este adresa EEPROM-lui de pe modului RTC
- 0x44 este adresa senzorului SHT31 (AHT31)
Noul sketch-ul pentru termostatul cu senzor SHT31 este big_font_clock_thermometer_v6.ino si in afara de citirea diferita a noului senzor, am mai adaugat si umiditatea relativa, ca tot era disponibila.
La o apasare scurta a butonului de pe encoder se schimba afisarea cu caractere mari a orei sau a temperaturii
La apasarea lunga (mai mult de 3-4 secunde) se ajunge la modul de reglare a temperaturii dorite, a histerezisului, a datei si orei, dupa cum se va vedea in filmuleletele urmatoare:
Imediat dupa ce am modificat programul ceasului cu caractere mari pentru Gabi Loreti (unde am folosoit un senzor DHT22 si un modul cu AHT20 si BMP280), am intrat in posesia unor senzori SHT31 (AHT31), care au interfata i2c. Am studiat un pic documentatia de pe internet, am schimbat adresa unuia sa ii pot folosi pe amandoi, ca si la ceasul RTC cu caractere mari si date meteo pe afisaj LCD2004 in locul celor 2 senzori DHT22 (AM2302)
si am incarcat programul i2c_scanner pentru a identifica perifericele de pe i2c
obtinand
Stiu ca afisajul are adresa 0x27 (mai poate fi 0x3F), modulul de ceas RTC are 0x68 (DS3231), asa ca cei 2 senzori SHT31 (AHT31) au 0x44 si 0x45, cum ma asteptam.
Materialele care merita studiate, macar, pentru a va face o idee despre acest senzor SHT31 sunt
La rugamintea lui Gabi Loreti am inlocuit unul din senzorii DHT22 (AM2302) din proiectul anterior cu un senzor combinat AHT20 cu BMP280.
El e pasionat, in general, doar de afisaje VFD sau OLED, dar i-a placut modul cum arata informatiile pe un afisaj alfanumeric LCD2004, asa ca am modificat programul proiectului anterior si acum acesta este big_font_weather_clock_v2a.ino.
Gabi a facut mai multe poze pentru a face un articol, avand in vedere ca poate fi interesant si pentru altii:
Noul mdulul contine 2 senzori ce sunt conectati pe i2c, iar la cautarea cu programul (care ar trebui sa fie arhicunoscut) i2c_scanner obtinem
si daca mai cautam pe internet gasim ca senzorul AHT20 este conectat la adresa 0x38, iar senzorul BMP280 la 0x77 (dar poate fi si 0x76).
Schema de conectare este simpla
Deoarece acest modul ce contine acesti senzori mi s-a parut interesant, am comandat si eu cativa, si am facut si eu teste:
Dupa ce am testat cu succes ceasul RTC (dual) pe afisaj VFD CD7220 am considerat ca merita adaugate niste informatii despre temperatura si umiditate relativa, care pot fi citite cu senzorul DHT22 (AM2302).
Schema modificata este
Alimentarea a fost facuta, ca si la tetele ceasului dual, cu 24V din sursa externa, iar placa Arduino, modulul RTC si senzorul DHT22 (AM2302) din sursa de 5V de pe placa (provizoriu, pentru teste)
Am facut mai multe filmulete in care am folosit pogramul VFD_clock2.ino
Am intrat in posesia unui modul cu afisaj CD7220 care mi-a dat un pic de bataie de cap, in primul rand este o eticheta cu 24V, asa ca am inceput sa "sap" pe internet si cel mai bun articol, numit Shack dual time Clock with POS VFD, care este al unui conational (indicativ radioamator YO3HJV)
Schema de testare este una simpla:
si pentru alimentarea modulului, am folosit o sursa de 24V (intial alimentarea conectata la firele de pe cablul cu mufa de retea (portocaliu la masa si negru la +24V, ulterior cu fire separate: negru la masa si rosu pla plus), iar pentru a alimenta placa Arduino si modulul RTC (cu DS3231) sursa interna de pe modul ce livreaza 5V.
PS: M-am gandit sa fac o varianta de sine statatoare, optim este cu alimentare la tensiune mare si alimentarea cu reducator de tensiune exterior la 5V a placii Arduino si a modului RTC, eventual a unui senzor sau a unei placi Wemos D! (ceas NTP) , dupa cum voi pezenta in articolele urmatoare.
Am testat si alimentarea cu 19V deoarece se gasesc prin targuri sau pe site-ri de vanzari alimentatoare de laptopuri, si rezultatul este incurajator deoarece si consumul scade
Dupa ce am fost multumit de modul de afisare, reglare si stabilitate la proietul anterior, de Ceas RTC cu caractere mari si termometru pe afisaj LCD2004 am trecut s la partea de proiect mult mai util, un termostat reglabil cu ceas RTC.
Schema deriva din cea a ceasului, doar ca am pus 3 leduri, unul rosu pentru temperatura scazuta (sub pragul de temperatura), unul verde pentru temperatura normala (valoare peste pragul de temperatura) si unul galben pentru a simula comanda la centrala / calorifer electric. etc (care se aprinde cand temperatura este sub pragul de temperatura si se stinge la depasirea pragului de temperatura plus valoarea histerezisului)
La o apasare scurta se comuta afisarea cu caractere mari a orei cu cea a temperaturii, apoi iar ora, etc.
Cateva exemple:
- temperatura mai mica decat pragul reglat (led rosu aprins, led galben aprins, adica incalzitor pornit, pe afisaj apare si o steluta indicand pornirea sistemului de incalzire)
- temperaura peste pragul reglat, dar mai mica decat pragul de oprire (led verde pornit indicand faptul ca temperatura e mai mare decat valoarea reglata, led galben aprins insemnand ca sistemul de incalzire e pornit, iar pe afisaj este si steluta)
- temperatura este peste pragul de decuplare (led verde aprins, led galben stins indicand oprirea sistemului de incalzire, iar pe ecran nu mai apare steluta)
Daca apasam lung pe buton (mai mult de 3-4 secunde), se intra in meniul de reglaj, de data asta avem: