MQTT (Message Queuing Telemetry Transport) to lekki protokół publikuj-subskrybuj, który według specyfikacji OASIS jest zoptymalizowany dla urządzeń IoT z ograniczonymi zasobami i niestabilnymi połączeniami sieciowymi. Mosquitto to według Eclipse Foundation jedna z najpopularniejszych implementacji brokera MQTT.

Instalacja Mosquitto na Raspberry Pi / Debianie

sudo apt update
sudo apt install -y mosquitto mosquitto-clients

# Włącz jako usługę systemową
sudo systemctl enable mosquitto
sudo systemctl start mosquitto

# Sprawdź status
sudo systemctl status mosquitto

Konfiguracja z uwierzytelnianiem

# /etc/mosquitto/mosquitto.conf
listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd

# Utwórz użytkownika
sudo mosquitto_passwd -c /etc/mosquitto/passwd uzytkownik1
sudo systemctl restart mosquitto

Testowanie MQTT

# Terminal 1 — subskrybuj temat
mosquitto_sub -h localhost -u uzytkownik1 -P haslo -t "dom/#" -v

# Terminal 2 — publikuj wiadomość
mosquitto_pub -h localhost -u uzytkownik1 -P haslo 
  -t "dom/salon/temperatura" -m "22.5"

Przykład: ESP32 wysyła dane przez MQTT

#include <PubSubClient.h>
#include <WiFi.h>

WiFiClient espClient;
PubSubClient klient(espClient);

void setup() {
  WiFi.begin("SSID", "HASLO");
  klient.setServer("192.168.1.100", 1883);
}

void loop() {
  if (!klient.connected()) {
    klient.connect("ESP32-czujnik", "uzytkownik1", "haslo");
  }
  float temp = 23.5; // odczyt z czujnika
  klient.publish("dom/czujnik/temperatura", String(temp).c_str());
  delay(30000);
}
⚠️ Nota prawna: Artykuł ma charakter wyłącznie informacyjny. Redakcja iPraktyk.pl nie ponosi odpowiedzialności za działania podjęte na podstawie zawartych tu treści. Wszelkie czynności wykonujesz na własne ryzyko i odpowiedzialność. Przed wdrożeniem rozwiązań produkcyjnych skonsultuj się ze specjalistą.