Widget EVENTOR – programowanie w telefonie – cz III – przykład

By: | Post date: Maj 8, 2018

Programowanie mikrokontrolerów jest łatwe. A za sprawą genialnego projektu Arduino jest bardzo łatwe. Tworzenie aplikacji sterujących mikrokontrolerem na telefon. tablet lub komputer jest łatwe. A za sprawą genialnego projektu BLYNK jest bardzo łatwe. Czy można ułatwić coś co już jest bardzo łatwe? Oczywiście! Widget EVENTOR jest tego najlepszym przykładem. Kolejny odcinek o połączeniu aplikacji sterującej z programowaniem i co z tego wynika

Świat automatyki składa się z dwu rzeczywistości:

  • bliskiej gdzie czujniki i elementy sterujące bezpośrednio ingerują w sterowane urządzenie czy proces
  • odległej skąd nadzoruje się i wpływa na działanie urządzenia czy przebieg procesu

Początkowo (w czasach mechaniki)wszelkie elementy sterujące były blisko miejsca akcji a elementy zdalne były rzadko stosowane bo były drogie (np. zwrotnice kolejowe). Elektryczność zmieniła ten stan diametralnie. Kable były tanie a elektronika droga więc ciągnięto kilometry przewodów by połączyć je w jednym dyspozytorskim centrum nafaszerowanym lampami a potem tranzystorami. Mikroprocesory znowu zmieniły układ sił. Bardziej opłacalne stały się lokalne systemy sterowania a do i od centrali szły już tylko sygnały informacyjne ale wciąż kilometrami kabli. Internet i powszechna łączność bezprzewodowa całkowicie zrewolucjonizowała tradycyjną automatykę. Nie ma dziś większego znaczenia gdzie zostanie umieszczony serce urządzenia zawierające program jego działania. Można go umieścić przy obiekcie, może być tysiące km dalej. Wszystko zależy od sprawności łącza i wymaganego poziomu bezpieczeństwa.

Na dziś najbardziej efektywną jest struktura mocno mieszana. Cześć systemu sterowania znajduje się bezpośrednio przy obiekcie, część w oddalonym centrum. Bliskość zapewnia niezawodność i bezpieczeństwo procesu odległość wygodę i łatwość zmian parametrów czy programów sterowania.

Nie inaczej jest z BLYNKiem – domowym systemem automatyki. Duża część procesu sterowania znajduje się bezpośrednio w pamięci mikrokontrolera w sterowanym obiekcie (regulatorze temperatury, świateł czy rolet) część w oddalonym centrum – serwerze BLYNK. Granice obu systemów co do realizowanych funkcji są płynne. I choć odczyt czujników i sterowanie elementami wykonawczymi zawsze będzie realizowane lokalnie to już inne funkcje (np. zapis danych do pamięci) mogą być realizowane i w pamięci mikrokontrolera i w pamięci serwera BLYNK.

Od czasu pojawienia się widgeta EVENTOR również programowanie procesu sterowania może być w miarę swobodnie przenoszone pomiędzy procesor a serwer. Jest to co prawda dość ograniczona zamienność ale dająca w praktyce spore możliwości optymalizacji tworzenia a przede wszystkim szybkiej zmiany sposobu działania domowego urządzenia.

Jak to działa? Najlepiej na wyobraźnie działa przykład – a więc przykład

Prosty moduł mikroprocesorowy dla trzech sygnałów wejściowych  (przyciski na portach 4,5 13) i trzech wyjściowych (LEDy: jeden na module ESP i dwa dodatkowe na portach 12, 14). W module ESP zainstalowana jest biblioteka BLYNK.

Poniżej opis przykładowego działania urządzenia:

  • przycisk 1 załącza odbiornik 1 (LED1)
  • przycisk 2 załącza  odbiornik 2 (LED2) i odbiornik 3 (LED 3). Odbiornik 3 jest załączony przez odcinek czasu nastawiany z aplikacji w telefonie
  • przycisk 3 wyłącza odbiornik 1, 2 i 3 jeśli jest załączony
  • przyciski 1,2,3 mają mieć swoje odpowiedniki w aplikacji BLYNK w telefonie (zdalne sterowanie)
  • stan odbiorników ma być widoczny w aplikacji BLYNK (zdalna kontrola)
  • wszystkie (i te w realu i te wirtualne) przyciski są mono-stabilne. Przyciski na płytce podwieszone są rezystorami do +3V a więc sterują opadającym zboczem z 1/0 co jasno wynika ze schematu. LEDy też mają odwróconą logikę – świecą gdy na wyjściu portu jest 0.
  • w aplikacji w telefonie jest wskaźnik czy jest połączenie z modułem (M)

