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

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.





joi, 5 iulie 2018

Termostat MQTT cu ESP8266

   Dupa ce m-am mai obisnuit cu modul de functionare al protocolului MQTT de comunicare intre o placa de dezvoltare cu ESP8266 (sau ESP32) si un server local Mosquitto, am zis sa fac si o aplicatie utila, cea de termostat controlat de la distanta de e un smartphone.
   In prima faza, am adaptat un sketch pentru a simula un termostat prin generarea unui numar aleator care a fost impartit la 10 pentru a avea un numar cu zecimala si compararea lui cu o temperatura de referinta, Temperatura de referinta a fost si ea reglata din 2 butoane virtuale de pe aplicatia de pe smartphone, care se numeste IoT MQTT Panel:
   Am facut 2 filmulete in care se vede modul de functionare
pseudotermostat cu comenzi MQTT
MQTT (pseudo)thermostat
    Configurarea aplicatiei se face cum am prezentat in articolul Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitto (3) iar sketch-ul folosit este MQTT_ESP8266_termostat_notreal.ino.
    Placa Nodemcu V3 nu avea pini, asa ca i-am lipit si am facut un montaj pe un breadboard, punand si un senzor cu DHT22 (AM2302), un afisaj OLED de 0,9" (cca 2cm) si un led care indica functionarea centralei.
    Schema de conectare este
iat pentru detalierea pinilor, studiati schema placii de dezvoltare cu mapp-area pinilor ca un Arduino
   Pentru partea de conectare a afisajului i2c OLED am folosit informatiile din articolele:
ESP8266 0.96 inch OLED Display with Arduino IDE
ESP8266: I2C PORT AND ADDRESS SCANNER
   Sketch-ul rescris si adaptat dupa primul este MQTT_ESP8266_termostat_base.ino si modul de comportare se vede din filmuletele realizate:
Termostat MQTT cu ESP8266
ESP8266 MQTT thermostat
Termostat MQTT cu ESp8266 (2)
MQTT thermostat with ESP8266 (2)
     Pe ecranul telefonului apare
si deruland in sus, apar si butoanele virtuale de reglaj
   Am mai introdus un buton fara retinere din care aprind afisajul pentru cca 10 secunde, dupa cum se vede in filmuletele
Termostat MQTT cu ESP8266 (3)
ESP8266 MQTT thermostat (3)
9.7.2018
   Am aranjat modul de scriere sa fie in linie (pe verticala):
termostat MQTT cu ESP8266 (4)
MQTT thermostat with ESP8266 (4)

25.11.2019
   Am adaugat un articol numit Termostat MQTT cu ESP8266 (2) cu mai multe detalii de configurare a aplicatiei Android numite IoT MQTT Panel:

duminică, 10 iunie 2018

Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitto (2)

   În articolul anterior am folosit un server Mosquitto instalat pe un laptop cu sistem de operare Windows 10, de data asta am instalat serverul pe un Raspberry Pi Zero cu dongle Wi-Fi (care poate fi înlocuit cu un Raspberry Pi Zero W), care funcâionează ca o cameră de supraveghere, deci tot stă mereu pornit.
   Am crezut că e foarte simplu să instalez serverul Mosquitto pe raspberry Pi, dar sunt ceva probeleme c u pachetul de instalare, ața că am reusit să îl instalez doar cu informaâiile din articolul Install Mosquitto on a Raspberry Pi.
  Am instalat programele pe Raspberry de pe laptopul cu Windows 10, prin intermediul programului Putty
    Am dat următoarele comanzi:

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
sudo apt-get install python-pip
sudo pip install paho-mqtt
Am facut o copie a fisierului de configurare
cd /etc/mosquitto
sudo cp mosquitto.conf mosquitto.conf.original
si am făcut testul de comunicare scriind în fereastră
mosquitto_sub -d -t 'test-mosquitto'
și deschizând o a doua fereastră Putty (se repetă pașii cu configurarea, user-ul și parola), apoi se dă comanda
mosquitto_pub -d -t 'test-mosquitto' -m 'This is a test message'
deci serverul merge, așa că am modificat IP-ul pentru server în sketch-ul soneriei și l-am încărcat din nou.
Am schimbat și adresa serverului în aplicația MyMQTT de pe telefon în 192.168.2.20 si am dat comenzi de aprindere scurtă led-uri pe canalul Doorbell de genul Bell1 ,, Bell4, apoi de aprindere tip melodie Chime1 .. Chime5.
Pentru a verifica ulterior funcționarea serverului se dă comanda netstat -a ca și in Windows căutând portul 1883
Funcționare este identică ca pe serverul de pe Windows, după cum se vede și din filmulețele