Messaging Queuing Telemetry Protocol, sau MQTT, este un protocol de mesagerie ușor conceput pentru dispozitive și medii cu lățime de bandă redusă. Este o soluție rapidă, ușor de implementat și eficientă din punct de vedere energetic pentru conectarea și schimbul de informații între mai multe dispozitive IoT. Este nevoie de un broker/server MQTT și subiectul la care sunt publicate și abonate mesajele de către dispozitive sau utilizatori pentru a trimite sau a primi informațiile.
În acest ghid, vom implementa brokerul MQTT și instrumentul Node-RED pe Raspberry Pi pentru a conecta dispozitive IoT inteligente DIY cu MQTT și le vom folosi pentru automatizarea locuinței.
Lucruri de care veți avea nevoie
Pentru a construi și a implementa un server MQTT cu Node-RED, veți avea nevoie de următoarele:
- Un Raspberry Pi Zero W sau mai bun. Vă recomandăm să utilizați un Raspberry Pi 3 sau 4 (dacă este disponibil).
- Un card microSD (8 GB sau mai mare).
- Un cititor de carduri microSD.
- Un PC Linux, Mac sau PC Windows.
- Conexiune la internet (Wi-Fi).
Pasul 1: Instalați Raspberry Pi OS Lite (64 de biți)
Veți avea nevoie de versiunea Lite pe 64 de biți a sistemului de operare Raspberry Pi. În Raspberry Pi Imager instrument pe alt computer, faceți clic Alegeți sistemul de operare > Sistemul de operare Raspberry Pi (altul), apoi selectați Raspberry Pi OS Lite (64 de biți). În plus, veți dori să utilizați setările avansate ale Imager pentru a activa SSH (noi am folosit pi și zmeură ca nume de utilizator și parolă pentru acest ghid) și configurați conexiunea Wi-Fi. Pentru mai multe detalii, consultați ghidul nostru pe cum se instalează un sistem de operare pe un Raspberry Pi. După ce ați scris sistemul de operare pe card, scoateți-l și introduceți-l în Raspberry Pi.
Pasul 2: Conectați-vă prin SSH și actualizați pachetele
Vă puteți conecta la Raspberry Pi prin SSH folosind PuTTY pe Windows sau Terminalon macOS și Linux. Cu toate acestea, ar trebui să cunoașteți IP-ul Raspberry Pi pentru a vă conecta prin SSH. Pentru a afla, puteți deschide setările DHCP ale routerului fără fir sau puteți utiliza aplicația Fingapp pe smartphone.
Introdu adresa IP în Chit și faceți clic Conectați. Introduceți numele de utilizator și parola pentru a vă autentifica.
Pe terminalul Linux sau macOS, tastați YourPiUsername@IPAddress apoi tastați parola pentru a vă conecta. Odată conectat prin SSH, rulați următoarea comandă pentru a actualiza lista de pachete și pentru a actualiza pachetele.
actualizare sudo apt && sudo apt upgrade –y
Pasul 3: Instalați MQTT Broker
Pentru a instala și a activa brokerul MQTT (Mosquitto), parcurgeți următorii pași.
- Instalați Mosquitto rulând următoarea comandă în fereastra Terminal.
Aceasta va începe instalarea Mosquitto (broker MQTT) și a serviciilor pentru clienți.sudo apt instalare țânțar țânțar-clienți -y
- După instalare, activați serviciul Mosquitto și verificați versiunea MQTT folosind următoarele comenzi.
sudosystemctlpermitetantar.serviciu
tantar -v - Creați un cont de utilizator pentru a permite accesul autentificat de la distanță folosind următoarea comandă.
Aici ravi este numele de utilizator (puteți folosi orice doriți). Introduceți parola când vi se solicită. Notați acest nume de utilizator și parolă pentru o utilizare ulterioară.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Deschide tantar.conf fișier în editorul nano utilizând următoarea comandă.
Lipiți următorul cod în editorul nano.sudo nano /etc/mosquitto.conf
presa CTRL+X urmată de Y și introduce pentru a salva modificările.per_listener_settings Adevărat
pid_file /run/mosquitto/mosquitto.pid
persistenţă Adevărat
locație_persistență /var/lib/mosquitto/
fișier log_dest /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
permit_anonim fals
ascultător 1883
fişier_parolă /etc/mosquitto/passwd - Reporniți brokerul MQTT rulând următoarea comandă.
sudo systemctl reporniți țânțari
- Verificați starea brokerului MQTT pentru a vedea dacă MQTT rulează.
Dacă vedeți rezultatul de mai sus, MQTT rulează.sudo systemctl status tantar
Pasul 4: Testați brokerul MQTT
Pentru a testa dacă brokerul MQTT funcționează sau nu, instalați MQTTLens sau o aplicație MQTT similară în Chrome sau în orice alt browser web și lansați-o. Introduceți adresa IP a Raspberry Pi și numele de utilizator/parola MQTT. Clic Creați o conexiune.
Introdu orice subiect în Abonati-va domeniu și același subiect în Publica camp. Tastați „Salut” sau orice altceva în câmpul de mesaj și faceți clic Publica.
Dacă vedeți mesajul sub abonamente, brokerul MQTT funcționează bine.
Pasul 5: Instalați Node-RED
Cu Node-RED, puteți publica mesaje sau puteți trimite și primi încărcături utile către sau de pe dispozitivele dvs. inteligente. Această sarcină utilă poate fi utilizată pentru a declanșa dispozitivele inteligente să pornească/oprească sau să primească date (cum ar fi temperatura) de la un senzor. Puteți folosi browserul web pentru a crea astfel de fluxuri în Node-RED și pentru a vă controla dispozitivele inteligente.
Pentru a instala Node-RED, executați următoarea comandă în fereastra Terminal.
bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Acest lucru va descărca și instala Node-RED pe Raspberry Pi. Poate dura ceva timp pentru a finaliza. Odată ce Node-RED este instalat, trebuie să creați un fișier de setări Node-RED rulând următoarea comandă.
nod-roșu admin init
Apoi urmați acești pași:
- apasă pe introduce cheie.
- Doriți să configurați securitatea utilizatorului? Selectați da. Introduceți un nume de utilizator și o parolă. Păstrați-l în siguranță, deoarece acesta va fi folosit pentru a vă conecta și a gestiona Node-RED printr-o interfață web.
- Alege Acces complet.
- Puteți adăuga un alt utilizator sau puteți selecta Nu a inainta, a merge mai departe.
- Selectați Nu când vi se cere să activeze caracteristicile proiectului.
- presa introduce.
- Introduceți o expresie de acces și păstrați-o în siguranță.
- Alege tema implicită > Monaco (implicit).
- Selectați Nu când li se cere să încarce noduri externe.
Odată ce ați făcut acest lucru, reporniți Node-RED.
repornire nod-red
Acum puteți vizita IP-ul tău Raspberry Pi: 1880 într-un browser web pentru a deschide și a vă conecta la panoul de administrare Node-RED.
Acum puteți crea fluxuri în Node-RED. Mai jos este un exemplu de flux Node-RED pe care îl folosim pentru a rula afișajul nostru matrice WS2812B 8x32, care arată diverse informații despre senzori instalați în casa noastră în timp real.
Pentru a începe, puteți și construiți un ceas inteligent DIY folosind matricea de puncte MAX7219și conectați-l la serverul dvs. MQTT pentru a afișa text sau mesaje pe el.
Activați automatizarea casei folosind MQTT și Node-RED
Acum puteți crea fluxuri pentru a controla sau monitoriza dispozitivele dvs. de casă inteligentă compatibile cu MQTT. De asemenea, puteți construi întrerupătoare inteligente Tasmota sau senzori inteligenți bazați pe Arduino și alte dispozitive inteligente cu control MQTT și să le utilizați cu acest server MQTT și Node-RED. Puteți crea fluxuri pentru automatizarea casei pe baza evenimentelor, timpului sau încărcăturii utile primite de la clientul MQTT al smartphone-ului dvs.
Pe smartphone-ul dvs. Android, puteți instala MQTT Dash pentru a vă conecta la brokerul dvs. MQTT și a trimite sau primi încărcături utile către sau de la diferite subiecte la care dispozitivele dvs. inteligente sunt abonate sau la care le publică.