sobota, 28 lipca 2018

BLYNK contra VIRUINO - pierwsze starcie

Trzy i pół roku temu na Kickstarterze zadebiutował BLYNK. Nieco później w 2016 pojawiło się VIRTUINO. Dwa systemy IoT mające w zamyśle w banalnie prosty sposób ułatwić połączenie telefonicznej aplikacji z ARDUINO. I o dziwo robią to znakomicie - każdy na swój sposób.
Spróbujemy dziś spojrzeć czym różnią się między sobą obydwa te systemy.

W podstawowym zastosowaniu oba systemu prezentują podobne możliwości. Jest to szybkie i bezproblemowe tworzenie telefonicznej aplikacji powalającej na zdalne zarządzanie systemem automatyki opartym na jakimś module ARDUINO. I to w zasadzie jedyne podobieństwo. Za to różnic mamy całą masę.

Autorzy


BLYNK jest dziełem ukraińskiego zespołu programistów pod kierunkiem Pawła Bayborodina. Team wystartował ze swoim pomysłem na Kickstarterze i z powodzeniem zebrał środki na rozwój projektu.

VIRTUINO to dzieło jednego człowieka - greckiego programisty Iliasa Lamprou. Projekt jak się wydaje jest całkowicie finansowany przez autora.

Opłaty


BLYNK - w podstawowej konfiguracji (przy korzystaniu z publicznego serwera ) jest aplikacją płatną. Minimalny darmowy limit wystarcza jedynie na stworzenie niewielkiego systemu sterowania i zapoznanie się z programem. Opłaty są pobierane za zakup energii niezbędnej do instalacji kolejnych klocków- widgetów- aplikacji i wynoszą kilka kilkanaście dolarów. Dla rozwiązań profesjonalnych proponowany jest zakup cyklicznie odnawianych licencji w cenach kilkaset dolarów miesięcznie. Dostępna jest darmowa wersja systemu w oparciu o własny (domowy) serwer BLYNKa. Warunki użytkowania zabraniają stosowania go dla celów komercyjnych.

VIRTUINO - jest w zasadzie darmowy zarówno dla zastosowań prywatnych jak i komercyjnych. W miarę pobierania kolejnych elementów aplikacji pojawia się prośba o obejrzenie reklamy (nienachalnej) lub pobranie wersji Virtuino Pro w cenie ok 50 zł. Wersja PRO prócz dostępu do wszystkich elementów aplikacji pozwala tworzyć własne elementy i personalizować projekt.

Struktura


BLYNK - składa się z trzech elementów: kodu mikrokontrolera, aplikacji w telefonie i serwera (publicznego lub prywatnego) łączącego oba elementy. Kod mikrokontrolera i serwera jest publicznie dostępny. Aplikacja pozostaje pod całkowitą kontrolą twórców.



VIRTUINO - w zasadzie również ma trzy części ale dwie z nich - kod mikrokontrolera i serwer zostały połączone w jedno w bibliotece programu procesora.  Całość systemu składa się więc jedynie z dwu elementów. Co więcej, można skonfigurować system tak,że do działania nie potrzebuje żadnej zewnętrznej sieci - komunikacja odbywa się bezpośrednio między mikrokontrolorem a telefonem. Jest to możliwe zarówno poprzez sieć WiFi (mikroprocesor pracuje w modzie AP) jak i w połączeniu Bluetooth. Można oczywiście włączyć system do domowej sieci WiFi (mikroprocesor pracuje w trybie STA) jak również sterować systemem z zewnątrz otwierając odpowiednie porty na routerze dostępowym.


Ale programista poszedł dalej. Udostępnił możliwość połączenia VIRTUINO z zewnętrznym serwerem. Jest nim ThingSpeakW tym przypadku konfiguracja urządzenia jest identyczna do BLYNKa.

Protokół komunikacyjny

BLYNK - używa własnego protokołu komunikacji zaimplementowanego po we wszystkich trzech elementach systemu. Daje on gwarancję odbioru informacji a w przypadku braku połączenia sygnalizacja  o tym fakcie jest dostępna  zarówno w aplikacji jak i w mikrokontrolerze. Łączność jest inicjowana przez każdy z elementów systemu przez co (teoretycznie) nie występują opóźnienia w transmisji i odbiorze danych poza tymi wynikającymi z opóźnień sieci Internet. Dostępna jest również opcja cyklicznego odpytywania mikrokontrolera przez aplikację. W tym przypadku przesył danych z telefonu do urządzenia jest niezwłoczny zaś z urządzenia do aplikacji odbywa się w określonych interwałach czasu.

