BUTTON – widget orkiestra aplikacji BLYNK

By: | Post date: Listopad 16, 2017

Znalezione obrazy dla zapytania one man bandZa sobą mamy już opis  LEDa – mini widgetu ze skromnymi jak na BLYNKa możliwościami. Jednak nawet ten ubogi wirtualny element funkcjonalnością przewyższa ledy z realnej elektroniki. Tak to już jest z wirtualną rzeczywistością, że jedynym jej ograniczeniem jest wyobraźnia  programistów. Co można ciekawego zrobić gdy nie trzymamy się kurczowo materialnych pierwowzorów a pozwalamy sobie na odrobinę fantazji pokazuje nam przykład kolejnego widgeta. BUTTON jest dla mnie absolutnym number one wśród BLYNKowych klocków lego. Dlaczego? O tym już za chwilę. Continue Reading…

BLYNK za free – odcinek III

By: | Post date: Listopad 11, 2017

Mamy już działający własny serwer BLYNK. Teraz trzeba zmienić trasę przebiegu rzeczywistych i wirtualnych pinów z aplikacji i mikrokontrolera tak by docierały do nowego węzła komunikacyjnego. I tu uwaga. Albo rybka albo pipka – albo nasz system korzysta z publicznego serwera albo z naszego lokalnego. To spore ograniczenie ale zrozumiałe uwzględniając komercyjny charakter publicznego serwera BLYNK. Sami musimy zdecydować jakie rozwiązanie jest korzystniejsze dla naszego projektu i dla naszych pieniędzy. A wcześniej kolejna porcja informacji o własnym (darmowym) systemie BLYNK. Continue Reading…

BLYNK za free – odcinek II

By: | Post date: Listopad 10, 2017

Pierwszy sukces w tworzeniu naszej niezależności finansowej za nami. Własny serwer BLYNK działa. Pora przystąpić do drukowania pieniędzy. Dziś – jak nabić sobie kabzę dowolną ilością energii by bez ograniczeń móc korzystać z systemu BLYNK
Continue Reading…

SLIDER – wirtualny potencjometr w BLYNKu

By: | Post date: Listopad 9, 2017

BUTTON załatwi nam połowę potrzeb w aplikacji typu Smart Home Iot czy Inteligentnego Domu. Drugie 50% przypada na kilkadziesiąt pozostałych widgetów BLYNKa. No może nie dokładnie tak ale…  W zasadzie kolejne elementy BLYNKowej układanki realizują ,już tylko jakieś pojedyncze ale za to specyficzne funkcje trudne do obsłużenia przyciskiem. np.  odczyt czujników telefonu, prezentacja  graficznych wykresów czy obsługa terminala.  Nie wszystkie są niezbędne ale poprawiają komfort obsługi naszego systemu lub jego wygląd. Ale są jeszcze 2-3 widgety, bez których trudno sobie wyobrazić przyjazny panel sterujący Dziś popatrzymy więc na jeden z nich – wirtualny potencjometr czyli SLIDER 

Sygnał cyfrowy (np. dwustanowy 0/1) ma się nijak do sygnału analogowego. I to nie tylko w tym że jeden ma w określonym przedziale tylko dwie wartości (lub więcej ale dokładnie określoną liczbę) a drugi nieskończenie wiele. Ale i w tym, że wielkości analogowe mogą przyjmować wartości z baaaaardzo szerokiego przedziału. Taka na przykład oporność może się w praktyce zmieniać od mili omów (mΩ) do megaomów (MΩ) czyli lekko licząc 9 rzędów wielkości (109). Jeszcze gorzej jest z odległością – tu możemy mieć nanometry (10−9) cz Angstremy (10−10) i lata świetlne ( 1016 m).

Jeśli dla napięcia mamy wartość 100 to już coś wiemy. Możemy mieć wątpliwość co do jednostki (mnożnika) czy to jest 100 V , 100 mV (100 x 10−3 )  czy 100 kV(100 x 103 ). W systemach cyfrowych wartość 100 jest kompletnie bezużyteczna jeśli nie znamy przedziału w jakim może się ona zmieniać. I tak dla liczby 8  bitowej 100 oznacza ok 40% wartości maksymalnej a dla 16 bitowej 0,3 %. I to jeszcze nie wszystko. Dodatkowo musimy wiedzieć jakim rzeczywistym wartościom danej wielkości odpowiada minimum i maksimum naszej cyfrowej liczby. I tak jeśli cyfrowe 0 to 0 napięcia, a maksimum (dla 8 bitów to 255) odpowiada 5 V to liczba 100 oznacza  5/256 x 100 = 1.953125 V.

