Weintek i MQTT

Zbudowałem prosty system monitorowania temperatury i wilgotności z wykorzystaniem Wemos D1 mini oraz czujników AM2303. W systemie znalazło się kilka urządzeń- w założeniu jedno do monitorowania warunków na zewnątrz a drugie do monitorowania warunków wewnątrz.

Oprogramowanie modułów z logowaniem do sieci WiFi i przekazywaniem danych przez MQTT do brokera postawionego na RPI działającym w tej samej sieci WiFi (na razie bez wychodzenia do publicznego brokera takiego jak np. broker.hivemq.pl). I tu byłoby całkiem zwyczajnie, no ale w zestawieniu urządzeń pojawia się panel HMI Weintek MT8071iE wyposażony w wyświetlacz 800×480 oraz obsługę protokołu MQTT – ot taka integracja w ramach IoT a nawet IIoT.

W ramach projektu zrobiłem wizualizację na HMI, która wykorzystuje dane przekazywane przez czujniki protokołem MQTT. Przez MQTT przesyłane są obecnie informacje o temperaturze i wilgotności – na zewnątrz i wewnątrz.

Na kilku oknach przedstawione zostały wartości temperatury i wilgotności (na wskaźnikach) oraz wykresy zmian tych wartości w czasie.

Dodatkowo na RPI postawiony jest Node-RED i przy pomocy node-red-dashboard zrobiona jest wizualizacja danych, którą można wyświetlić np. na smartfonach zalogowanych w lokalnej sieci WiFi. W tym celu wystarczy wejść na stronę http://192.168.1.40/ui/ i oto co przedstawi się oczom oglądającego.

W tym poście celowo nie ma kodu, opisywanych ustawień itp. – ma on zachęcić do samodzielnego stworzenia „czegoś” w oparciu o pomysł jaki wpadnie Wam do głowy. W tym celu nie zawsze trzeba mieć wszystkie „fizyczne” urzązenia – w tym przykładzie np. HMI jest czysto wirtualne, jest to symulator HMI z oprogramowania Weintek EasyBuilder Pro.

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.

Czytaj dalej MQTT – ja to lubię!