Bez wyświetlacza LCD i klawiatury lub kilku potencjometrów się nie da. Możemy zawsze dołożyć coś większego - ot np. tablet jak w lodówce LG. I grzybosuszarka będzie pod naszą całkowitą kontrolą. Można tylko po co? Każdy ma telefon i każdy może mieć BLYNKa. A wtedy i dwa LEDy z przyciskiem w sterowniku grzybosuszarki to za dużo by sterować urządzeniem leżąc wygodnie na plaży w Juracie (no może nie w październiku). Dziś BLYNK w grzybosuszarce.
No właśnie - po co jeszcze BLYNK do prostego układu elektronicnego?. Zrobić kilka testów ustawić wszystkie parametry grzybosuszarki na sztywno zaszyć w urządzeniu i do roboty.... Ale tu się Panie dobrobytu zachciewa zimna woda osobno ciepła osobno i jeszcze żeby zmieniać dowolnie parametry w czasie pracy sterownika i obserwować wszystko na telefonie.
A nie wystarczyłby czasowy zegar za 12 PLN? Pewnie tak. Ale jeśli w sterowniku grzybosuszarki mamy 80 MHz procesor z 4Mb pamięcią programu, wszystko za 25 zł z dostawą i darmowy BLYNK to żal z tego nie skorzystać.Jeszcze kilka lat temu taki mikroprocesorowy sterownik trzeba by mocno rozbudować o klawiaturę i wyświetlacz. Do tego porządny kawał zasilacza i dobrych kilkaset linii kodu. I już za miesiąc lub dwa grzybosuszarka z pełnym sterowaniem byłaby gotowa do testów.
Dziś kupujemy SONOFFa w koszcie wykonania jego płytki drukowanej i po 3-4 godzinach testujemy gotowy produkt w półprofesjonalnym wykonaniu. A w telefonie mamy całe centrum zarządzania. Jest inteligentny dom, inteligentne nawadnianie może być i inteligentna grzybosuszarka. Z inteligentną lodówką jeszcze poczekam. I tak powoli dajemy się wciągnąć w wirtualny świat producentów elektronicznych gadżetów. Dajemy i to bardzo szybko.
Stan projektu
Mam więc działający w oparciu o model automatu skończonego (finite state machine) układ testowy na module D1 MINI. Teraz czas na bajery - dodanie konfiguracji ustawień początkowych i możliwość pełnego sterowania i kontroli urządzenia. I wszystko bez konieczności dolutowania jakiegokolwiek elementu - wszystko zostanie stworzone w wirtualnym świecie BLYNKa.
Sterowanie pracą grzybosuszarki
Popatrzmy jeszcze raz na schemat działania urządzenia. Cyfry w kółkach to stany automatu skończonego grzybosuszarki (zmienna stan_programu). Odczyt zmiennej w telefonie pokaże nam aktualny stan pracy urządzenia. Jeśli aplikacją w telefonie będziemy zmieniać wartość stan_programu uzyskamy zdalną zmianę modów pracy. To ogromna zaleta automatów skończonych - możliwość pełnej kontroli urządzenia jednym prostym parametrem.
Przy takim rozwiązaniu sterowanie grzybosuszarką z telefonu jest banalnie proste. Trzeba tylko odczytać lub wysłać cyfry 0,1,2,3. Można do tego ciągu dodać liczby 12 i 13 wtedy kontrola nad urządzeniem będzie pełna. Ale jest jeden problemem - wybór rozwiązania. To dylemat z supermarketu przed półką z mnogością gatunków makaronów (panie) a lub piwa (my). Podobnie jest z BLYNkiem - ten sam wynik można uzyskać na kilka sposobów w zależności od zastosowanych widgetów. Co wybrać by aplikacja była czytelna, prosta i elegancka w obsłudze? Popatrzmy na poniższe przykłady.
Wersja I - Kopia sterowania SONOFFa - trzy widgety
Wykorzystam trzy widgety :
- Odczyt modu pracy wyświetlaczem (by nie utrudniać sobie życia) pin V20,
- sterowanie jednym przyciskiem V19,
- wskaźnik zał/wył grzybosuszarki - LED V18.
Kod programu głównego obsługi wyjść automatu grzybosuszarki w porównaniu z poprzednim powiększył się o kilka linijek procedur BLYNKa.
W efekcie ta to wygląda na ekranie aplikacji:
LED V18 jest wyłączony gdy wyłączone jest urządzenie (stan 0). Gdy urządzenie jest wyłączone w trakcie procedury sterowania temperaturą lub czasem LED pozostaje załączony ale zmienia kolor na niebieski. Pierwsza sekwencja zmian modów pracy dokonywana jest przyciskiem w aplikacji, druga - przyciskiem w urządzeniu. Na dole ekranu pomiar temperatury i tradycyjny migający LED kontroli pracy urządzenia.
Wersja II - Kopia sterowania SONOFFa - dwa widgety
Zrobię identyczną funkcjonalność jak w wersji I ale z zastosowaniem dwu zamiast trzech widgetów
Wynik:
Wyrzucam LEDa a jego funkcje przejmuje wyświetlacz a konkretnie sterowanie jego kolorami.
Wersja III - Kopia sterowania SONOFFa - jeden widget
I znowu ta sama funkcjonalnośc jak poprzednio ale wszystko oparte tylko o jeden widget!!
I efekt końcowy:
Wyrzucam i LEDa i wyświetlacz a wszystkie funkcje przejmuje widget przycisk. Oj lubię takie ćwiczenia umysłowe.
Wersja IV - jeden ale ciekawy widget
Najłatwiej przełączanie stanów pracy zrobić za pomocą widgetu MENU, w którym kolejne pozycje odpowiadają kolejnym stanom grzybosuszarki. Wybierając konkretną pozycję menu możemy ustawić wewnętrzny stan grzybosuszarki. Dołączam do widgetu MENU pin V20 i wartość tego pinu wpisuję do zmiennej stan_programu. Z jedną wszakże poprawką - należy odjąć 1 gdyż numeracja stanów zaczyna się od zera a numeracja pozycji MENU od jeden. Stan 12 i 13 (przesunięte także o jeden) również wpisałem do menu
Podobnie jak w przypadku przycisku również widget MENU odbiera dane z urządzenia więc może służyć jako wyświetlacz informacji. Jeśli na pin V20 wyślemy odpowiednią liczbę (nr stanu) w widgetcie zostanie wyświetlona odpowiadająca tej liczbie pozycja. I znowu by zgrać numerację stanów z pozycjami menu należy do liczby dodać 1. Oczywiście i w tym elemencie mamy opcję zmiany kolorów więc wszystkie powyższe funkcje uda się upchnąć w tym jednym widgecie.
I tak można się bawić bez końca klockami BLYNKa dla dużych chłopaków......
Teoretycznie wybór rozwiązania nie ma większego znaczenia dla działania urządzenia. Ale w praktyce to wygląd aplikacji i przyjazność jej obsługi będzie widocznym efektem naszej pracy. Podobnie jak ładna i estetyczna obudowa naszego układu zwiększa satysfakcję z wykonanego dzieła. Watro więc przetestować różne warianty rozwiązań oferowane przez BLYNKa by wybrać to co najbardziej lubimy. A kolega i tak będzie kręcił nosem (o żonie nie wspominając).
W następnym wpisie dokończenie budowy aplikacji dla grzybosuszarki. Pozostały jeszcze do zrobienia konfiguracje temperatur i czasów przełączania więc cd niewątpliwie winien nastąpić.
Stan projektu
Mam więc działający w oparciu o model automatu skończonego (finite state machine) układ testowy na module D1 MINI. Teraz czas na bajery - dodanie konfiguracji ustawień początkowych i możliwość pełnego sterowania i kontroli urządzenia. I wszystko bez konieczności dolutowania jakiegokolwiek elementu - wszystko zostanie stworzone w wirtualnym świecie BLYNKa.
Sterowanie pracą grzybosuszarki
Popatrzmy jeszcze raz na schemat działania urządzenia. Cyfry w kółkach to stany automatu skończonego grzybosuszarki (zmienna stan_programu). Odczyt zmiennej w telefonie pokaże nam aktualny stan pracy urządzenia. Jeśli aplikacją w telefonie będziemy zmieniać wartość stan_programu uzyskamy zdalną zmianę modów pracy. To ogromna zaleta automatów skończonych - możliwość pełnej kontroli urządzenia jednym prostym parametrem.
Przy takim rozwiązaniu sterowanie grzybosuszarką z telefonu jest banalnie proste. Trzeba tylko odczytać lub wysłać cyfry 0,1,2,3. Można do tego ciągu dodać liczby 12 i 13 wtedy kontrola nad urządzeniem będzie pełna. Ale jest jeden problemem - wybór rozwiązania. To dylemat z supermarketu przed półką z mnogością gatunków makaronów (panie) a lub piwa (my). Podobnie jest z BLYNkiem - ten sam wynik można uzyskać na kilka sposobów w zależności od zastosowanych widgetów. Co wybrać by aplikacja była czytelna, prosta i elegancka w obsłudze? Popatrzmy na poniższe przykłady.
Wersja I - Kopia sterowania SONOFFa - trzy widgety
Wykorzystam trzy widgety :
- Odczyt modu pracy wyświetlaczem (by nie utrudniać sobie życia) pin V20,
- sterowanie jednym przyciskiem V19,
- wskaźnik zał/wył grzybosuszarki - LED V18.
Kod programu głównego obsługi wyjść automatu grzybosuszarki w porównaniu z poprzednim powiększył się o kilka linijek procedur BLYNKa.
void GSon() {
Serial.println("GS on");
digitalWrite(led_green, LOW);
Blynk.setProperty(V18, "color", _RED); //LED
}
void GSoff() {
Serial.println("GS off");
digitalWrite(led_green, HIGH);
Blynk.setProperty(V18, "color", _BLUE);
}
void GSmain() // główna procedura GS stanów wyjściowych
{
switch (stan_programu) {
case 1: {
GSon();
Blynk.virtualWrite(V18, 255); // LED on
Blynk.virtualWrite(V20, "ZAL"); //wyświetlacz
} break;
case 2: {
GSon();
Blynk.virtualWrite(V18, 255);
Blynk.virtualWrite(V20, "TEMP");
if (temperature >= tempoff)stan_programu = 12;
} break;
case 12: {
GSoff();
if (temperature <= tempon)stan_programu = 2;
} break;
case 3: {
gstime++;
GSon();
Blynk.virtualWrite(V18, 255);
Blynk.virtualWrite(V20, "CZAS");
if (gstime >= timeon) {
gstime = 0;
stan_programu = 13;
}
} break;
case 13: {
Serial.println(gstime);
gstime++;
GSoff();
if (gstime >= timeoff) {
gstime = 0;
stan_programu = 3;
}
} break;
default:
{
GSoff();
stan_programu = 0;
Blynk.virtualWrite(V18, 0);
Blynk.virtualWrite(V20, "WYL");
} break;
}
}
BLYNK_WRITE(V19) //zadawanie programu z aplikacji - przycisk
{
int i = param.asInt();
if (i == 1) {
stan_programu = stan_programu % 10;
stan_programu++;
stan_programu = stan_programu % 4;
}
}
W efekcie ta to wygląda na ekranie aplikacji:
LED V18 jest wyłączony gdy wyłączone jest urządzenie (stan 0). Gdy urządzenie jest wyłączone w trakcie procedury sterowania temperaturą lub czasem LED pozostaje załączony ale zmienia kolor na niebieski. Pierwsza sekwencja zmian modów pracy dokonywana jest przyciskiem w aplikacji, druga - przyciskiem w urządzeniu. Na dole ekranu pomiar temperatury i tradycyjny migający LED kontroli pracy urządzenia.
Wersja II - Kopia sterowania SONOFFa - dwa widgety
Zrobię identyczną funkcjonalność jak w wersji I ale z zastosowaniem dwu zamiast trzech widgetów
Wynik:
Wyrzucam LEDa a jego funkcje przejmuje wyświetlacz a konkretnie sterowanie jego kolorami.
Wersja III - Kopia sterowania SONOFFa - jeden widget
I znowu ta sama funkcjonalnośc jak poprzednio ale wszystko oparte tylko o jeden widget!!
I efekt końcowy:
Wyrzucam i LEDa i wyświetlacz a wszystkie funkcje przejmuje widget przycisk. Oj lubię takie ćwiczenia umysłowe.
Wersja IV - jeden ale ciekawy widget
Najłatwiej przełączanie stanów pracy zrobić za pomocą widgetu MENU, w którym kolejne pozycje odpowiadają kolejnym stanom grzybosuszarki. Wybierając konkretną pozycję menu możemy ustawić wewnętrzny stan grzybosuszarki. Dołączam do widgetu MENU pin V20 i wartość tego pinu wpisuję do zmiennej stan_programu. Z jedną wszakże poprawką - należy odjąć 1 gdyż numeracja stanów zaczyna się od zera a numeracja pozycji MENU od jeden. Stan 12 i 13 (przesunięte także o jeden) również wpisałem do menu
Podobnie jak w przypadku przycisku również widget MENU odbiera dane z urządzenia więc może służyć jako wyświetlacz informacji. Jeśli na pin V20 wyślemy odpowiednią liczbę (nr stanu) w widgetcie zostanie wyświetlona odpowiadająca tej liczbie pozycja. I znowu by zgrać numerację stanów z pozycjami menu należy do liczby dodać 1. Oczywiście i w tym elemencie mamy opcję zmiany kolorów więc wszystkie powyższe funkcje uda się upchnąć w tym jednym widgecie.
I tak można się bawić bez końca klockami BLYNKa dla dużych chłopaków......
Teoretycznie wybór rozwiązania nie ma większego znaczenia dla działania urządzenia. Ale w praktyce to wygląd aplikacji i przyjazność jej obsługi będzie widocznym efektem naszej pracy. Podobnie jak ładna i estetyczna obudowa naszego układu zwiększa satysfakcję z wykonanego dzieła. Watro więc przetestować różne warianty rozwiązań oferowane przez BLYNKa by wybrać to co najbardziej lubimy. A kolega i tak będzie kręcił nosem (o żonie nie wspominając).
W następnym wpisie dokończenie budowy aplikacji dla grzybosuszarki. Pozostały jeszcze do zrobienia konfiguracje temperatur i czasów przełączania więc cd niewątpliwie winien nastąpić.
101
Brak komentarzy:
Prześlij komentarz