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 trueHuomaa: 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-mqttkirjasto.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!
 
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  