wtorek, 10 stycznia 2023

VIRTUINO IoT zamiast BLYNK

 


A teraz próba zamiany  na VIRTUINO IoT projektu grzejnik zrealizowanego w oparciu o BLYNK. I co z tego (dobrego) wynikło.





Projekt grzejnik hula na całego w oparciu o VIRTUINO 6. Teraz pora by przećwiczyć go w VIRTUINO IoT. Na początek rzut ekranu


Jest on prawie identyczny z pulpitem VIRTUINO 6 (dziwne :)) ale tylko na pierwszy rzut oka. Zmiany poszły o wiele dalej niż wskazywałaby tylko delikatna zmiana nazwy.

Po pierwsze aplikacja dostępna jest na praktycznie wszystkie systemy operacyjne



Tego nie oferował nawet BLYNK nie mówiąc już o VIRTUINO 6 dostępnym tylko na Androida.

Sama aplikacja, choć podobna do szóstki, jest jednocześnie prostsza (np. do widżetów dowiązuje się tylko piny wirtualne) i bogatsza w funkcje (np. swobodnego kształtowania wyglądu widżetów).

Nie będę się o tym rozpisywał bo to domena bloga https://virtuino.blogspot.com

Jedyny minus jaki widzę to trudność we współpracy aplikacji z Google Play do uwzględnienia płatności za wersję PRO.  Skutek jest taki , że mimo przelewu środków androidowa aplikacja wciąż wyświetla się w wersji trial choć powinna być już dostępna wersja PRO. Ale jeden email do Iliasa i problem rozwiązany. Reakcja twórcy VIRTUINO jest i błyskawiczna i w pełni profesjonalna. To jeszcze jeden silny argument ZA VIRTUINO.

Program wygląda mniej więcej tak

https://pastebin.com/GD1eYgMy - blok główny z main()

https://pastebin.com/c75yMttr  - biblioteka piny.h

https://pastebin.com/wt3qBRbi - blok programu program.h

programu nie można już tak ładnie podzielić jak w (6) - z nieznanych mi powodów cała część komunikacji Virtuino z bloku głównego nie daje się przenieść do osobnej biblioteki. 

Zobaczmy jak jest obsługiwana w programiewymiana danych między modułem a aplikacją. Odbierane z aplikacji dane  dla pina V1 są przetwarzane przez procedurę 

void pin1_rec(String value_Text)

wywoływaną w procedurze odbioru nowych wartości pinów 

void onValueReceived(String tag, String value) {

  if (tag == "V1") pin1_rec(value);

.......... itd.

czyli bardzo podobnie jak w virtuino 6 i BLYNKu. Wysłanie nowej danej na pin V0  do aplikacji wykonujemy procedurą

 sendValue(pin0, String(b)); 

gdzie pin V0 jest powiązany z pin0 w deklaracji zmiennych

const char* pin0 = "V0";  

jest ona bliźniaczo podobna do tego co musieliśmy zrobić w BLYNKu a to oznacza że oba programy korzystają praktycznie z tych samych mechanizmów przesyłania danych (ciekawe kto od kogo ściągał).

Tym samym konwersja naszego kodu z systemu BLYNK na VIRTUINO IoT będzie jeszcze łatwiejsza niż dla V6. Czas więc na poważnie rozpocząć przesiadkę na nowy system dla wszystkich obecnie użytkowanych systemów mojej domowej automatyki.


Brak komentarzy:

Prześlij komentarz