luni, 25 noiembrie 2019

Termostat MQTT cu ESP8266 (2)

    Acum un an si ceva, am publicat articolul Termostat MQTT cu ESP8266 pe care l-am testat in gol cca 3-4 luni. El nu a controlat o centrala termica sau un sistem de aer conditionat, ci doar a aprins un led rosu cand ar fi trebuit sa actioneze in gol.
   Zilele trecute am reluat testele, pornind o placa Raspberry Pi Zero W cu cardul SD de la o alta placa, ce avea instalat serverul broker Mosquitto dupa cum am prezentat in articolul Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitto (2)
    Am adaptat ultimul sketch prezentat in primul articol (MQTT_ESP8266_termostat_base.ino) sa aprinda afisajul doar cand apas butonul sau daca dau comenzi de pe telefon. La sketck-ul din link, afisajul OLED sta aprins mereu, dar nu se recomanda, deoarece textele raman imprimate... asa ca incarcati versiunea MQTT_ESP8266_termostat_ok.ino dupa ce finalizati testele.
   Deci, in mod normal, afisajul este stins, dar functioneaza termostatul:
- temperatura ambianta mai mare decat temperatura dorita
- temperatura ambianta mai scazuta decat temperatura dorita
   Daca se apasa butonul de pe cablaj sau se dau comenzi de pe telefon:
- temperatura ambianta mai mare decat temperatura dorita
- temperatura ambianta mai scazuta decat temperatura dorita
    Schema de conectare este eceeasi, bineinteles:
   Aplicatia folosita este aceeasi, IoT MQTT Panel.
unde am creat un un canal numit termostat
care e configurat astfel:
eu am completat doar numele, adresa IP a serverului (gasite de aplicatia Advanced IP scanner) si portul 1883 si conexiune TCP (ID-ul canalului este geberat automat de aplicatie).
   Dupa ce am creat butoane, indicatoarele si graficul, pe telefon apare asa:
   Pentru a creea un buton, grafic sau indicator, se apasa butonul + din partea de jos a ecranului

si se alege ce sa creez.

   Pentru cele 3 butoane, configuratiile sunt in stanga, iar in dreapta corespondenta din program (sketch):
- crestere temepratura

- scadere temperatura

- aprindere afisaj
unde "topic" este cel din linia 137

   Pentru cele indicatoare, configurarile sunt:
- temperatura reala
- umiditatea relativa a aerului
- temperatura dorita
- stare releu / led
unde in program, comenzile sunt:
   Pentru grafic, vom avea configurarile in aplicatie;
   De data aceasta nu am mai facut filmulete, dar pun 2 din ele, realizate anul trecut:


   Cred ca datele prezentate sunt suficiente sa realizati si voi un termostat de genul asta.
Eu mai am de implementat partea de conectare cu parola, dar nu am timp momentan de teste.





duminică, 10 noiembrie 2019

Ceas cu termometru pentru 7 zone si sistem pornire AC

   Bogdan Argatu a realizat inca un proiect interesant, de data asta supravegheaza 7 temperaturi si comanda un sistem de aer conditionat sa porneasca cand temperatura este prea scazuta, intr-o anumita zona, trimitandu-i acestuia un set de comenzi de genul: Pornire, incalzire, 24°, treapta 3 ventilatie, etc.
   In trecut am publicat articolele:
Scari luminate inteligent
Ceas RTC cu reglaj si termometru in 2 zone
Ceas RTC cu reglaj si termometru in 3 zone
Ceas matriceal animat cu ESP8266 si RTC (DS3231)
ce au acelasi autor, pe Bogdan.
   Revenind la proiect, schema de conectare este urmatoarea:
si dupa cum se observa, are 2 placi Arduino, una principala, cea cu ceasul, cu masurarea celor 7 temperaturi, prezentarea datelor pe 2 afisaje 20x4 conectate prin protocol i2c si comanda catre a doua placa, un Arduino ProMini.
   Deci, placa Arduino Nano doar monitorizeaza temperaturile si are rol de comanda pentru AC cand scade temp sub o valoare setata.
   Bogdan are centrala pe carbuni si in felul asta, cand scade prea mult in camera, porneste aerul conditionat pe cald utilizand placa ProMini pe post de emitator IR in fata la AC, astfel ca pana face focul, este cald deja.
   Montajul principal, in diferite etape de constructie:
   Pe ecrane apare informatia de genul acesta:
doar ca pe primul rand, dupa minute, apare "_ _ _". Acolo, cand scade sub temperatura setata apare scris " AC" indicand faptul ca a fost data comanda de pornire si sta asa pana revine temperatura setata.
   Trebuie incarcat sketch-ul clock_2lcd_7DS18B20_AC.ino in placa Arduino Nano, respectiv sketch-ul ir_AC_slave.ino in placa Arduino ProMini.
   Daca aveti intrebari despre proiect, trimiteti email lui Bogdan pe adresa de gmail: abogdan1978.
   Reglajul datei si orei se face cum s-a prezentat in articolul Ceas RTC cu reglaj si termometru in 2 zone.





