Termostatul foloseste acelasi senzor AM2302 (DHT22) pentru temperatura si umiditatea relativa a aerului din incinta, comanda se face de pe o iesire digitala a placi NodeMCU (aceeasi ca si in proiectul anterior), dar reglajul se face de pe 2 butoane virtuale.
Eu ma folosit pentru teste si ledurile de pe placa NodeMCU, ca si in proiectul anterior: ledul rosu de la GPIO16 (D0), ledul albastru de la GPIO2 (D4), senzorul este tot la GPIO5 (D1), iar ledul exterior inseriat cu o rezistenta de 100 ohmi la GPIO0 (D3).
Sketch-ul folosit este Cayenne_thermostat_ESP8266.ino si avem indicatie de led rosu daca temperatura este mai mare decat cea setata cu +0,25 grade, iar ledul albastru se aprinde cand temperatura este mai mica cu 0,25 grade Celsius.
Eu am folosit aceasi placa si acelasi canal, cu cele 3 date de identificare unice
Am adaugat noi butoane si indicatii (Add New -> Device/Widget), se selecteaza placa (denumita de mine NodeMCU v0.9) si se completeaza campurile.
Butoanele si indicatiile mele sunt configurate astfel:
- temperatura de la senzor este receptionata pe canalul 1
- umiditatea relativa de la senzor este receptionata pe canalul 0
- starea de functionare a sistemului de incalzire (centralei) este receptionata pe canalul 2
- butonul de crestere a temperaturii dorite este pe canalul 3
- butonul de scadere a temperaturii dorite este pe canalul 4
- temperatura dorita este afisajata e canalul 5
Temperatura setata este memorata in EEPROM-ul ESP-ului de pe placa NiodeMCU si afisata pe canalul 6.
Tenmoeratura este reglata cu un histerezist total de 0,5 grade, de data asta centrala se opreste la +0,25 grade peste pragul reglat, respectiv reporneste cand tempratura este cu 0,25 grade mai putin de pragul reglat.
Prezint 2 filmulete, in care descriu modul de functionare si reglare:
- Termostat cu NodeMCU pe server Cayenne
Din aplicatia Android, ca si de pe cea iPhone, se pot modifica modurile de prezentare al butoanelor sau indicatiilor.
Dupa intrarea pe canalul termostatului:
poate apare starea de centrala oprita
sau pornita
Configuratia se poate vedea si modiifca si de pe telefon:
- umiditatea relativa a aerului, de pe canalul 0
- temperatura aerului, de pe canalul 1
- starea centralei, de pe canalul 2
- butonul de crestere a temepraturii dorite, de pe canalul 3
- butonul de scadere a temperaturii dorite, de pe canalul 4
- temperatura dorita, de pe canalul 5
Am modificat indicarea umidtatii relative ca un "ceas" (gauge):si pot vedea urmatorile stari:
Am modificat simbolurile pentru butoanele de crestere si scadere a temperaturii dorite:
obtinand
Am schimbat si la centrala
obtinand
Am schimbat iar la partea de indicare stare centrala
obtinand
Pe pot vedea istorice ale parametriilor afisati, care se si pot descarca... deci e un termostat numai bun... se pot trimite si emailul la anumite valori ale temperaturilor, prin activare "trigger"-e.
- neactivate
- activare pentru trimitere email daca temperatura este peste 30 grade Celsius
- activare pentru trimitere email daca umiditatea este mai mare de 90%
- activare trimitere mesaje
Ca idee, se pot primi SMS-uri, dar se trimit din SUA si nu stiu ce costuri sunt pentru mine sau cei ce au serverul, asa ca nu am abuzat de aceasta "facilitate".
Ca idee, pe un IPhone prezentarea este cu o zecimala, pe cand la Android era cu 2 zecimale.
Multumim pentru toate aceste informatii, pe care le impartasiti cu o reala pasiune.
RăspundețiȘtergereAs vrea sa comand un led/releu prin webserver si nu am reusit.
Daca puteti sa ma ajutati cu un sfat(sunt incepator), care ar fi cea mai simpla metoda prin platforma arduino, conectare wireless?
Am incercat cu un modul Nodemcu cu ESP8266MOD si CP2102 dar am control doar din zona retelei locale. Pot controla un led on/off prin wifi de pe un telefon sau laptop dar cum spuneam mai sus, doar din reteua locala, prin conectarea la router a dispozitivelor.
Am inteles ca e posibil controlul cu acest modul si printr-un webserver, folosind google docs dar nu am reusit. Modulul nodemcu folosit este cel de aici :
https://www.amazon.com/HiLetgo-Internet-Development-Wireless-Micropython/dp/B010O1G1ES
As incerca si cu alt modul, conectare wifi-fara cablu de retea(prin router)daca imi puteti recomanda.
Posibil sa aveti deja un topic si eu l-am omis.
Multumesc!
uitati-va pe articolul anterior: http://nicuflorica.blogspot.ro/2017/11/prezentare-stocare-date-si-executare.html
ȘtergereMultumesc!
ȘtergereSalut in primul rind mentionez ca folosesc arduino nano .am cumparat display 7 segmente kw4-563asa pt proiectul acesta cu temperaturi poz si negative cu lm 35 si diode . LM35_termostat_eeprom_ver4m3.ino. afiseaza temperatura dar in loc de 25.6 imi arata 2.56 daca deschid portul serial e ok chiar functioneaza f .bine se stinge ledul la temp setata .montajul meu nu are erori de hardware am verificat.punctul nu stiu cum sa l mut la al doilea digit.e legat ca in chema la d13.imi poti da osugestie ?multumesc anticipat !
RăspundețiȘtergeream pornit pc si am dat cautare pe google e vorba de articolul de la http://nicuflorica.blogspot.com/2015/09/termostat-cu-afisaj-led-2.html ... curiors ca mie imi arata bine in pozele alea si nu vad in sketck-ul de la https://github.com/tehniq3/4digit_7segmentled_termostat/blob/master/4digit_7segmentled_termostat_eeprom_ver4m3.ino de ce ar fi virgula mutata.. oricum e in subrutina void te(int toDisplay) de la linia 577, incercati sa schimbati lin linia 589 LOW cu HUGH si in linia 597 pe HIGH cu LOW
Ștergere*HUGH e HIGH
Ștergere