MQTT (Viestijono -telemetrian kuljetus) on kevyt viestiprotokolla, jota käytetään yleisesti IoT (esineiden Internet) -sovelluksissa luotettavan ja tehokkaan viestinnän väliseen viestintään laitteiden välillä. MQTT -palvelimen isännöinti Raspberry PI: llä antaa sinun luoda paikallisen viestikeskuksen Internet -projekteillesi. Tämä opas opastaa sinut MQTT -palvelimen asettamiseen ja käyttämiseen Raspberry Pi: llä.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- MicroSD -kortti (vähintään 8 Gt, luokka 10 tai parempi)
- Virtalähde (5 V, 2,5A PI 3; 5V, 3A PI 4: lle)
- Raspberry Pi OS (Lite tai työpöytäversio)
- Internet -yhteys
- MQTT -asiakkaat (esim. ESP8266, ESP32 tai MQTT -ohjelmistotyökalut)
Vaihe 1: Päivitä Raspberry Pi
- Varmista, että vadelmasi pi on ajan tasalla:
sudo apt update && sudo apt upgrade -y
Vaihe 2: Asenna Mosquitto MQTT -välittäjä
Mosquitto on kevyt ja laajalti käytetty MQTT -välittäjä.
-
Asenna Mosquitto ja sen asiakastyökalut:
sudo apt install -y mosquitto mosquitto-clients
-
Anna hyttian aloittaa käynnistys:
sudo systemctl enable mosquitto
-
Käynnistä hyttopalvelu:
sudo systemctl start mosquitto
Vaihe 3: Testaa MQTT -välittäjä
-
Avaa kaksi pääteikkunaa tai SSH -istuntoa Raspberry Pi: lle.
-
Tilaa ensimmäisessä päätelaitteessa testi -aihe:
mosquitto_sub -h localhost -t test/topic
-
Julkaise toisessa päätelaitteessa testiviesti:
mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT!"
-
Sinun pitäisi nähdä viesti "Hei, MQTT!" ensimmäisessä terminaalissa.
Vaihe 4: Mosquitto määritä ulkoiset yhteydet
-
Avaa Mosquitto -määritystiedosto:
sudo nano /etc/mosquitto/mosquitto.conf
-
Lisää seuraavat rivit ulkoisten yhteyksien sallimiseksi:
listener 1883 allow_anonymous true
Huomaa: Aseta käyttäjän todennus tuotantoympäristöissä sen sijaan, että sallitaan nimettömän pääsyn.
-
Käynnistä Mosquitto -palvelu uudelleen muutoksiin:
sudo systemctl restart mosquitto
-
Testaa yhteys samasta verkosta toisesta laitteesta käyttämällä MQTT -asiakastyökalua (esim. MQTT.FX tai MQTT Explorer).
Vaihe 5: Suojaa MQTT -välittäjä (valinnainen)
-
Ota salasanan todennus käyttöön:
sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
- Kirjoita ja vahvista salasana käyttäjälle.
-
Päivitä Mosquitto -määritystiedosto käyttämään salasanatiedostoa:
allow_anonymous false password_file /etc/mosquitto/passwd
-
Käynnistä hitquitto -palvelu uudelleen:
sudo systemctl restart mosquitto
-
Testaa yhteys käyttäjätunnuksen ja salasanan avulla.
Vaihe 6: Yhdistä IoT -laitteet MQTT -välittäjälle
-
ESP8266/ESP32: Käytä Arduino IDE: ää ohjelmoidaksesi IoT -laitteesi julkaistaksesi/tilataksesi aiheita Raspberry Pi MQTT -välittäjäsi.
#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); }
-
Ohjelmistoasiakkaille: Käytä MQTT.FX, MQTT Explorer tai Python
paho-mqtt
kirjasto.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()
Vianetsintä
-
Ei voi muodostaa yhteyttä MQTT -välittäjäin:
- Varmista, että Mosquitto on käynnissä:
sudo systemctl status mosquitto
- Tarkista Raspberry PI: n palomuuriasetukset.
- Varmista, että Mosquitto on käynnissä:
-
Todennusvirheet:
- Varmista käyttäjänimi ja salasana Mosquitto -määrityksessä ja asiakasasetuksissa.
-
Yhteys kieltäytyi:
- Varmista, että laite on samassa verkossa kuin Raspberry Pi.
- Tarkista, että portti 1883 on auki.
MQTT: n sovellukset
- IoT -laiteviestintä
- Kodin automaatiojärjestelmät
- Reaaliaikainen tiedon suoratoisto
- Etävalvonta ja hallinta
Johtopäätös
MQTT -palvelimen isännöinti Raspberry PI: ssä on erinomainen tapa mahdollistaa kevyt ja luotettava viestintä Internet -projekteillesi. Seuraamalla tätä opasta voit asettaa ja kiinnittää hytteen MQTT -välittäjän, kytkeä IoT -laitteet ja aloittaa tehokkaiden sovellusten rakentamisen. Kokeile erilaisia kokoonpanoja tutkiaksesi MQTT: n koko potentiaalia!