Se afișează postările cu eticheta higrostat. Afișați toate postările
Se afișează postările cu eticheta higrostat. Afișați toate postările

joi, 16 noiembrie 2017

Termostat cu control umiditate (higrostat) - partea a 3-a

   Deoarece am intrat in posesia unui shield de afisaj LCD1602 cu butoane (taste) si am primit o solicitare pentru a transfera un proiect de termostat cu contorl de umiditate pe acesta, am considerat ca e un proiect interesant de creat.
   In prima faza am studiat modul de conectare a pinilor la afisaj si conectarea butoanelor la intrarea digitala (functie de butonul care se apasa, exista pe intrare analoica A0 o tensiune diferita).
    Pinii liberi sunt prezentati in imaginea de mai jos:
   Pe partea de jos exista grupul de alimentare, cel din dreapta, iar in stanga intrarile analogice A1..A5, din care se pot folosi A4 si A5 pentru comunicatia i2c (pentru a folosi un modul de ceas RTC cu DS1307 sau DS3231). In partea de sus, in stanga sunt pinii digitali nefolosti:
   Schema shiledului folosit de mine este 
  Partea de configurare a afisajului este 
tinand cont ca si pinul D10 este folosit pentru controlul luminii de fundal.
    Partea de butoane se poate configura asa:

    Puteti citi mai multe pe net, eu recomanda urmatoarele materiale:
https://www.dfrobot.com/wiki/index.php/Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)
http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
https://tutorial.cytron.io/2011/08/12/project-1-%E2%80%9Chello-world%E2%80%9D-on-lcd/
http://www.lucadentella.it/2013/02/12/lcd-keypad-shield/
http://domoticx.com/arduino-shield-lcd1602-display-met-keypad/
   Revenind la chestii practice, am facut 2 filmulete, in care am folosit sketch-ul LCD1602shield_test2.ino:
test afisaj 1602 cu shield
test with LC1602 shield
   Dupa ce m-am familiarizat cu aceasta placa (shield), am modificat programul termostatului cu controlul umiditatii, care a fost prezentat in articolele:
Termostat cu control umiditate (higrostat)
Termostat cu control umiditate (higrostat) - partea a 2-a
   Sketch-ul LCD1602shield_thermostat_humidity_ver1s0.ino e derivat din cel din primul articol (fara memorare date in EEPROM) si are modificari la partea de depistare a apasarii butoanelor (care sunt intr-un divizor rezistiv pe o intrare analogica, nu butoane la care se citesc starile digitale apasat/neapasat) si sunt modificari la partea de conectare a senzorului la intrarea D13, iar iesirea pentru comanda a rezistentei de incalzire (centralei) este la D11, iar sistemul de comanda a umiditatii este la D12.
   Am facut 2 filmulete in care prezeint functionarea acestui termostat, fiind similara cu a celor dinainte:
alt termostat cu control umiditate folosind Arduino
other thermostat with humidity control using Arduino
   Pe ecran apar, pe randul de sus, temperatura si umiditatea relativa a aerului, iar pe randul de jos, in dreptul fiecarui parametru, daca este sub valoarea dorita (BELLOW), peste (OVER) sau in domeniul dorit (OK).
   Pe ecran pot apare urmatoarele stari:
- temperatura reala sub pragul dorit si umiditatea peste pragul dorit (led rosu aprins pentru a comanda o rezistenta sau centrala, iar led galben aprins pentru a se deschida o fereastra sau comanda un ventilator pentru eliminare umiditate)
 
- temperatura mai mare decat cea dorita si umiditate mai mare decat cea dorita (led rosu stins pentru a fi depuplata rezistenta sau centrala, iar led galben aprins pentru ca sa se inchida o fereastra sau fi oprit un ventilator pentru eliminare umiditate)
- temperatura reala sub pragul dorit si umiditatea peste pragul dorit (led rosu aprins pentru a comanda o rezistenta sau centrala, iar led galben aprins pentru ca sa se inchida o fereastra sau fi oprit un ventilator pentru eliminare umiditate)
   Pentru reglaje sunt folosite doar 3 butoane: SELECT, UP, DOWN (selectie, crestere si descrestere valoare). Daca se apasa butonul SELECT se intra in meniul de reglare temperatura
din UP sau DOWN se creste sau scade valoarea
se apasa iar butonul SELECT pentru a trece la reglajul histerezisului de temperatura
   Daca se paasara iar butonul SELECT se trce la reglarea pragului de umiditate
