In articolul anterior am prezentat modul cum se poate masura si controla umiditatea din sol (pentru un ghiveci sau sau o zona mai mare), utilizand o metoda originala de reducere a efectului de electrocoroziune prin alimentarea pentru scurt timp a senzorilor si apoi pauza de repaus.. de data asta avem indicatii si cat timp a trecut de la ultima udate, folosind functia millis() care contorizeaza timpul in ms de cand e pornita placa Arduino, numarul returnat la apelarea acestei functii este pentru cca 50 zile, dupa care revine la zero, dupa cum se poate citi in materialul de la https://www.arduino.cc/en/Reference/Millis. Oricum eu am facut sa se afiseze maxim 999 ore si 59 minute care fac cam 42 de zile, arhisuficient pentru un ghiveci..
Schema de conectare este aceeasi:
Sketch-ul folosit este lcd1602_i2c_umditatesol_ver2.ino si avem aceleasi situatii, cand se masoara rar umiditatea cand ea este mai mare decat reglata:
iar cand umiditatea este scazuta si porneste pompa, masuratorile sunt mai dese:
Fata de articolul precedent, in care am folosit un senzor combinat de umiditate si temperatura, de tipul AM2302 (sau notat DHT22, cand se vinde ca modul cu o rezistenta de 4k7 intre pinul de date si plus), acum o sa folosesc, 2 senzori separati, unul pentru temperatura si unul pentru umidtate. In prima faza, am pentru umiditate tot un senzor AM2302, iar pentru temperatura un DS18B20, schema devenind:
se poate inlocui si senzorul de umiditate cu DHT11, schema devenind:
Urmatorul pas a fost acela in care am stocat datele folosite ca referinta (temperatura, interval de temperatura, umiditate, interval de umidtate, tip incalzire/racire, umidificator/dezumidificator) in memoria EEPROM a microcontrolerului de pe placa de dezvoltare Arduino.