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