MQTT
MQTT este acronimul din engleză MQ Telemetry Transport. Reprezintă un protocol de comunicare, special proiectat, pentru a folosi la minimum lățimea de bandă necesară unei comunicații într-o rețea cu latență mărită. Astfel protocolul este ideal a fi folosit în comunicațiile mașină-mașină sau IOT din eglezescul "Internet Of Thinks" - internetul lucrurilor.
Instalare server MQTT - Debian 9
Toate comenzile de mai jos sunt realizate de către userul root sau de către un user ce are drept de administrare (de exemplu folosind comanda sudo).
Pentru început vom descărca cheia:
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
Instalăm cheia:
apt-key add mosquitto-repo.gpg.key
Creăm fișierul cu lista unde se află depozitul cu fișierele a fi instalate:
nano /etc/apt/sources.list.d/mosquitto.list
După deschiderea unui fișier gol scriem, folosind editorul preferat, următoarele:
deb http://repo.mosquitto.org/debian stretch main
Realizam actualizarea informațiilor legate de pachete:
apt update
În cazul în care rezultatul comenzii se termină cu eroare ca urmare a lipsei metodă driver /usr/lib/apt/methods/https
va fi necesară instalarea următorului pachet:
apt install apt-transport-https
Reluam comanda de actualizare a informațiilor legate de pachete:
apt update
Instalăm serverul și clientul mosquitto:
apt install mosquitto mosquitto-clients
După instalare verificăm dacă serverul mosquitto este pornit:
systemctl status mosquitto
În cazul în care serviciul/serverul nu este active vom porni serverul/serviciul:
systemctl start mosquitto
Pentru ca serviciul să ponească automat la secvența de încărcare a sistemului vom folosi comanda:
systemctl enable mosquitto
În continuare vom testa funționarea serviciului/serverului creind un abonament cu topicul test:
mosquitto_sub -h localhost -t test
la care vom publica mesajul salut de la un alt terminal/consolă, eventual de către un alt user:
mosquitto_pub -h localhost -t test -m "salut"
mesaj care vă apărea în prima consolă:
indicându-ne funcționarea corectă a serviciului/serverului mqtt, inchiderea abonamentului deschis se face cu tastele Ctr+c:
Având în vedere că publicarea la un topic nu este securizată vom crea un fișier privind autorizarea la acest serviciu/server, folosind editorul preferat, în cazul meu nano:
nano /etc/mosquitto/conf.d/auth.conf
unde vom scrie următoarele două linii:
allow_anonymous false
password_file /etc/mosquitto/passwd
Creem fișierul passwd declarat anterior și userul esp8266 cu parola aferentă:
mosquitto_passwd -c /etc/mosquitto/passwd esp8266
după care repornim serviciul/serverul:
systemctl reload mosquitto
Testăm capabilitatea userul nou creat esp8266 de a crea abonamente:
mosquitto_sub -h localhost -t test -u "esp8266" -P "parola"
și de a publica, folosind o altă consolă, eventual și un alt user:
mosquitto_pub -h localhost -t test -m "salut" -u "esp8266" -P "parola"
funcționarea corectă va fi indicată de apariția mesajului în prima consolă, la fel ca la testul anterior.