Messaging Queuing Telemetry Protocol ali MQTT je lahek protokol za sporočanje, zasnovan za naprave in okolja z nizko pasovno širino. Je hitra, enostavna za uvajanje in energetsko učinkovita rešitev za povezovanje in izmenjavo informacij med več napravami IoT. Za pošiljanje ali prejemanje informacij potrebuje posrednika/strežnik MQTT in temo, na katero so sporočila objavljena in na katere so naročene naprave ali uporabniki.
V tem priročniku bomo uvedli posrednika MQTT in orodje Node-RED na Raspberry Pi za povezavo pametnih naprav IoT DIY, ki podpirajo MQTT, in jih uporabili za avtomatizacijo doma.
Stvari, ki jih boste potrebovali
Če želite zgraditi in razmestiti strežnik MQTT z Node-RED, boste potrebovali naslednje:
- Raspberry Pi Zero W ali boljši. Priporočamo uporabo Raspberry Pi 3 ali 4 (če je na voljo).
- Kartica microSD (8 GB ali več).
- Čitalec kartic microSD.
- Računalnik z operacijskim sistemom Linux, Mac ali Windows.
- Internetna povezava (Wi-Fi).
1. korak: Namestite Raspberry Pi OS Lite (64-bitni)
Potrebovali boste 64-bitno različico Lite OS Raspberry Pi. V Raspberry Pi Imager v drugem računalniku kliknite Izberite OS > Raspberry Pi OS (drugo), nato izberite Raspberry Pi OS Lite (64-bitni). Poleg tega boste želeli uporabiti napredne nastavitve Imagerja, da omogočite SSH (uporabili smo pi in malina kot uporabniško ime in geslo za ta priročnik) in konfigurirajte povezavo Wi-Fi. Za več podrobnosti si oglejte naš vodnik na kako namestiti operacijski sistem na Raspberry Pi. Ko zapišete OS na kartico, jo izvrzite in vstavite v vaš Raspberry Pi.
2. korak: Povežite se prek SSH in posodobite pakete
S svojim Raspberry Pi se lahko povežete prek SSH z uporabo PuTTY v sistemu Windows ali Terminalon macOS in Linux. Vendar morate poznati IP Raspberry Pi, da se povežete prek SSH. Če želite izvedeti, lahko odprete nastavitve DHCP brezžičnega usmerjevalnika ali uporabite Fingapp na pametnem telefonu.
Vnesite naslov IP PuTTY in kliknite Povežite se. Vnesite svoje uporabniško ime in geslo za prijavo.
V terminalu Linux ali macOS vnesite VašePiUporabniškoime@IPAddress in nato vnesite geslo za prijavo. Ko se povežete prek SSH, zaženite naslednji ukaz, da posodobite seznam paketov in nadgradite pakete.
posodobitev sudo apt && nadgradnja sudo apt –l
3. korak: Namestite posrednika MQTT
Če želite namestiti in omogočiti posrednika MQTT (Mosquitto), naredite naslednje korake.
- Namestite Mosquitto tako, da v oknu terminala zaženete naslednji ukaz.
S tem se bo začela nameščati Mosquitto (posrednik MQTT) in storitve za stranke.sudo apt namestite komar komar-klienti -y
- Po namestitvi omogočite storitev Mosquitto in preverite različico MQTT z naslednjimi ukazi.
sudosystemctlomogočitikomar.storitev
komar -v - Ustvarite uporabniški račun, da omogočite preverjen oddaljeni dostop z naslednjim ukazom.
Tukaj ravi je uporabniško ime (uporabite lahko poljubno). Vnesite geslo, ko ste pozvani. Zapišite si to uporabniško ime in geslo za kasnejšo uporabo.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Odprite mosquitto.conf datoteko v urejevalniku nano z naslednjim ukazom.
Prilepite naslednjo kodo v urejevalnik nano.sudo nano /etc/mosquitto.conf
Pritisnite CTRL+X sledi Y in Vnesite da shranite spremembe.per_listener_settings prav
pid_file /run/mosquitto/mosquitto.pid
vztrajnost prav
vztrajnost_lokacija /var/lib/mosquitto/
datoteka log_dest /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
dovoli_anonimno lažno
poslušalec 1883
datoteka_gesla /etc/mosquitto/passwd - Ponovno zaženite posrednika MQTT tako, da zaženete naslednji ukaz.
sudo systemctl znova zaženi mosquitto
- Preverite stanje posrednika MQTT, da vidite, ali se MQTT izvaja.
Če vidite zgornji rezultat, se MQTT izvaja.sudo systemctl status mosquitto
4. korak: preizkusite posrednika MQTT
Če želite preizkusiti, ali posrednik MQTT deluje ali ne, namestite MQTTLens ali podobno aplikacijo MQTT v Chromu ali katerem koli drugem spletnem brskalniku in jo zaženite. Vnesite naslov IP Raspberry Pi in uporabniško ime/geslo MQTT. Kliknite Ustvari povezavo.
Vnesite katero koli temo v Naročite se polje in ista tema v Objavi polje. V polje za sporočilo vnesite "Živjo" ali karkoli drugega in kliknite Objavi.
Če vidite sporočilo pod naročninami, posrednik MQTT deluje dobro.
5. korak: Namestite Node-RED
Z Node-RED lahko objavljate sporočila ali pošiljate in prejemate koristne podatke v ali iz svojih pametnih naprav. To koristno obremenitev se lahko uporabi za sprožitev pametnih naprav, da se vklopijo/izklopijo ali sprejmejo podatke (kot je temperatura) od senzorja. S spletnim brskalnikom lahko ustvarite takšne tokove v Node-RED in nadzorujete svoje pametne naprave.
Če želite namestiti Node-RED, izvedite naslednji ukaz v oknu terminala.
bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
S tem boste prenesli in namestili Node-RED na vaš Raspberry Pi. Za dokončanje lahko traja nekaj časa. Ko je Node-RED nameščen, morate ustvariti datoteko z nastavitvami Node-RED z zagonom naslednjega ukaza.
node-red admin init
Nato sledite tem korakom:
- Pritisnite tipko Vnesite ključ.
- Ali želite nastaviti varnost uporabnika? Izberite ja. Vnesite uporabniško ime in geslo. Shranite ga na varno, saj se bo uporabljal za prijavo in upravljanje Node-RED prek spletnega vmesnika.
- Izberite Popoln dostop.
- Lahko dodate drugega uporabnika ali izberete št nadaljevati.
- Izberite št ko vas prosimo, da omogočite funkcije projekta.
- Pritisnite Vnesite.
- Vnesite geslo in ga shranite na varno.
- Izberite privzeta tema > Monako (privzeto).
- Izberite št ko je pozvan, naj naloži zunanja vozlišča.
Ko je to storjeno, znova zaženite Node-RED.
node-rdeči ponovni zagon
Zdaj lahko obiščete Vaš-Raspberry-Pi-IP: 1880 v spletnem brskalniku, da odprete in se prijavite v skrbniško ploščo Node-RED.
Zdaj lahko ustvarite tokove v Node-RED. Spodaj je primer toka Node-RED, ki ga uporabljamo za zagon našega matričnega zaslona WS2812B 8x32, ki v realnem času prikazuje različne informacije senzorjev, nameščenih v našem domu.
Za začetek lahko tudi izdelajte pametno uro DIY s pikčasto matriko MAX7219, in ga povežite s svojim strežnikom MQTT, da na njem prikažete besedilo ali sporočila.
Omogočite avtomatizacijo doma z uporabo MQTT in Node-RED
Zdaj lahko ustvarite tokove za nadzor ali spremljanje svojih pametnih domačih naprav, ki podpirajo MQTT. Prav tako lahko sestavite pametna stikala Tasmota ali pametne senzorje, ki temeljijo na Arduinu, in druge pametne naprave z nadzorom MQTT ter jih uporabite s tem strežnikom MQTT in Node-RED. Tokove za avtomatizacijo doma lahko ustvarite na podlagi dogodkov, časa ali tovora, prejetega od odjemalca MQTT vašega pametnega telefona.
Na vaš pametni telefon Android lahko namestite MQTT Dash, da se povežete s svojim posrednikom MQTT in pošiljate ali prejemate koristne podatke v ali iz različnih tem, na katere so vaše pametne naprave naročene ali jih objavljajo.