MQTT Protokolü ile IoT Cihazlarını Kontrol Etmek

MQTT, IoT dünyasının en yaygın haberleşme protokolüdür. Hafif, hızlı ve düşük bant genişliği kullanan bir yapıya sahiptir. Evinizde sensör, lamba, termostat gibi cihazları kontrol etmek istiyorsanız MQTT tam da işinize yarayacak.

MQTT'de üç temel bileşen vardır: broker (merkezi sunucu), publisher (yayıncı) ve subscriber (abone). Broker, yayıncılardan gelen mesajları toplayıp abonelere iletir. Örneğin, oturma odası lambası publisher olarak "salon/lamba/durum" konusuna "açık" mesajı gönderir; eğer bu konuya abone olan başka cihazlar varsa onlar da bu mesajı alırlar.

Mosquitto, en popüler açık kaynak MQTT brokerıdır. Linux/macOS'ta kurulum:

1sudo apt-get install mosquitto mosquitto-clients
2sudo systemctl start mosquitto

Windows'ta Mosquitto indirebilirsiniz. Kurulum sonrası broker varsayılan 1883 portunda çalışacaktır.

Python'da MQTT kullanmak için `paho-mqtt` kütüphanesini yükleyin:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1pip install paho-mqtt

Şimdi bir publisher örneği:

1import paho.mqtt.client as mqtt
2import time
3
4broker = "localhost"
5port = 1883
6
7client = mqtt.Client()
8client.connect(broker, port, 60)
9
10for i in range(5):
11client.publish("salon/lamba", f"Mesaj {i}")
12print(f"Yayınlandı: Mesaj {i}")
13time.sleep(2)
14
15client.disconnect()

Beklenen çıktı:

1Yayınlandı: Mesaj 0
2Yayınlandı: Mesaj 1
3Yayınlandı: Mesaj 2
4Yayınlandı: Mesaj 3
5Yayınlandı: Mesaj 4

Aynı konuya abone olan bir cihaz:

1import paho.mqtt.client as mqtt
2
3def on_message(client, userdata, msg):
4print(f"Alınan: {msg.topic} -> {msg.payload.decode()}")
5
6client = mqtt.Client()
7client.on_message = on_message
8client.connect("localhost", 1883, 60)
9client.subscribe("salon/lamba")
10client.loop_forever()
11[/cod]
12
13Subscriber'ı çalıştırıp ardından publisher'ı çalıştırırsanız, subscriber konsolunda gelen mesajları göreceksiniz.
14
15Komut satırından da test edebilirsiniz. Bir terminalde subscriber başlatın:
16
17[kod]
18mosquitto_sub -t "salon/lamba"

Diğer terminalde publish edin:

1mosquitto_pub -t "salon/lamba" -m "Lamba açık"

İlk terminal "Lamba açık" mesajını gösterecektir. MQTT temelleri bu kadar basit; gerisi cihazlarınızı bu yapıya bağlamak ve kendi kontrol mantığınızı eklemektir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz