sobota, 21 października 2023

Domowa sieć IoT > WiFi + 433 MHz - reaktywaca


Ktoś powiedział, że dobre idee nie giną nigdy. Są, co najwyżej, realizowane z niejakim opóźnieniem. Ja potrzebowałem 5 (słownie pięciu) lat by powrócić do ulubionej koncepcji domowej sieci IoT zespolonej z WiFi i 433Mhz. Dziś o tym jak ta koncepcja powoli (oj jak powoli) się materializuje.





Nie będę się powtarzał - opis pomysłu zawarty jest we wcześniejszych (wciąż aktualnych) wpisach

http://100-x-arduino.blogspot.com/2018/11/domowa-siec-iot-wifi-433-mhz.html

http://100-x-arduino.blogspot.com/2018/11/router-433-mhz-retransmiter-powrot-jedi.html

Jedyna zmiana to zniknięcie komercyjnego (już) BLYNKa i zastąpienie go darmowym VIRTUINO. Reszta łącznie z płytkami PCB od Chińczyka i procesorem ESP8266 (też od Chińczyka) pozostaje bez zmian.

BLYNK i VIRTUINO pojawiło się w pracach nad domową automatyzacją może nie przypadkowo ale z pewnością trochę na siłę. Ot taki miły gadżet, którym można pochwalić się przed rodziną czy kolegami. Wszystko i tak było sterowane nieśmiertelnymi pilotami a elementy wykonawcze to niezawodne radiowe przekaźniki ELRO. Pomysły pełnej integracji całego systemu IoT wciąż obijały się po ścianach głowy ale bez zbytniego fanatyzmu. BLYNK w wersji 1.0 nie specjalnie się do tego nadawał. System co prawda posiadał centralny serwer ale jego elastyczność i możliwości były mocno ograniczone. Podobnie było z VIRTUINO - a nawet gorzej. System z założenia nie ma serwera a cała komunikacja odbywa się na zasadzie klient-serwer gdzie serwerami są .... mikroprocesorowe moduły. Zapowiadał się kompletny pat w rozwoju domowej automatyki.

Do tej chwili cała komunikacja między poszczególnymi elementami automatyki dla danej funkcji (np. sterowanie pompą czy automat załączania oświetlenia)  zawierała się jedynie w obrębie jednego modułu ESP8266. Jeżeli klient VIRTUINO był akurat uruchomiony następowała dodatkowa komunikacja pomiędzy ESP (serwerem) a aplikacją VIRTUINO. I to wszystko. Moduły nie miały żadnej łączności między sobą.

Ale pojawiła się potrzeba by sygnał z pilota 433MHz odbierany w jednym końcu nieruchomości przez tam umieszczony moduł mógł załączyć lampę na drugim skraju sterowaną innym modułem. Oba moduły wiszą na tej samej siei WiFi więc teoretycznie nie ma problemu w ich bezpośredniej komunikacji. Teoretycznie, gdyż w praktyce wymagałoby to umieszczenia w każdym dodatkowego bloku programu typu Klient Websocets i każdorazowej zmiany oprogramowania obu modułów przy zmianie funkcji.

Szczęściem całą czarną robotę łączenia obu modułów udało się zwalić na aplikację VIRTUINO. Z jednym tylko zastrzeżeniem - musi być ona online 24 h i 7 dni w tygodniu.  Ostatecznie umieściłem aplikację na tablecie z androidem i powiesiłem go na piecu CO. Pojawiło się więc mini-centrum domowej automatyki. 


Kiedyś dla BLYNKa serwerem był Raspberry Pi. Różnica pomiędzy oboma systemami jest zasadnicza. Serwer BLYNKa musiał być obowiązkowo dostępny by moduły działały prawidłowo. Dla VIRTUNIO dostępność serwera jest pożądana ze względu na dodatkowe funkcje udostępniane przez serwer ale nie konieczna. Pojęcie serwera VIRTUINO jest czysto teoretyczne - aplikacja jest w rzeczywistości klientem w protokole WebSocets zaś serwerami są poszczególne moduły ESP8266. Ale ze względu na funkcje integracyjne jakie będzie spełniał na stale załączony tablet z aplikacją będę go nazywał serwerem domowej automatyki.



Kluczowym elementem stała się więc aplikacja VIRTUINO. To dzięki niej rozproszone dotąd moduły mogą się wzajemnie komunikować. Każdy z elementów sieci jest dostępny dla wszystkich innych o ile znajdują się w zasięgu tak zintegrowanej sieci. 

Jednocześnie najsłabszym elementem systemu jest właśnie VIRUINO. Jego awaria niszczy sieć ale nie zawiesza autonomicznego działania jego elementów. Krytyczne funkcje obsługiwane przez moduły działają niezależnie od dostępności serwera (np sterowanie ogrzewaniem, pracą pomp czy otwieraniem bramy garażowej). Na najniższym poziomie wciąż można zdalnie zapalić oświetlenie ogrodu przy pomocy dedykowanego pilota pomijając całą mikroprocesorową elektronikę.

Jest jednak ogromna różnica pomiędzy BLYKiem a VIRTUINO. BLYNK posiadał tylko jeden serwer - VIRTUINO może mieć ich wiele i to pracujących równolegle. Jeśli jeden serwer jest niedostępny jego funkcje może bezzwłocznie przejąć kolejny.

A oto kolejne etapy rozwoju domowego IoT na przykładzie oświetlenia w ogrodzie.

Pierwszy najprostszy i najbardziej przyjazny system bezprzewodowego sterowania oświetleniem

Następny etap to lekki barok tylko po to by pochwalić się możliwością sterowania oświetleniem z telefonu - w praktyce jest to bardzo mało użyteczne. Aplikacja VIRTUINO uruchamiana jest jedynie na moment sterowania.



I obecny stan sieci IoT z załączoną na stałe aplikacją - wersja do dalszego rozwoju


Jeśli się dobrze przyjrzeć to wróciłem do punktu wyjścia. Mogę załączyć oświetlenie w ogrodzie pilotem (tym na dole rysunku). Różnica w stosunku do pierwszego rysunku zawiera się w odległości w jakiej musi znajdować się pilot by załączyć lampę. Bezpośrednie sterowanie z pilota daje zasięg ca 20 m. W drugim przypadku zasięg jest wyznaczony przez obszar pokrycia siecią WiFi+433 MHz. W moim przypadku to jakieś 100 - 120 m. I tak bezprzewodowa czujka ruchu może sterować oświetleniem ogrodu nawet jeśli jest poza zasięgiem górnego modułu (np. przy drzwiach wyjściowych do ogrodu). Podobnie z czujnikiem zmierzchowym - jeden czujnik może załączać dowolne lampy w obszarze zasięgu sieci.

Na razie mam trzy moduły płytek, które robią za konwertery WiFi<>433MHz. Te trzy sztuki w zupełności pokrywają mi zasięgiem całą nieruchomość nawet w trudno dostępnych miejscach. Dołożyłem również jeden repiter WiFi by jeszcze bardziej poszerzyć obszar działania sieci domowej automatyki. 

To dopiero początek z oswajaniem możliwości jakie daje taka zintegrowana sieć, w której wszystkie moduły widzą siebie nawzajem. Bez wątpienia zapowiada się ciekawy czas dla naszego ulubionego dalszego ciągu.


Brak komentarzy:

Prześlij komentarz