2018-08-29

Virtuino jak to działa?

Virtuino to szalenie prosty system bezprzewodowego sterowania. Prosty ale nieprawdopodobnie elastyczny. Może nim sterować domową automatyką, podlewaniem ogrodu czy nadzorowaniem temperatury przydomowej szklarni. To potrafi jednak większość dostępnych w sieci systemów IoT. Ale mało który system można użyć do sterowania dronem w szczerym polu gdzie brak jest jakiejkolwiek sieci WiFi a o dostępie do serwera systemu już nie wspominając.
A VIRTUINO to  potrafi. Jak to możliwe? O tym miedzy innymi w dzisiejszym wpisie.





Bezprzewodowy system IoT to zasadniczo dwa elementy: moduł wykonawczy i konsola operatora. W roli modułu wykonawczego występuje zawsze jakiś układ procesorowy obudowany czujnikami i elementami wyjściowymi. Konsola operatora to dziś najczęściej telefon lub tablet
Ale większość systemów IoT do działania wymaga jeszcze jednego elementu pośredniczącego w komunikacji urządzenia i aplikacji. Jest to serwer gateway czy coordynator spinający całą sieć sterowania. W serwerze zaszyte są systemowe funkcje całej sieci, tu przechowywane są dane. Jeśli serwer znajduje się w sieci wewnętrznej odpowiedzialny jest również za połączenie z Internetem i kontrolę dostępu do systemu z dowolnego miejsca na świecie. Jeśli nawet urządzenia systemu potrafią komunikować się między sobą bezpośrednio jak np w Zigbee, Zwave czy Fibaro to obecność centralnego serwera jest niezbędna by system mógł w ogóle zacząć działać.


VIRTUINO działa inaczej. Role typowego serwera IoT zostały rozdzielone pomiędzy aplikację i mikrokontroler. W swojej konstrukcji jest podobny do zdalnie sterowanych zabawek z tą jednak różnicą, że jest to system w pełni dwukierunkowy i pozwalający na jednoczesne sterowanie wieloma urządzeniami.


Niektóre konstrukcje dronów umożliwiają podobny typ sterowania ale ograniczony jedynie do konkretnego urządzenia.

VIRTUINO jest zaś systemem uniwersalnym. Do czego będzie użyty zależy jedynie od wyobraźni i umiejętności użytkownika.  Można nim sterować cokolwiek o ile potrafimy wgrać do mikrokontrolela bibliotekę VIRTUINO a  układ posiada jakikolwiek typ łączności bezprzewodowej dostępnej w telefonie czy tablecie. Może to być zarówno krótkozasięgowy Bluetooth jak i ogólnie dostępny WiFi . Łączność w oparciu o GPRS nie jest zalecana ze względu na stałą transmisję sporej ilości danych pomiędzy telefonem a urządzeniem.


Połączenie Bluetooth jest proste, bezpieczne i ma niewielki zasięg  dzięki temu znakomicie sprawdzi się np. w biurze czy mieszkaniu.
Połączenie WiFi oferuje znacznie większe pokrycie i może pracować w dwu modach

  • bezpośrednim - jest to połączenie podobne do Bluetooth kiedy konsola łączy się bezpośrednio z mikrokontrolerem
  • pośrednim - gdy oba urządzenia systemu są jednymi z wielu elementów pracujących w sieci WiFi

Przy połączeniu bezpośrednim jedno z urządzeń (mikrokontroler) pełni rolę serwera i punktu dostępowego (Access Point) dedykowanej sieci WiFi.
W połączeniu pośrednim oba urządzenia są skonfigurowane jako stacje końcowe (STA) większej / większych sieci WiFi. Jeśli oba elementy znajdują się w ramach tej sami sieci WiFi połączenie między nimi dokonuje się za pośrednictwem routera  wewnętrznego. Gdy konsola i mikrokontroler przyłączone są do różnych sieci łączy je  wewnętrzna sieć Ethernet lub Internet.

Odmianą połączenia pośredniego jest sytuacja gdy mikrokontroler dysponuje łączem Ethernet (np za pomocą Etherent shield) a część bezprzewodowa sieci występuje między telefonem a routerem dostępowym.

Jeszcze do niedawna połączenia typu Ethernet i  Bluetooth dominowały w rozwiązaniach hobbystycznych ze względu na niskie koszty. Od czasu rewolucji cenowej chińskiego wynalazku ESP8266 technologia WiFi stała się podstawowym medium domowych systemów automatyki.

Można by rzec, iż VIRTUINO w genialnie prosty sposób wykorzystało trzy powszechnie dostępne i tanie technologie:

  • smartfon / tablet  > ma każdy
  • ESP8266/ 32 > 1-3 $
  • Arduino IDE > darmowy 

