De data asta, aplicatia este una practica, aceea de a prezenta pe ecranul telefonului (sau calculatorului) temperaturile din mai multe zone, mai precis 6, masurate cu senzori DS18B20 (conectati in paralel), apoi temperatura si umiditatea relativa, masurate cu un senzor DHT22 (AM2302) si, in plus, se pot comanda 4 consumatori prin intermediul unor relee. Toate acestea au fost realizate de amicul meu Dan pentru a avea o sera supravegheata si comandata de la distanta.
Ca placa de dezvoltare folosesc una WeMos D1 ca are un microcontroler ESP8266 si are forma unui Arduino Uno
de aceea, Dan a folosit o placa tip shield cu 4 relee (Relay Shield v3.0), care are pinii de comanda D4, D5, D6 si D7, care corespund placii WeMos D1 la GPIO4, GPIO14, GPIO12 si GPIO13.
ce are schema
si aranjamentul componentelor si conexiunilor
Senzorul DHT22 (AM2302) este conectat la D9 ce corespunde la GPIO2, iar senzorii DS18B20 la pinul D3 ce corespunde la GPIO5.
Nota: sunt schimbari in protocolul de transmitere (acum serverulul Cayenne foloseste MQTT) asa ca vedeti si noul articol !
In articolul anterior, am folosit o placa NodeMCU, prin conectare Wi-Fi la retea, acum o sa folosesc o placa Arduino Uno conectata la reteaua locala prin shield W5100.
Pentru asta trebuie sa ma conectez de pe calculator la pagina Cayenne, cu user si parola.
Aleg o noua placa de dezvoltare Uno cu placa de retea clasica (Ethernet W5100):
Daca apas pe butonul SKETCH mi se deschide o fereastra cu datele necesare de incarcat in Arduino pentru a comunic ape canalul nou creat.
Copiez textul in programul Arduino IDE
incarc programul 0.inosi urmaresc pe ecranul de monitorizare seriala daca e totul in regula
Pentru a identifica usor canalul, deoarece sunt si unele inactive, ii schimb numele, in ce am de gand sa fac:
si voi vedea deja canalul cu numele schimbat
Deoarece nu-s foarte familiarizat cu acest site, am facut cum mi s-a parut mie ca e ok, alegand o cale mai lunga, dar care stiu c afunctioneaza.
Aleg sa fac o feastra de indicare (WIDGET) si cum nu am gasit pentru senzorul DHT22 (AM2302), am ales unul senzor general, dupa care o sa modific parametrii sa fie in regula.
si apas ADD SENSOR, aparand pe canal o zona de indicare
care are urmatorii parametrii acum
Dupa ce mi-am dat seama ca nu e la fel cu ce prezentasem in articolul anterior la placa NodeMCU, am adaugat un senzor inclus de server, pentru a vedea cum se pun informatii, asa ca ma ales sa pun un senzor analog de temperatura TMP36
Am ales sa vad sketch-ul
si am completat in sketch-ul meu ce nu era. si am vazut ce imi trebuie sa folosesc informatiile pentru senzor DHT22 (AM2302), asa ca am incarcat sketch-ul modificat 1a.ino, care e cel de baza cu datele senzorului meu.
Am apasat butonul sa apara fereastra de indicare
Apoi am adaugat si un alt senzor,
pe pagina punand si indicatia de la umiditate:
Intru la ferestra in setari pentru a schimba numele lor:
si sterg fereastra de la TMP36
si astfel, am un canal curat
Deoarece pentru a realiza un termostat am nevoie de un releu, adaug asa ceva
si pun si partea de buton in sketch, acesta devenind 1b.ino
Pe acran am acum am indicatiile de temperatura si umiditate plus butonul de comanda releu (led).
Partea de comanda a releului (ledului) este configurata asa
Senzorul de umiditate is tenmeoratura AM2302 (DHT22) este conectat la pinul A0 (D14), iar ledul la D2.
Pe telefon, functie de sistemul de operare, putem avea indicatii de genul:
- Android
- iOS (pe IPhone, iPad)
Nota: Reactiile (actualizarea datelor) pot fi mult mai lente pe telefoane... uneori trebuind inchisa si redeschisa aplicatia...