si la o noua apasare aa cestui buton SELECT se trece la reglarea histerezisdului de umiditate
  O noua apasare a butonului SELECT va duce la intrare ain modul de termostat.
  Pentru a intelege reglarea temperaturii si histerezisului, vedeti desenul care a fost prezentat in primul articol:
   Temperatura dorita (temperature set) este pragul al acare rezistenta de incalzire este oprita, iar la scadearea temperaturii sub temperatura dorita minus histerezis, rezistenta de incalzire este reconectata.

PS: in curand voi modifica sketch-ul pentru memorare valorii in EEPROM este LCD1602shield_thermostat_humidity_ver2s0.ino !!!

   Pentru o prezentare deosebita, am folosit informatiile din articolul Iluminat de fundal progresiv pentru afisaje, astfel ca programul a devenit LCD1602shield_thermostat_humidity_ver3s0.ino.
   Am facut 2 filmulete cu aceasta ultima versiune>
alt termostat cu control umiditate folosind Arduino (2)
other thermostat with humidity control using Arduino (2)
   Deoarece se poate intra din greseala in meniul de reglaj prin apasarea butonului SELECT si se doreste revenirea rapida, se poate apasa butonul LEFT <-. Pentru intrarea in meniul de reglaj se poate folsosi si tasta RIGHT -> in loc de SELECT pentru a trece la reglajulaltui parametru.
   Toate acestea daca se incarca programul LCD1602shield_thermostat_humidity_ver3s1.ino.
   In filmuletele de mai jos se poate vedea noua facilitate:

luni, 31 august 2015

Termostat cu control umiditate (higrostat) - partea a 2-a

   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:
iar sketch-ul folosit este LCD1602_DHT22_18B20_thermostat_humidity_control_ver1m3a.ino.
   Fara modificari majore in sketch:
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.
   Pentru varianta cu DS18B20 si DHT22 (AM2302) se foloseste sketch-ul LCD1602_DHT22_18B20_thermostat_humidity_control_ver1m4.ino, iar pentru cu DS18B20 si DHT11 sketch-ul LCD1602_DHT11_18B20_thermostat_humidity_control_ver1m4.ino.
   In filmuletul termostat cu control umiditate folosind Arduino (6) se prezinta modul de functionare cu DHT22 (AM2302) si DS18B20:
iar in cel numit termostat cu control umiditate folosind Arduino (7) se foloseste un DHT11 si DS18B20:



vineri, 28 august 2015

Termostat cu control umiditate (higrostat)

   La solicitarea lui Mircea Craciun, am realizat un termostat, care mai are posibilitatea de a controla si umiditatea dintr-o incinta (higrostat).
   Senzorul pentru umiditate si temperatura este unul dedicat, AM2302 (cunoscut si ca DHT22 cand e montat pe un cablaj si are o rezistenta de 4k7 intre +5V si pinul de date).
   Precizia acestui senzor este destul de buna, la temperatura de +0,5 grade Celsius in domensiul de -40..+80 grade Celsius si pentru umidtatea relativa +2%RH in domensiul de 0..100%. 
   Schema de conectare este:
   Dupa cum se observa, am reprezentat cele doua variante de senzor, montandu-se doar una din ele..
   Am pus 2 led-uri pentru a avea o incatie, dar daca se inlocuiesc cu relee, ele pot comanda o centrala si un servomotor (sau electrovana) de eliminare umiditate, dupa cum sunt date comenzile din sketch-ul LCD1602_thermostat_humidity_ver1m0.ino.
   Din celel 3 butoane fara retinere se regleaza temperatura dorita, intervalul acceptat de scadere a temperaturii odata depasite (histerezis), umiditatea si intervalul acceptat de scadere al umiditatii odata depasite.
- reglaj temperatura:
 
- reglaj interval acceptat de scadere a temperaturii odata depasita (histerezis)
 
- reglaj umiditate:
 
reglaj interval acceptat de scadere a umiditatii odata depasite (histerezis)
 
   In graficul de mai jos se cele 3 cazuri: temperatura scazuta (BELOW), temperatura optima (OK) si temperatura prea mare (OVER):
  In timpul functionarii,pot fi mai multe stari (am simulat cateva):
- temperatura si umiditate in parametrii doriti (optim):
 
- temperatura scazuta si umiditate mai mica decat pragul admis:
- temperatura in parametrii, umiditate mai mica decat pragul admis (bun):
- temperatura in parametrii, umiditate prea mare:
- temperatura scazuta si umiditate prea mare:
- temperatura prea mare, umiditate crescuta:
 
   Am facut si 2 filmulete, care prezinta mai bine modul de reglaj al parametrilor:

27.05.2018
   Pentru a fi un adevarat termostat, am pus si parte de memorare date in EEPROM, sketck-ul fiind acum LCD1602_DHT22_thermostat_humidity_control_ver1m4x.ino