VIRTUINO - komunikacja 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. Z tego faktu wynika, że komunikacja z aplikacji do urządzenia jest natychmiastowa. W kierunku odwrotnym  ( z urządzenia do telefonu) przesył danych jest inicjowany na żądania aplikacji w określonych interwałach. Nie ma możliwości natychmiastowej wysyłki danych do telefonu w przypadku zmiany parametru połączonego z widgetem w telefonie.

Aplikacja w telefonie

BLYNK - obsługuje zarówno Androida jak i IOs. Aplikacja jest bardzo bogata w dostępne widgety choć ich grafika jest raczej surowa. W ograniczonym zakresie istnieje możliwość zmiany wymiarów większości ekranowych elementów. Zmiana kolorystyki jest możliwa z aplikacji (8 podstawowych kolorów) i z poziomu oprogramowania (dostępna jest pełna gama kolorów). Widgety zawierają niewiele opcji konfiguracyjnych co znakomicie ułatwia przygotowanie aplikacji ale praktycznie uniemożliwia personalizację projektu. Dużo większe możliwości dopasowywania widgetów posiada jedynie opcja biznesowa systemu.



VIRTUINO - w porównaniu z BLYNKiem wręcz szokuje wyglądem pulpitu. Bogactwo kształtów i kolorów, rozbudowane opcje konfiguracyjne i możliwość zaawansowanego wpływania na wygląd widgetów plasuje system w górnej półce aplikacji. Każdy widget to kilkanaście, kilkadziesiąt, a w wersji PRO, praktycznie nieograniczona ilość wariantów i widoków. Widgety można też dowolnie formować co do wielkości. Mogą one również zachodzić na siebie co daje możliwość tworzenia fajnych kolaży i powiązań przestrzennych. Widok aplikacji to niewątpliwie najsilniejsza strona VIRTUINO. Wadą jest to, dostępna jest jedynie wersja na Androida.








Mikrokontrolery


BLYNK - obsługuje imponującą listę urządzeń. Poza standardowymi kośćmi ARDUINO (ATMEGA) i popularnymi mikroprocesorami  ESP8266/32, STM32 i całą gamą innych kompatybilnych z Arduino IDE na liście obsługiwanych są moduły Particle, Energia, ARM. BLYNKa można uruchomić praktycznie na każdym module z zainstalowanym  Pythonem,Java Scrypt czy LUA. Łącznie to kilkaset pozycji obsługiwanych układów z interfejsami WiFi lub Bluetooth. To jak na razie wynik nie do pobicia przez inne systemy domowej automatyki.

VIRTUINO - obsługuje znacząco mniejszą listę układów. Są to standardowe płytki Arduino usieciowione modułami Bluetooth lub WiFi, ESP8266/32 szczególnie w modułach NodeMCU i WeMos oraz STM32. Skromnie.

Czy w kontekście powyższych porównań warto zajmować się tak niszowym systemem IoT?
Moim zdaniem tak i w najbliższym czasie zamierzam zaprzyjaźnić się z nim bliżej.

Ciekawe, naprawdę ciekawe więc jest szansa na ciąg dalszy

Przydatne linki
VIRTUINO strona autora http://virtuino.com
Nowa strona o VIRTUINO     http://virtuino.blogspot.com/
146




2 komentarze:

  1. Wow - bardzo fajnie wyglądają te apki. Od siebie mogę dodać, ze jest jeszcze jedna alternatywa, ale trudniejsza w "okodzeniu" - użycie MQTT i wykorzystanie apek, gdzie dodajemy przyciski itp i łaczymy je z konkretnymi kanałami MQTT. niestety graficznie nie umywaja się w wiekszości do tych co Ty przedstawiłeś

    OdpowiedzUsuń
  2. W tym własnie problem. Programów IoT jest naprawdę sporo (nasza Supla np) ale wszystkie mają mocno topornie wyglądające aplikacje. Nawet mój ulubiony BLYNK wygląda przy VIRTUINO jak robota amatora programisty

    OdpowiedzUsuń