MQTT - co to jest i gdzie jest wykorzystywane?
MQTT (Message Queuing Telemetry Transport) to lekki protokół komunikacyjny oparty na modelu publikacji/subskrypcji. Jest często wykorzystywany w systemach IoT (Internet of Things), automatyce przemysłowej, inteligentnych budynkach oraz systemach monitoringu.
Został zaprojektowany w 1999 roku przez IBM i stał się standardem w komunikacji niskiego opóźnienia między urządzeniami o ograniczonej mocy obliczeniowej.
Gdzie znajduje się MQTT w modelu OSI?
MQTT działa na warstwie aplikacji modelu OSI (Layer 7). W praktyce działa na protokole TCP/IP, wykorzystując porty:
- 1883 – standardowy port dla niezabezpieczonej komunikacji,
- 8883 – port dla komunikacji zabezpieczonej TLS/SSL.
Jak działa MQTT?
MQTT bazuje na modelu broker-klient, gdzie:
- Broker to centralny serwer zarządzający przesyłaniem wiadomości,
- Klient może pełnić rolę publikującego (wysyłającego wiadomości) lub subskrybenta (odbierającego wiadomości).
Komunikacja odbywa się za pomocą topiców (tematów), które organizują wiadomości w logiczne grupy. Przykłady:
home/salon/temperatura
iot/czujniki/poziom_wody
przemysl/linia1/motor/status
Poziomy QoS (Quality of Service)
MQTT obsługuje trzy poziomy QoS, które określają niezawodność dostarczania wiadomości:
- QoS 0 – “At most once” – wiadomość jest wysyłana tylko raz i nie ma gwarancji jej dostarczenia.
- QoS 1 – “At least once” – wiadomość jest dostarczana co najmniej raz, ale może być duplikowana.
- QoS 2 – “Exactly once” – wiadomość jest dostarczana dokładnie raz (najbezpieczniejsza, ale najwolniejsza opcja).
Zalety MQTT
- Niska konsumpcja energii – idealne dla urządzeń IoT,
- Minimalne wykorzystanie pasma – wysyła tylko niezbędne dane,
- Obsługa połączeń niskiej jakości – działa nawet w sieciach mobilnych,
- Bezpieczeństwo – obsługa TLS/SSL i uwierzytelniania użytkowników,
- Elastyczność – możliwość użycia w różnych scenariuszach przemysłowych i domowych.
Praktyczne zastosowanie
1. Instalacja brokera MQTT
Najpopularniejszym brokerem MQTT jest Mosquitto. Instalacja:
sudo apt update
sudo apt install mosquitto mosquitto-clients
Uruchomienie brokera:
sudo systemctl start mosquitto
2. Publikacja i subskrypcja wiadomości
Uruchomienie subskrybenta:
mosquitto_sub -h localhost -t "test/topic"
Publikacja wiadomości:
mosquitto_pub -h localhost -t "test/topic" -m "Hello MQTT"
3. MQTT w Pythonie
Instalacja klienta MQTT:
pip install paho-mqtt
Przykładowy kod publikacji i subskrypcji w Pythonie:
import paho.mqtt.client as mqtt
def on_message(client, userdata, message):
print(f"Otrzymano wiadomość: {message.payload.decode()}")
client = mqtt.Client()
client.on_message = on_message
client.connect("localhost")
client.subscribe("test/topic")
client.loop_start()
Gdzie wykorzystuje się MQTT?
MQTT znajduje zastosowanie w wielu dziedzinach:
- Inteligentne domy – np. Home Assistant, Node-RED do automatyzacji,
- Przemysł 4.0 – monitorowanie maszyn i urządzeń,
- Transport i logistyka – śledzenie GPS pojazdów,
- Rolnictwo – zarządzanie nawadnianiem, czujniki temperatury,
- Medycyna – monitoring pacjentów w czasie rzeczywistym.
MQTT to wydajny i lekki protokół komunikacyjny, idealny do zastosowań IoT. Dzięki niskiemu zużyciu zasobów i elastyczności znajduje zastosowanie w wielu branżach, od inteligentnych domów po przemysłowe systemy automatyki.