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

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

Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitto

   După ce am reușit să primesc valorile temperatruii și umidității de la o placă NodeMCU (ESP8266) prin intermediul unui server Mosquitto prin protocol MQTT (vedeți articolul anterior), acum o sa vă prezint o sonerie cu mai multe tonuri cu comandă locală (din buton, cum are orice sonerie), dar și de pe un telefon sau calculator prin comenzi MQTT.
   Materialul care l-am testat este prezentat într-un video numit MQTT Door Bell și în descriere se găsește sketch-ul, care se numește DoorBell3Publish.ino
   Am încărcat și eu acel sketch și până să-i conectez niste led-uri, am pus să se aprindă scurt ledul intern albastru (de la GPIO2 - D4) când a primit o comandă cunoscută. În filmul original se observă că sunetele sunt obținute mecanic, dar pe mine mă interesa modul de comandă.. se pot folosi buzzer-e active sau unul pasiv folosind comanda Tone (de generase sunete).
   Corespondennța pinilor GPIO cu cele Arduino sunt prezentate în figura de mai jos
Montajul realizat are butonul local la GPIO5 care corespunde lui D1
  Dacă se apasă butonul, led-urile se aprind într-o ordine corespunzătoare primei melodii.
  Pentru a veriifca dacă serverul Mosquitto este activ și ce IP are dăm comanda netstat - a din Commmand prompt cum am mai prezentat
  Observăm că portul 1883 este deschis la 192.168.1.106, asa că asta punem în sketch (MQTT_ESP8266_DoorBell.ino)
completăm și numele releței wi-fi din casă/apartament și parola.
   Deschidem aplicația MyMQTT de pe telefonul cu Android și scriem adresa serverului
   Apoi la partea de comenzi (Publish) trecem Doorbell ca fiind canalul de comunicare (tipic-ul)
care este notat și în sketck
  Pentru sunete simple dăm comenzi Bell1 .. Bell4 corespunzătoare unui aprinderi scurte a led-ului de la 1 la 4 (în cazul testului)
sau scurte melodii prin comenzi Chime1 ..Chime5 pentru melodii de la 1 la 5.
   Cel mai bine se vede modul de funcționare îm filmulete, așa că am făcut 2:
Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitt
Doorbell with locat or MQTT control
   Menționez că eu am folosit serverul Mosquitto instalat pe laptop, dar ideea e să fi fie instalat pe o placă Raspberry Pi, ținând cont că trebuie să fie mereu pornit acest server și din cauza consumului de energie, laptopul sau desktop-ul având un consul de 50-150W, iar Raspberry Pi de 1,5-7W în funcâe de versiune (raspberry Pi Zero consuma cel mai puțin).