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.

Wemos D1 i Arduino

Moduł Wemos D1 jest mały i to jest (moim zdaniem jego zaleta), do różnego rodzaju testów nie potrzeba budować ogromnej machiny z kabli na wielkie płytce stykowej.

Tym razem na małej płytce stykowej umieściłem moduł Wemos D1 mini (Wemos D1 mini v3.1.0 ESP8266 WiFi Python NodeMCU tak brzmi jego pełna nazwa), moduł mikrofonu KY-038 oraz moduł wyświetlacza graficznego OLED SSD1306 dispaly (128×64). Dlaczego właśnie te elementy? Bo je kupiłem z myślą o przetestowaniu i sprawdzeniu jak je używać w aplikacji miernika poziomu natężenia dźwięku.

Połączenie wszystkiego jest banalnie proste. Napięcie 3,3V z wyjścia Wemos idzie na wejście „+” modułu mikrofonu i Vcc wyświetlacza OLED. Masa zasilania z wyjścia GND Wemos na GND wyświetlacza OLED i wejście „G” mikrofonu. Wyjście analogowe mikrofonu „A0” do wejścia pomiarowego A0 modułu Wemos. Wyjścia SDA i SCL należy podłączyć do odpowiednich wejść SDA i SCL modułu Wemos (D2 – SDA, D1-SCL).

No to bazę sprzętową przedstawiłem a teraz oprogramowanie. Inaczej, niż poprzednio postanowiłem do programowania Wemos D1 mini wykorzystać Arduino. Wemos to po prawdzie ESP8266 z „opakowaniem” więc w Arduino da się zaprogramować.

W „menadżerze płytek” jeśli nie macie „esp8266 by ESP community” to musicie ją zainstalować. Wybieracie następnie odpowiednią płytkę – u mnie to „LOLIN(Wemos) D1 R2& mini”.

Czytaj dalej Wemos D1 i Arduino