Ale cyfrowa wartość 100 ma jedną kolosalną zaletę – 100 oznacza DOKŁADNIE 100. W technice analogowej ustawienie wartości DOKŁDNIE 100 jest w praktyce niewykonalne.

Po co ten cały przydługi wstęp? Dla lepszego zrozumienia czym w aplikacji jest lub może być SLIDER. A pełni on jako element wyjściowy (sterujący) co najmniej dwie funkcje:

  1. ustawienie konkretnej liczby
  2. ustawienie wielkości analogowej

Ad.1 Ta funkcja jest dosyć oczywista.  Za pomocą tego elementu w bardzo prosty sposób możemy ustawić i błyskawicznie zmienić wartość jakiejś zmiennej w programie. Co prawda tylko jeśli jest to zmienna typu integer i tylko w zakresie -9999 do +9999 ale w większości przypadków to całkowicie wystarcza. A więc jeśli potrzebujemy ustawić i zmieniać np. czas załączenia grzania, świecenia lub generalnie ustawić jakiś licznik czy timer widget SLIDER będzie nieoceniony.

Ad.2 W przypadku zmian wartości analogowej sprawa jest bardziej skomplikowana. Po pierwsze nasz mikrokontroler musi mieć WYJŚCIE analogowe czyli przetwornik C/A zamieniający liczbę na wielkość napięcia. Dostępna w większości układów funkcja PWM (trochę wiedzy o PWM tu >>> i tu>>>> i tu>>>>) jest takim udawanym sygnałem analogowym. Bowiem w tym przebiegu stała jest jedynie wartość średnia napięcia ale amplituda zmienia się i to kilkaset razy na sekundę Dopiero przepuszczenie sygnału przez filtr dolnoprzepustowy lub zastosowanie układu scalonego zamieniającego PWM na sygnał analogowy da nam na wyjściu rzeczywiste stałe napięcie. Ale i takie ułomne wyjście analogowe jak PWM nadaje się znakomicie w wielu „analogowych” zastosowaniach typu zmiana jasności świecenia leda czy prędkości obrotu silnika prądu stałego. Ba, w tych zastosowaniach układ PWM jest lepszy niż zasilanie regulowanym prądem stałym ze względu na minimalne straty w regulatorze. Nie zmienia to jednak faktu, iż klasyczne wyjście analogowe powinno nam dać stały poziom napięcia, którym możemy sterować odpowiednimi komendami procesora. W takim przypadku SLIDER pozwala nam zdalnie zmieniać wartość napięcia na wyjściu analogowym.

Zakres zmian naszego wirtualnego potencjometru możemy sobie dowolnie ustawić w zakresie od 0 do 9999. Jak prawidłowo dobrać zakres pracy SLIDERa do przetwornika C/A lub PWM w naszym mikrokontrolerze? To zależy jaki efekt chcemy uzyskać. Jeśli zależy nam na wykorzystaniu w pełni rozdzielczości przetwornika maksymalna wartość suwaka musi odpowiadać liczbie wynikającej z tej rozdzielczości (dla przetwornika 8 bitowego = 255, 10 bitowego 1024, 12 bitowego 4096). Wtedy zmiana o 1 na suwaku spowoduje zmianę na wyjściu analogowym o jedną jednostkę napięcia wyjściowego przetwornika  =  Umax/2rozdzielczość

Możemy jednak tak ustawić SLIDER by wybrana jego wartość bezpośrednio odpowiadała napięciu na wyjściu mikroprocesora. Weźmy dla przykładu przetwornik C/A o napięciu maksymalnym 5 V i rozdzielczości 10 bitów Możemy więc ustawić wartość maksymalną SLIDERa na

  • 5 i uzyskamy regulację co 1 V
  • 50  uzyskamy regulację co 0,1 V
  • 500 da nam możliwość zmiany co 10 mV
  • 5000 powinno pozwolić na zmianę napięcia wyjściowego co 1 mV

