czwartek, 13 września 2018

BLYNK po nowemu - Układy dwuprocesorowe




Jak nie dać się zdominować w istniejącym układzie?
Tytuł jak raz pasujący do poradnika pracownika korporacji. Na blogu elektronicznym brzmi nieco dziwnie choć jest to bólu prawdziwy. Doświadcza go każdy zadający się z mikroprocesorami. Wielozadaniowość, wywłaszczenia, systemy z podziałem czasu to tylko z pozoru określenia właściwe dla"dużych" systemów jak Windows czy MAC OS. Kto choć raz użył przerwania w mikroprocesorze otarł się o wielozadaniowość. Nawet technika poolingu jest uproszczoną (bardzo uproszczoną) formą systemu z podziałem czasu. Najłatwiej jednak wielozadaniowość - określana tu jako wykonywanie więcej niż jednego zadania w tym samym czasie - uzyskać poprzez zastosowanie w projekcie kilku równolegle pracujących procesorów. W dzisiejszej dobie przy cenach poniżej 1$ za kość to najprostsze i w sumie najtańsze rozwiązanie. I problem równoległej pracy dwóch lub więcej niezależnych procesów w tym samym urządzeniu mamy z głowy. W przeciwieństwie do barszczu dwa procesory w układzie to znakomity pomysł.

środa, 12 września 2018

BLYNK blokuje program przy braku połączenia - co robić? cz. II


Rozwiązanie I - Łatanie dziur
Rozważmy najtrudniejszy przypadek - połączenie z serwerem BLYNK siecią WiFi. Złożoność problemu polega na tym, że biblioteka BLYNK oprócz połączenia z serwerem musi wcześniej zestawić połączenie WiFi. Ten problem nie występuje przy dostępie do sieci via Ethernet - tam połączenie dokonuje się sprzętowo bez udziału bibliotek BLYNKa.
Rozwiązanie jest jedno - należy w jakikolwiek sposób "ominąć" powyższe procedury jeśli nie dochodzi do połączenia w określonym czasie ale jednocześnie umożliwić połączenie gdy ustąpią przyczyny jego przerwania.Nie jest to proste zadanie.

wtorek, 11 września 2018

BLYNK blokuje program przy braku połączenia - co zrobić? cz. I


BLYNK to Internet a z internetem bywa różnie.
Najgorzej przerwy w łączności znosi mikroprocesor. Wiadomo już jak można sprawdzić brak połączenia w systemie BLYNK. Jednak to że WIEMY nie naprawi nam łącza choć biblioteka BLYNKa będzie wciąż i wciąż próbować zestawić połączenie. I to wciąż i wciąż mimo, iż bardzo pożądane w standardowych aplikacjach może być przyczyną sporych kłopotów w niektórych projektach. W takich gdzie główne funkcje programu muszą działać bez zakłóceń niezależnie od istnienia internetowego połączenia - ot choćby w systemie sterowania temperaturą w mieszkaniu. Nie do przyjęcia jest przenikliwe zimno (albo tropikalny upał) tylko dlatego, że popsuł się domowy router a nasz sterownik zawiesił się w nieustalonym bliżej stanie.
Kolejne odcinki będą o tym co robić by BLYNK nie blokował programu przy braku połączenia z serwerem.

poniedziałek, 10 września 2018

BLYNK - kontrola dostarczania przesyłek cz. III - moduł mikroprocesora




W elektronice dawnych wieków urządzenie i użytkownik byli połączeni w sposób bezpośredni. Użytkownik dowiadywał się o stanie urządzenia za pomocą zainstalowanych w nim wskaźników, mierników i wyświetlaczy. Urządzenie przyjmowało plecenia przyciskami, potencjometrami czasem klawiaturą podłączonymi bezpośrednio do niego. Nawet w tak zwanych systemach zdalnych gdzie wskaźniki i manipulatory były nieco oddalone od obiektu regulacji wszystko odbywało się zestawionymi na stałe kanałami łączności przewodowej lub radiowej. Można więc bez kozery uznać, że były to wewnętrzne połączenia urządzenia. Aby poznać co dzieje się z urządzeniem lub nim posterować należało podejść i zrobić to bezpośrednio w urządzeniu.
Sytuacja diametralnie zmieniła się wraz z erą Internetu. Użytkownik w większości procesów został fizycznie oddzielony od urządzeń. Tak drastycznie, iż może znajdować się na końcu świata i wciąż jest w stanie sterować urządzeniem identycznie jakby stał obok. Ale gdy łączność się urywa nie pozostaje nic innego jak pokornie podreptać do urządzenia by zbadać co dolega pacjentowi. Ten wpis będzie o diagnostyce komunikacji od strony modułów mikroprocesorowych.

niedziela, 9 września 2018

BLYNK - kontrola dostarczania przesyłek cz. II - aplikacja



