Az MQTT (a Telemetria Transport üzenet sorba állítása) egy könnyű üzenetküldő protokoll, amelyet általában az IoT (tárgyak internete) alkalmazásokban használnak az eszközök közötti megbízható és hatékony kommunikációhoz. Az MQTT szerver tárolása egy Raspberry Pi -en lehetővé teszi egy helyi üzenetküldő csomópont létrehozását az IoT projektjeihez. Ez az útmutató egy MQTT szerver beállításán és futtatásán keresztül egy Raspberry PI -n keresztül jár.
Mire lesz szüksége
- Málna PI (Bármely modell GPIO -támogatással, például PI 3, PI 4)
- Mikroszálkártya (legalább 8 GB, 10. osztály vagy annál jobb)
- Tápegység (5 V, 2,5a minimum a PI 3; 5V, 3A a PI 4 -re)
- Raspberry Pi Os (Lite vagy asztali verzió)
- Internetkapcsolat
- MQTT ügyfelek (például ESP8266, ESP32 vagy MQTT szoftver eszközök)
1. lépés: Frissítse a Raspberry Pi -t
- Győződjön meg arról, hogy a Raspberry Pi naprakész -e:
sudo apt update && sudo apt upgrade -y
2. lépés: Telepítse a MOSQUITTO MQTT Broker -t
A Mosquitto egy könnyű és széles körben használt MQTT bróker.
-
Telepítse a Mosquitto -t és annak ügyfélszerszámait:
sudo apt install -y mosquitto mosquitto-clients
-
Engedélyezze, hogy a Mosquitto indítson a rendszerindításon:
sudo systemctl enable mosquitto
-
Indítsa el a szúnyogszolgálatot:
sudo systemctl start mosquitto
3. lépés: Tesztelje az MQTT brókert
-
Nyissa meg a két terminálablakot vagy az SSH munkamenetet a Raspberry Pi -hez.
-
Az első terminálban iratkozzon fel egy teszt témára:
mosquitto_sub -h localhost -t test/topic
-
A második terminálon tegyen közzé egy tesztüzenetet:
mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT!"
-
Látnia kell a "Hello, MQTT!" Az első terminálban.
4. lépés: Konfigurálja a szúnyogot a külső kapcsolatokhoz
-
Nyissa meg a szúnyog konfigurációs fájlt:
sudo nano /etc/mosquitto/mosquitto.conf
-
Adja hozzá a következő vonalakat a külső kapcsolatok engedélyezéséhez:
listener 1883 allow_anonymous true
Jegyzet: A termelési környezetekhez állítsa be a felhasználói hitelesítést, ahelyett, hogy anonim hozzáférést engedélyezne.
-
Indítsa újra a szúnyogszolgáltatást a változások alkalmazásához:
sudo systemctl restart mosquitto
-
Tesztelje a kapcsolatot egy másik eszközről ugyanazon a hálózaton egy MQTT kliens eszköz (például MQTT.FX vagy MQTT Explorer) segítségével.
5. lépés: Biztosítsa az MQTT brókert (opcionális)
-
Jelszó -hitelesítés engedélyezése:
sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
- Írja be és erősítse meg a felhasználó jelszavát.
-
Frissítse a Mosquitto konfigurációs fájlt a jelszófájl használatához:
allow_anonymous false password_file /etc/mosquitto/passwd
-
Indítsa újra a szúnyogszolgálatot:
sudo systemctl restart mosquitto
-
Tesztelje a kapcsolatot a felhasználónév és a jelszó segítségével.
6. lépés: Csatlakoztassa az IoT eszközöket az MQTT brókerhez
-
ESP8266/ESP32 esetén: Az Arduino IDE segítségével programozhatja az IoT eszközöket, hogy közzétegye/feliratkozzon a Raspberry Pi MQTT bróker témáira.
#include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "YourSSID"; const char* password = "YourPassword"; const char* mqtt_server = "<raspberry-pi-ip>"; WiFiClient espClient; PubSubClient client(espClient); void setup() { WiFi.begin(ssid, password); client.setServer(mqtt_server, 1883); } void loop() { if (!client.connected()) { client.connect("ESPClient"); } client.loop(); client.publish("test/topic", "Hello from ESP8266!"); delay(1000); }
-
Szoftver ügyfelek számára: Használjon mqtt.fx, mqtt explorer vagy python
paho-mqtt
könyvtár.import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client.subscribe("test/topic") def on_message(client, userdata, msg): print(msg.topic+" "+str(msg.payload)) client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect("<raspberry-pi-ip>", 1883, 60) client.loop_forever()
Hibaelhárítás
-
Nem lehet csatlakozni az MQTT brókerhez:
- Gondoskodjon arról, hogy a szúnyog futjon:
sudo systemctl status mosquitto
- Ellenőrizze a tűzfal beállításait a Raspberry PI -n.
- Gondoskodjon arról, hogy a szúnyog futjon:
-
Hitelesítési hibák:
- Ellenőrizze a felhasználónevet és a jelszót a szúnyog konfigurációban és az ügyfél beállításában.
-
A kapcsolat megtagadta:
- Győződjön meg arról, hogy az eszköz ugyanabban a hálózaton van, mint a Raspberry PI.
- Ellenőrizze, hogy az 1883 -as port nyitva van -e.
Az MQTT alkalmazásai
- IOT eszköz kommunikációja
- Otthoni automatizálási rendszerek
- Valós idejű adatfolyamolás
- Távirányító és vezérlés
Következtetés
Az MQTT szerver tárolása a Raspberry Pi -en kiváló módja annak, hogy lehetővé tegye a könnyű és megbízható kommunikációt az IoT projektjeihez. Az útmutató követésével beállíthat és rögzíthet egy szúnyog MQTT -brókert, csatlakoztathatja az IoT eszközöket, és megkezdheti a hatékony alkalmazások építését. Kísérletezzen különböző konfigurációkkal az MQTT teljes potenciáljának feltárására!