Ale przetwornik 10 bitowy pozwala na zmianę co  5 mV (dla napięcia wyjściowego 5V)  więc ostatnie ustawienie nie ma większego sensu. By uzyskać rozdzielczość 1mV musielibyśmy zastosować co najmniej 12 bitowy przetwornik C/A. Dodatkowo, zmiany wartości na suwaku nie będą dokładnie odpowiadały zmianom napięcia na wyjściu przetwornika. 5V/1024 jest równe 0,0048828125 a nie 0,005 więc nie uda nam się dokładnie skalibrować wskazań SLIDERa z napięciem wyjściowym. Oczywistym jest, iż w naszym programie musimy wprowadzić procedurę przeliczania wskazań potencjometru na odpowiednią liczbę sterującą przetwornikiem C/A tak by uzyskać maksymalnie zbliżenie obu wartości.

Praktyczne aspekty konfiguracji tego widgeta będą jeszcze omawiane w rozdziale Przykłady.

SLIDER jako wskaźnik

Piękne jest to, że i ten widget jest elementem dwukierunkowym. Może nie tak wszechstronnym jak BUTTON ale w porównaniu z rzeczywistym potencjometrem bije go na głowę.

Standardowo możemy dowolnie zmieniać kolor SLIDERa komendą

Blynk.setProperty(V1, "color", _RED)

oraz tekst na etykiecie

Blynk.setProperty(V1, "label", "jakis tekst");

Najciekawszym jednak efektem możliwym do uzyskania jest analogowy wskaźnik liniowy

Wysyłając jakąś wartość na pin wirtualny przyłączony do potencjometru możemy sterować położeniem suwaka  standardową procedurą

Blynk.virtualWrite(V1, liczba);

Co w efekcie daje nam bardzo użyteczny wskaźnik

Inne właściwości

Slider jest widgetem o zmiennym kształcie i tak naprawdę mamy dwa takie same elementy – ale o kierunku poziomym i pionowym.

Ważną funkcją elementu jest możliwość zdalnego ustawiania zakresów minimum i maksimum. Jest to wygodny sposób wstępnej kalibracji parametrów pracy widgetu lepszy  niż ustawianie ich ręcznie w aplikacji. Do tego celu służą specjalne funkcje

Blynk.setProperty(V1, "min", -55);
Blynk.setProperty(V1, "max", 102);

Wśród zbioru widgetów nie ma odpowiednika potencjometru obrotowego. A szkoda.

Z doświadczenia mogę stwierdzić, iż widget SLIDER jest baaardzo użytecznym elementem szczególnie w układach testowych i prototypowych. Zamiast instalować jakikolwiek potencjometr do płynnej zamiany parametrów w programie dużo szybciej i taniej jest to zrobić BLYNKowym potencjometrem. I jeszcze odczytać na nim bieżącą wartość obserwowanej wielkości. I wszystko zdalnie i bez jednego choćby lutowania. Po prostu wirtualna elektronika na wyciągnięcie ręki.

BLYNK za free – a nawet za darmochę

By: | Post date: Listopad 5, 2017

Nie trzeba budować browaru by napić się piwa. Fakt. Ale warto jeśli chcemy mieć piwo bez ograniczeń a budowa browaru nic (albo niewiele) nas kosztuje. Analogicznie co zrobić by mieć forsę… Odziedziczyć, ukraść, rozbić bank. Ale lepiej zbudować mennicę lub bank, które wydrukują nam dowolną ilość pieniędzy lub cyfr na koncie.

Dziś o budowie własnego banku – pardon – serwera BLYNK pozwalającego na budowę nieograniczonej liczby projektów i to całkowicie (no prawie) za darmo. BLYNK całkowicie za darmochę? Oczywiście. Inaczej ten blog nie miałby żadnego sensu. Continue Reading…

Jak zacząć zabawę z BLYNK

By: | Post date: Listopad 2, 2017

A tu artykuł ładnie opisujący krok po kroku jak zacząć zabawę z BLYNK. Przykład oparty jest na module NodeMCU a więc z ESP8266. Mikrokontroler ten idealnie pasuje do filozofii BLYNKa i jednocześnie pozwala na korzystanie z najbardziej przyjaznego narzędzia programowania procesorów – ARDUINO IDE.