Oparcie kontroli przepływu danych pomiędzy aplikacją i urządzeniem na standardowych, zaimplementowanych w BLYNKu mechanizmach może być daleko niewystarczające. Dotyczy to szczególnie systemów zdalnego sterowania gdzie użytkownik nie widzi skutków wydawanych telefonem poleceń (a dla takich celów został przecież stworzony BLYNK).
Można temu zaradzić wprowadzając swoje własne metody śledzenia przesyłek  odpowiednio konfigurując aplikację mobilną i dopisując w kodzie programu  procedury kontroli transmisji. Oto kilka takich propozycji

sobota, 8 września 2018

BLYNK - kontrola dostarczenia przesyłek cz. I



Wiadomo już mniej więcej jak zaadresować przesyłki w BLYNKu za pomocą AUTH by docierały tam gdzie zamierzamy je wysłać.
Osobną kwestią jest czy przesyłka rzeczywiście dotrze do adresata i czy nadawca dowie się o tym fakcie. To nasz codzienny dylemat gdy wysyłamy emaila. Naciśnięcie przycisku WYŚLIJ niczego nam jeszcze nie gwarantuje - to raczej nadzieja na to, że ktoś po drugiej stronie odczyta naszą wiadomość. Gdy bardzo zależy nam dotarciu do adresata prosimy go o potwierdzenie otrzymania wiadomości.
W grze w totolotka nadzieja jest podstawowym mechanizmem napędzającym tą zabawę - w automatyce czy sterowaniu to zdecydowanie za mało. Oczekujemy przynajmniej 100% pewności a czasami i większej.
Czy BLYNK daje nam taki poziom zaufania w naszych systemach IoT?

piątek, 7 września 2018

Auth Token - czyli jak zaadresować przesyłkę w BLYNK


Piny wirtualne a raczej zmienne systemu BLYNK krążące między mobilną aplikacją a procesorem to istota jego działania. Co z zawartością pinu zrobi widget lub Arduino to już szczegół. Najważniejsze by przesyłka dotarła we właściwe miejsce i maksymalnie szybko.
BLYNK ma swój własny system adresowania przesyłek. Dość tajemniczy i pozostający poza całkowitą kontrolą użytkownika.
Dziś co nieco o AUTH TOKEN w BLYNKU.

czwartek, 6 września 2018

BLYNK - wirtualne piny cz.2



 Porównanie pinów wirtualnych systemu BLYNK do kontenerów przenoszących towary z jednego krańca świata na drugi jest jak najbardziej uzasadnione. I jak to w transporcie wypadkowa sprawność całego łańcucha dostaw zależy od najsłabszego elementu systemu.
Nie inaczej jest w BLYNKu. Droga, czas, właściwa adresacja, dostępność elementów końcowych, potwierdzenia dostaw, wreszcie koszt dostawy to pojęcia z logistyki nie obce również tutaj. I mające ogromny wpływ na poprawną pracę całego systemu. Ważne by przesylka nie zaginęła gdzieś po drodze. Jeszcze lepiej gdy możemy śledzić jej historie podróży. Dziś - co i jak transportujemy pinami wirtualnymi.

środa, 5 września 2018

BLYNK - wirtualne piny cz. I


Mikroprocesor to dobry przykład połączenia dwu światów - realnego z milionami a raczej już miliardami tranzystorów zamkniętych w jednej obudowie i  milionów wirtualnych linii kodu w pamięci procesora. Arduino UNO to bez wątpienia czysty hardware, BLYNK zaś należy do świata wirtualnego.
Opisywałem już jak BLYNK starał się dogadać się ze sprzętem konfigurując zdalnie porty mikroprocesora. Dziś pomówimy o sytuacji odwrotnej - nasza ATmega382 lub ESP8266 spróbuje dopasować się do wirtualnego świata BLYNKa. Czyli rzecz o wirtualnych pinach (VP) w widgetach aplikacji BLYNK i w kodzie mikroprocesora.

wtorek, 4 września 2018

BLYNK - opis ogólny systemu


Zacząłem trochę od końca więc może po kolei.
BLYNK podobnie jak większość systemów IoT składa się zasadniczo z trzech elementów
  • aplikacji w telefonie/tablecie
  • serwera BLYNK zarządzającego systemem
  • aplikacji klienta w mikrokontrolerze/urządzeniu końcowym
Łącznikiem między tymi częściami jest oczywiście Internet
Czym więc jest znamienny ten system, że warto mu poświęcić trochę uwagi?

poniedziałek, 3 września 2018

BLYNK zdalnie programuje funkcje portów mikroprocesora - piny A/C


Czy ktokolwiek zastanawia się nad tym jakie procesy zachodzą w naszym ulubionym aucie gdy naciskamy starter? albo jakie układy elektroniczne są uaktywniane gdy naciskamy klawisz pilota by obejrzeć turniej z udziałem Roniego O’Sullivana? Po cholerę nam ta wiedza. Po prostu ma działać!
Genialnością twórców Arduino i faktyczną przyczyną niezwykłej popularności tej platformy jest dostrzeżenie tej prostej prawdy, że nie trzeba znać się na budowie silnika z turbodoładowaniem by być niezłym kierowcą.