VIRTUINO w wersji podstawowej jest oferowany za free zarówno w zastosowaniach amatorskich jak i profesjonalnych. Model biznesowy opary jest reklamach wyświetlanych podczas tworzenia aplikacji ale nie ma ich w czasie użytkowania systemu. Podobnie jak w innych tego typu aplikacjach wyłączenie reklam wymaga niewielkiej jednorazowej opłaty (ok 50 zł upgrade do wersji Virtuino PRO) . Po jej wniesieniu z poziomu aplikacji wersja PRO dostępna jest na wszystkich urządzeniach zarejestrowanych na danego użytkownika. Uwaga - nie można zakupić wesji PRO bezpośrednio w sklepie PLAY. Oprócz wyłączenia reklam wersja PRO oferuje dodatkowe funkcje konfiguracji i rozszerzone możliwości działania programu.

Już w wersji darmowej aplikacja jest bez wątpienia najsilniejszą stroną VIRTUINO. Jest po prostu bardzo ładna graficznie. Na tle kwadratowych czy prostokątnych ikon sterujących wielu programów IoT ten wygląda niemal profesjonalnie.


W wersji PRO atrakcyjność wyglądu można jeszcze zwiększyć po wielokroć tworząc własne widgety o dowolnym wyglądzie. Ba, można ożywić nasze elementy wprowadzają prostą animację. Jeśli trochę popracujemy nad graficzną stron naszego projektu efekt może przewyższyć to co dostajemy za ciężką kasę w profesjonalnych systemach SMART HOME.



Ale nie dla ładnego wyglądu zainstalowałem VIRTUINO. Chciałem sprawdzić jak sobie on radzi ze zarządzaniem domową automatyką. I najważniejszą sprawą - niezawodnością i pewnością sterowania. Na początek testowałem komunikację systemu w ramach domowej sieci WiFi pozostawiając Bluetooth i tryb Access Point do późniejszych analiz.

Komunikacja w VIRTUINO oparta jest na standardowym protokole WWW a mikrokontroler ma zainstalowany prosty serwer WWW do odbioru i wysyłania informacji pomiędzy aplikacją a urządzeniem.

Pomiędzy aplikacją a urządzeniem można przesyłać trzy typy danych

  • binarne
  • analogowe (liczbowe)
  • tekstowe

Dane przesyłane są otwartym tekstem toteż stosowanie VIRTUINO poza siecią lokalną wiąże się z ryzykiem przechwycenia sterownia przez nieuprawnione osoby.Jak na razie nie ma implementacji protokołu HTTPS, który gwarantowałby poufność transmitowanych danych.

Dane binarne i analogowe są obsługiwane przez większość widgetów. Dane tekstowe wyślemy i odbierzemy dwoma dostępnymi elementami.

Korzystanie z serwera WWW do obsługi transmisji danych skutkuje pewną niedogodnością. Sterownie z aplikacji do urządzenia jest niemal natychmiastowe. Ale w kierunku odwrotnym  ( z urządzenia do telefonu) przesył danych jest inicjowany na żądania aplikacji w określonych interwałach. Nie ma więc możliwości bezzwłocznej wysyłki danych do telefonu w przypadku zmiany jakiegoś parametru w mikrokontrolerze połączonego z widgetem aplikacji. Czas odpytywania serwera przez aplikację jest kompromisem pomiędzy akceptowalnym opóźnieniem w transmisji danych a wielkością ruchu w sieci i obciążenia procesora obsługą żądań.
Cóż prostota systemu i brak centralnego serwera okupiona jest pewnymi niedogodnościami.

Ale poza tą cechą sterowanie w ramach VIRTUINO jest pewne i niezawodne. Na bieżąco dostępna jest sygnalizacja połączenia między aplikacją i mikrokontrolerem. Fakt utraty łączności, np z powodu awarii sieci WiFi, sygnalizowanych jest dużym czytelnym komunikatem, którego nie sposób przegapić.

Na dziś VIRTUINO można zainstalować w najpopularniejszych i ogólnie dostępnych modułach mikroprocesorowych: układach ARDUINO, płytkach opartych na ESP8266 i najnowszym ESP32 a także na mikrokontrolerze STM32.

To czyni z VIRTUINO bardzo atrakcyjny i co ważne darmowy program do stworzenia własnego systemu zarządzania domową automatyką.


Przydatne linki

aktualne biblioteki VIRTUINO dla


2

1 komentarz:

  1. Witam, nurtuje mnie pytanie czy koś próbował postawić sieć na arduino + mysensors i nRF24L01+ i z bramką połączyć się przy pomocy virtuino i bluetooth. Ciekawe czy virtuino będzie widziało czujniki z węzłów. Zasięg nRF24L01+ w "mocniejszej " wersji to kilometr,raczej nie osiągalny dla wifi.
    pozdrawiam

    OdpowiedzUsuń