Patryk Mądry – NodeMCU – przykład użycia aplikacji Blynk

Obsługa pinów wirtualnych BLYNK w kodzie mikrokontrolera

By: | Post date: Listopad 1, 2017

Piny rzeczywiste znakomicie ułatwiają budowę prostych układów zdalnego sterowania w oparciu o Arduino i BLYNKa. Mają jednak sporo ograniczeń i w wielu miejscach utrudniają lub wręcz uniemożliwiają rozbudowę systemu o własne procedury czy zewnętrzne biblioteki. Programiści BLYNKa zaimplementowali więc ciekawy mechanizm przesyłania danych poprzez piny wirtualne. Na pierwszy rzut oka wyglądają jak klasyczne zmienne programowe. Ale tak naprawdę są indeksami (adresami) dużo bardziej złożonych procedur dostępnych w bibliotekach BLYNKa. Prawdziwa moc twórcza systemu zawarta jest właśnie w tych pinach i tych procedurach – trzeba im więc przyjrzeć się nieco dokładniej. Continue Reading…

Piny rzeczywiste BLYNKa w programie mikrokontrolera

By: | Post date: Październik 28, 2017

Cyfrowe i analogowe to podstawowe sygnały obsługiwane przez układy elektroniczne. Są to informacje proste gdzie treścią jest wielkość (wartość) sygnału. Ale treść może zostać zakodowana w następujących po sobie kolejnych zmianach wartości. Dla napięć analogowych określa się je mianem sygnałów z modulacją (napięcia, częstotliwości, fazy) dla cyfrowych jest to grupa zwana protokołami.

Ogromną przewagą mikrokontrolerów w stosunku do układów dyskretnych jest łatwość obsługi zarówno sygnałów modulowanych jak i protokołów. Zwłaszcza protokołów co jest dosyć oczywiste.  Dziś pierwszy post z serii obsługi danych przesyłanych w systemie BLYNK. O sygnałach prostych – czyli pinach analogowych i cyfrowych.  Continue Reading…

LED widget – aplikacja BLYNK cosik do nas mryga

By: | Post date: Październik 20, 2017

Otaczająca nas rzeczywistość jest dla naszych zmysłów  światem analogowym. Jesteśmy wciąż atakowani nieskończnoną ilością barw, odcieni szarości, nieogarniętą gamą smaków czy zapachów. Ale w wielu sytuacjach zwłaszcza nagłych, kryzysowych czy awaryjnych potrzebujemy jedynie najważniejszych informacji. Tych niezbędnych do podjęcia natychmiastowej decyzji. Dwustanowych. BÓL. I ręka sama cofa siś od gorącego żelazka.

TAK/NIE, prawda/fałsz, 0/1, białe/czarne …. Listę taką można ciągnąć bez końca. I o ile stany te są zdefiniowane jednoznacznie to rodzaj sygnału – co będzie naszym TAK a co NIE – jest już sprawą umowną i mocno zależną od potrzeb,możliwości i historycznych doświadczeń. Lampki sygnalizacyjne należą do tej kategorii prostych wskaźników.  I tu zaczniemy opis widgetów BLYNKa. Continue Reading…

Widgety BLYNK – profesjonalna aplikacja IoT na telefon w 5 minut

By: | Post date: Październik 12, 2017

Kupujemy oczami.

I choć siła i możliwości BLYNKa ukryte są w jego wnętrzu tj. w mikroprocesorowych bibliotekach i kodzie serwera to na jego atrakcyjność dominujący wpływ ma wygląd telefonicznej aplikacji. Ta zaś,  podobnie jak starszy brat bliźniak – Arduino, jest zbiorem dowolnie układanych puzzli.

Co z tego potrafimy wyczarować zależy w większości od naszej wyobraźni i tylko trochę od umiejętności.  Na wyobraźnię nie ma mocnych ale odrobinę wiedzy da się załatwić. Choć zajmie to dobrych kilkadziesiąt odcinków by wszystkie te klocki szczegółowo opisać. Na początek trochę wiedzy ogólnej. Continue Reading…

Translate »