MQTT -palvelimen isännöinti Raspberry Pi: ssä

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

  1. Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
  2. MicroSD -kortti (vähintään 8 Gt, luokka 10 tai parempi)
  3. Virtalähde (5 V, 2,5A PI 3; 5V, 3A PI 4: lle)
  4. Raspberry Pi OS (Lite tai työpöytäversio)
  5. Internet -yhteys
  6. MQTT -asiakkaat (esim. ESP8266, ESP32 tai MQTT -ohjelmistotyökalut)

Vaihe 1: Päivitä Raspberry Pi

  1. 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ä.

  1. Asenna Mosquitto ja sen asiakastyökalut:

    sudo apt install -y mosquitto mosquitto-clients
    
  2. Anna hyttian aloittaa käynnistys:

    sudo systemctl enable mosquitto
    
  3. Käynnistä hyttopalvelu:

    sudo systemctl start mosquitto
    

Vaihe 3: Testaa MQTT -välittäjä

  1. Avaa kaksi pääteikkunaa tai SSH -istuntoa Raspberry Pi: lle.

  2. Tilaa ensimmäisessä päätelaitteessa testi -aihe:

    mosquitto_sub -h localhost -t test/topic
    
  3. Julkaise toisessa päätelaitteessa testiviesti:

    mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT!"
    
  4. Sinun pitäisi nähdä viesti "Hei, MQTT!" ensimmäisessä terminaalissa.


Vaihe 4: Mosquitto määritä ulkoiset yhteydet

  1. Avaa Mosquitto -määritystiedosto:

    sudo nano /etc/mosquitto/mosquitto.conf
    
  2. 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.

  3. Käynnistä Mosquitto -palvelu uudelleen muutoksiin:

    sudo systemctl restart mosquitto
    
  4. 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)

  1. Ota salasanan todennus käyttöön:

    sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
    
    • Kirjoita ja vahvista salasana käyttäjälle.
  2. Päivitä Mosquitto -määritystiedosto käyttämään salasanatiedostoa:

    allow_anonymous false
    password_file /etc/mosquitto/passwd
    
  3. Käynnistä hitquitto -palvelu uudelleen:

    sudo systemctl restart mosquitto
    
  4. Testaa yhteys käyttäjätunnuksen ja salasanan avulla.


Vaihe 6: Yhdistä IoT -laitteet MQTT -välittäjälle

  1. 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);
    }
    
  2. 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ä

  1. Ei voi muodostaa yhteyttä MQTT -välittäjäin:

    • Varmista, että Mosquitto on käynnissä: sudo systemctl status mosquitto
    • Tarkista Raspberry PI: n palomuuriasetukset.
  2. Todennusvirheet:

    • Varmista käyttäjänimi ja salasana Mosquitto -määrityksessä ja asiakasasetuksissa.
  3. Yhteys kieltäytyi:

    • Varmista, että laite on samassa verkossa kuin Raspberry Pi.
    • Tarkista, että portti 1883 on auki.

MQTT: n sovellukset

  1. IoT -laiteviestintä
  2. Kodin automaatiojärjestelmät
  3. Reaaliaikainen tiedon suoratoisto
  4. 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!

Jätä kommentti

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.