joi, 7 noiembrie 2019

Cablaj universal pentru ceasuri cu ESP8266 si afisaje matriceale led cu MAX7219

   In ultima perioada, am tot testat si realizat ceasuri ce se folosesc placide dezvoltare de cu ESP8266 programate cu limbaj Arduino.
   Unele sunt simple, ce au doar placa de dezvoltare cu ESP8266 (NedeMCU, WeMos, etc) si 4-6 afisaje matriceale de 8x8 leduri (cu 4-6 driver-e MAX7219),
schema de test fiind
   Ceasul, data si datele meteo sunt preluate de pe internet prin conectarea la reteaua locala wi-fi.
   Am pus pe blog urmatoarele articole, cu aceasta schema:
   Varianta a doua, cea complexa, are o placa cu ESP8266, un modul de ceas RTC (cu DS1307 sau DS3231), senzor DGT22 (AM2302) pentru umiditate si temperatura + o fotorezistenta pentru reglajul automat al intensitatii luminoase.
schema fiind
   Articole cu aceasta schema:
   Deoarece am folosit diverse librarii, dintre care una nu foarte flexibila, am lasat conectarea pinilor ca la schema complexa, adaptand-o si pe cea simpla. Ca un rezumat, pentru o placa de dezvoltare Wemo D1 Mini, 
am urmatoarea configurare generala:
   Am testat pentru ceasul cu schema simpla si a functionat normal, asa ca am desenat o schema cu ajutorul programului Autodesk Eagle pentru care am un articol gen tutorial (vedeti articolul Cum facem un cablaj).
    Pentru varianta simpla voi pune doar o placa WeMos D1 Mini si voi conecta afisajul cu 4 sau 6 module, iar pentru varianta complexa voi pune placa WeMos D1 Mini, voi pune un modul RTC cu DS3231 (pentru el a fost desenata schema), un senzor AM2302 sau un modul cu senzor de tip DHT22 (sau DHT11, dar precizia e foarte scazuta) si o fotorezistenta, apoi voi conecta si afisajul cu 4 sau 6 module. 
   E posibil sa modific si programele sa am la versiunea minimala si partea de reglaj automat al intensitatii sau sa am si informatii din camera pentru temperatura si umiditate, poate vois schimba senzorul cu un DS18B20, doar pentru temperatura, etc.
   Dupa schema, am desenat un cablaj dublu strat, dearece vreau sa-l fac la cei de la PCBWay deoarece am un cupon si costurile sunt mai reduse, oricum pretul este foarte bun, fiind 3,90$ pentru 10 placute la care se adauga transportul in valoare de 8$ deoarece am ales posta normala, nu curier rapid, ca data trecuta. Puteti vedea ce am mai comandat la firma aceasta in articolul Cablaje realizate la PCBWay 
   Cablajul rezultat arata asa:
   Deoarece trebuie trimise fisiere Gerber, am urmat pasii prezentati in articolul Prepare Eagle PCB project to generate Gerber files and than to order custom board
   Fisierele le puteti descarca de pe site-ul PCBway fiind clock.zip, o previzualizare foarte aproape de adevar apare daca se foloseste site-ul www.gerber-viewer.com:
   De asemenea, fisierele pot fi descarcate si din galeria Universal PCB for LEDmatrixClock
    Am lansat comanda si cand vor sosi placutele, voi posta poze cu ele, apoi cu montajele, in cele 2 variante.

03.12.2019
   Au sosit cablajele, dupa cca 3-4 saptamani:
04.12.2019
   Nu am avut rabdare si am pus conectori mama pentru placa Wemos D1 Mini si pentru afisaj, dar am constatat ca mufa de la afisaj e in oglinda;
si ar fi ocupat spatiu mult intr-o carcasa si fiindu-mi mila de cablaj, am schimbat mufa mama cu una tata cu 5 pini si am pus cabluri-plate cu conectori mama-mama
    Am mai montat conectori mama si tata pentru afisaj pe o alta placa, dar am realizat ca nu pot muta proiectul cu ceasul cu modul RTC si senzor DHT ca nu mai am placa Wemos D1 Mini, asa ca am oprit lucrarile 😇.

19.12.2019
    Mi-au sosit niste placi Wemos D1 Mini, asa ca am "mutat" si ceasul cu modul de ceas RTC si senzot DHT22:
ramanand pe breadboard
31.12.2019
   Am realizat 2 filmulete pentru a fi mai usor de vazut cum este utilizat cablajul universal, unul echipat minimal (doar placa Wemos D1 mini) si cealalta maximal (placa Wemos D1 mini, modul de ceas RTC cu DS3231, fotorezistenta si senzor DHT22):