MQTT – ja to lubię!

Masz już swoje urządzenie. Śmiga pięknie – mierzy, wyświetla i cieszy oko a przy tym raduje serce. No i stajesz przed kolejnym wyzwaniem – jak przesłać te dane, jak je udostępnić?
Rozwiązań oczywiście może być sporo ale ja, w tej chwili skupię się na jednym czyli MQTT. Co to jest MQTT – to protokół przesyłania danych (resztę doczytajcie sobie w sieci). Opiera się on na brokerze czyli serwerze, który przyjmuje dane od jednych klientów i udostępnia dane innym. Klienci mogą pełnić dwie role nazywane „publisher” i „subscriber”.

Publisher wysyła dane do brokera a Subscriber subskrybuje je (automatyczne dostanie powiadomienie o nowych danych).

Mając jakoś komputer np. RPI z systemem operacyjnym Raspbian mnożna postawić sobie serwer MQTT (np. Mosquitto), który będzie brokerem dla naszych danych.

Popularne serwery MQTT to HiveMQ, Mosquitto, RabbitMQ.

Do pracy z protokołem MQTT dobrze mieć narzędzia, które pozwalają na śledzenie tego co się dzieje oraz umożliwiają publikowanie i subskrypcję tematów (topic).

Do takich narzędzi można zaliczyć MQTT Explorer http://mqtt-explorer.com/ albo np. MQTTBox http://workswithweb.com/mqttbox.html

Jak używać MQTT nie mając własnego serwera MQTT? Można w tym celu wykorzystać darmowy broker udostępniany np przez HiveMQ czyli broker.hivemq.com.

Korzystając z aplikacji MQTTBox konfigurujemy połączenie klienta (aplikacja MQTTBox) z serwerem, którym będzie wspomniany darmowy broker HiveMQ.

Po skonfigurowaniu połączenia czas zająć się skonfigurowaniem „publishera” za pomocą, którego będziemy publikować informacje w tematach (topic).

Nazwa „topic” może być w sumie dowolna z tym, że trzeba się trzymać kilku zasad przy tworzeniu tej nazwy p. nie może być w nazwie spacji. Więcej na ten temat możesz dowiedzieć się ze strony https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/

W przykładzie powyżej temat, przez który wymieniać dane to „testtopic”/test1”. W polu „payload” wpisujemy to co chcemy przesłać – mogą być to zarówno wartości liczbowe jak i teksty czy dane w formacie np. JSON.

Po kliknięciu na „publish” dane zostaną opublikowane. No i co? Nic się nie dzieje? Dzieje się tylko, że bez subskrypcji danego „topica” nie widzimy tego. Zatem trzeba subskrybować dany temat by zobaczyć jakie dane są w nim publikowane.

W tym celu klikamy „Add subscriber” i dodajemy subskrybowany przez nas temat.

Teraz opublikujemy w temacie „testtopic/test1” jakieś dane np. tekst „Ala ma kota” (odpowiednik „Hello World!”). I co? Jest efekt – widzimy, że w subskrybowanym kanale pojawiły się nowe dane „Ala ma kota”.

To tyle słowem wstępu na temat MQTT. Zachęcam doi własnych prób szukania zastosowań tego protokołu komunikacyjnego np. w telemetrii, rozwiązaniach IoT (IIoT) itp.

Avatar

Autor: gervee

Pełnoetatowy ojciec małej gromadki, programista(?), "amator" fotograf, "dłubacz" lubiący DIY, miłośnik chmielonego napitku. "Żartowniś" bez poczucia humoru ;).

Dodaj komentarz