Na schemacie blokowym przepływ sygnałów pomiędzy elementami wej/wyj, mikroprocesorem i aplikacją BLYNK wyglądał będzie następująco:

 

 

Blok funkcji programu odpowiedzialny jest za wykonywanie opisanego wyżej schematu działania systemu. Licznik czasu służy do wyłączenia odbiornika 3 po czasie zadanym suwakiem w telefonie. M to sterowanie kontrolnego vLEDa sygnalizującego poprawną pracę urządzenia. Rola serwera BLYNK ogranicza się jedynie do przekazywania informacji pomiędzy mikroprocesorem a aplikacją w telefonie.

Kompletny program dla mikroprocesora ESP8266  realizujący  zadane funkcje jest tutaj>>>>>>. ). Blok funkcji programu to linie 31-51 i 95-120. To tam zapisane są wszystkie relacje między wyjściami i wejściami, które ma wykonać mikroprocesor. W liniach 31-51  funkcje sterowane są przyciskami z aplikacji w telefonie a 95-120 to sterowanie przyciskami na płytce modułu.

Filmik z działania urządzenia.

 

Te same funkcje są wywoływane równolegle wirtualnymi przyciskami w telefonie.

I pokaz działania urządzenia sterowanego aplikacją w telefonie

Widget EVENTOR w działaniu

 

Celem zadania jest przeniesienie bloku funkcji programu z pamięci mikroprocesora do serwera BLYNK. Jak? – to właśnie zadanie widgetu EVENTOR. Nowy schemat blokowy obrazujący przepływ sygnałów pomiędzy elementami wej/wyj, mikroprocesorem serwerem BLYNK i aplikacją w telefonie wyglądał będzie teraz następująco:

 

 

Kwadrat po prawej stronie to mikroprocesor. Funkcje programu przeniesione zostały  mikroprocesora do serwera BLYNK

Porty mikrokontrolera będą bezpośrednio sterowane z telefonicznej aplikacji. W mikroprocesorze pozostał jedynie timer/licznik bo takiej funkcji nie ma jeszcze dostępnej w EVENTORze. By móc nim sterować z zewnątrz dodamy sygnał START/STOP na dodatkowym pinie wirtualnym.

Po tych zabiegach program niesłychanie się uprościł (tu >>>>) – tak naprawdę to już nic w nim nie ma poza bibliotekami BLYNKa, deklaracjami portów i licznikiem czasu.

Mikroprocesor mimo degradacji ma wciąż do odegrania sporą rolę – jest nośnikiem biblioteki BLYNKa i dopasowuje sygnały, wyjścia i zmienne do standardów tej aplikacji. A przy okazji może jeszcze w wolnej chwili coś wykonać – ot choćby taki licznik czasu.

Trzeba nieco zmodyfikować ekran aplikacji w telefonie – mimo podobieństwa do poprzedniej wersji funkcje poszczególnych widgetów są już inne.

Czas teraz na  wprowadzenie do serwera BLYNK zaplanowanych funkcji urządzenia. Na filmie pokazana jest procedura tworzenia funkcji powiązania przycisku 1 i przycisku 3 z odbiornikami.

Sygnałem aktywnym przycisków i odbiorników jest zero jak wynika ze schematu układu.

A tu 7 zaprogramowanych w EVENTORze funkcji dających razem identyczną funkcjonalność do tej zawartej wcześniej w mikroprocesorze.

I wynik programowania z pomocą EVENTORa

Można więc przenieść zasadniczą (funkcjonalną) część oprogramowania z mikrokontrolera do telefonu (a w zasadzie do serwera BLYNK). Jakie praktyczne korzyści wynikają z takiej operacji?

To już temat na kolejne wpisy o widgecie EVENTOR.

41

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Translate »