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:

16 comentarii:

  1. Bună Nicu,

    vă mulțumesc pentru împărtășirea dvs. uriașă, sunteți un drăguț. Voi realiza acest mare proiect și împărtășesc fotografiile,
    vă mulțumesc foarte mult, Vă mulțumesc cu toată inima mea Nicu,

    Trăiască România Trăiască Nicu.

    RăspundețiȘtergere
    Răspunsuri
    1. :) ok ok :) I waitting the photo

      Ștergere
    2. Hello dear Nicu, as promised here are the pictures of the final assembly.

      [URL = https: //www.hostingpics.net/viewer.php id = 70241920171117100803.jpg] [IMG] https://img4.hostingpics.net/thumbs/mini_70241920171117100803.jpg [/ IMG] [/ URL]

      I use wires.


      [URL=https://www.hostingpics.net/viewer.php?id=94961120171117100914.jpg][IMG]https://img4.hostingpics.net/thumbs/mini_94961120171117100914.jpg[/IMG][/URL]

      And the final editing, thanks to you Nicu, you are a genie, you are too strong, thank you really for your great help.
      Everything works very well, just download your beautiful sketch or code and it compiles the first time.

      [URL=https://www.hostingpics.net/viewer.php?id=84528820171117102216.jpg][IMG]https://img4.hostingpics.net/thumbs/mini_84528820171117102216.jpg[/IMG][/URL]

      I just notice that relay IN1 remains on but I will change with 2 small relay module instead of 1 relay module 2 channels to see the difference.

      [URL=https://www.hostingpics.net/viewer.php?id=88848620171117102216.jpg][IMG]https://img4.hostingpics.net/thumbs/mini_88848620171117102216.jpg[/IMG][/URL]

      GREAT RESPECT A ☆☆☆☆☆ NICU ☆☆☆☆☆

      I will not forget, I wish you all the happiness, the good mood, the good santer and very good continuation. I am a subscriber at Nicu :)
      Thank you for your website, blog which is a gold mine, cordially.

      Ștergere
    3. I see the photo. Congratulations for your work...

      Ștergere
    4. I apologize for the non-visual photos, I wanted to send small images to facilitate the view as I did in Arduino.cc but that did not work well I'm sorry Nicu.

      I just redo a test following your instructions everything works very well, the 2 relays turn on and work as in the tutorial, when it is above the values ​​wish the relays are off, when it is below the values ​​or relays are activated and everything works flawlessly.

      This is my first real project that works thanks to you Nicu,
      I will share the experience in my Arduino.cc page for everyone to enjoy.

      Thanks again Nicu.

      Ștergere
    5. this translator is kidding sometimes, I meant, sorry for the wrong pictures send :)

      Ștergere
    6. write in your language, I will use translator or I will read directtly ;)

      Ștergere
    7. Merci pour votre compréhension chèr Nicu,
      Je suis très satisfait du résultat final, il manque juste l'horloge mais pas de place sur l'ecran et on peut faire sans.

      j'avais un projet similaire en utilisant un module I2C pour l'ecran afin d'économiser des broches sur la uno pour peut être ajouté la wifi ou bluetooth, horloge etc...

      Alors j'ai fait des recherches et avec de l'aide j'ai réussi à trouvé la possibilité d'utilisé le keypad avec module i2c + dht22 + relais 2 canaux avec uno. avec petit menu.

      Voici le lien de mon post sur Arduino.cc (Français). La dernière page parle de vous et je partage des photos pour faire profité la communauté Arduino.

      https://forum.arduino.cc/index.php?topic=509552.0

      Merci pour tout Nicu, vous m'avez vraiment aider il y à de si beaux tutoriels que je suis abonné à votre savoir faire, très bon week-end Nicu, Respect à vous.

      Ștergere
  2. Îmi cer scuze pentru erorile de traducere pe care le folosesc un traducător din franceză în română, îmi cer scuze dacă am făcut greșeli

    RăspundețiȘtergere
    Răspunsuri
    1. You can write in english, I can understand french texts :))))

      Ștergere
  3. sorry.. You can write in french 😀

    RăspundețiȘtergere
  4. Buna seara. Ma confrunt si eu cu urmatoarea problema:
    am incarcat programul realizat de dumneavoastra si a rulat cu succes, insa eu am nevoie de o mica modificare care nu mi-a reusit . Imi doresc sa pot realiza si racirea unei incaperi ( am incercat sa introduc o noua variabila in program, sa declar un nou pin pentru releu care sa imi permita pornirea unui compresor de frigider) . Instalatia mea contine un compresor de frigider si un vaporizator pentru racire + alte componente ( vaporizatorul este prevazut si cu o rezistenta de degivrare - care o sa realizeze functia de incalzire conform programului scris de catre dumneavoastra ) . Intrebarea mea este, ce trebuie sa adaug mai exact in program? am incercat destule modificari si in final ,imi afiseaza noile date introduse dar nu se vad bine pe display si nu pot sa modific din butoane temperatura dorita. ( asta doar in cazul modificarilor facute de mine, pentru racire, celelalte functii din program incalzire si umidificare se vad si pot sa le reglez cum doresc ) . Multumesc .

    RăspundețiȘtergere
    Răspunsuri
    1. salut incearca sa cumperi releu de 5v pt arduio el nu e doar simpl are optocuplor sa .componente .Are un jumper pe placa releului si doar muti jumperul nu modifici schema .poate merge asa .pui si histerzis de un grad c a sa nu deteriorezi motorul. frigiderul lucreaza intre 1 si 9 grade

      Ștergere
    2. nu inteleg ce vrei sa modifici... mai explicit, te rog

      Ștergere
    3. vrei sa comanzi 2 chestii separate? independente?

      Ștergere