Historia jednej znajomości – BLYNK z wizytą u Tomka

By: | Post date: Luty 22, 2018

Cześć, mam na imię Tomek i na prośbę Krzysztofa prowadzącego ten blog chciałbym opisać początki mojej przygody z Blynkiem.

Moja historia, związana szerzej z elektroniką, zaczęła się zaledwie kilka miesięcy temu, zdaje się w październiku 2017. Jako, że zbliżam się do 40 wydaje się, że trochę późno zacząłem. Zawsze ciągnęło mnie do elektroniki, tylko nigdy nie było czasu, albo wystarczających chęci. Aż kiedyś przeglądając neta natknąłem się na kursy Forbota (to nie krypto reklama:-)), szybka decyzja, zakup elementów do kursu elektroniki 1 i 2, potem technika cyfrowa i z wielkimi obawami kurs Arduino 1 i 2.

Wciągnęło mnie niesamowicie, wszelkie obawy prysły, dawałem radę!!!
Przerobiłem wszystkie odcinki kursów, ciągle drążąc różne tematy na forum i wkurzając doświadczonych programmerów swoimi problemami. Jakaż satysfakcja z samodzielnego blink without delay, LCD, kilku czujników na „jednym przewodzie” czy sterowania diodami programowalnymi.

Jako, że od dawna bawiłem się elektroniką „analogową” w swojej domowej „automatyce”, krańcówki, włączniki czasowe, radiolinie, system monitoringu, szukałem możliwości podpięcia sterowania wszystkim z poziomu telefonu, internetu.
Był nawet taki kit na Conradzie, jakiś zestaw przekaźników sterowany przez internet, ale podchodziłem do tego jak pies do jeża, bo to coś trzeba było zaprogramować:-|…

Znając już pewne podstawy programowania Arduino, postanowiłem całkowicie przebudować swoją „magiczną skrzynkę” w piwnicy, w której miałem podłączone wszystkie najważniejsze elementy sterowania: bramy, oświetlenia, radiówki, monitoring. Nadeszła u mnie era cyfrowa:-D
Oczywiście od razu pomyślałem o sterowaniu z poziomu strony internetowej. Zacząłem poszukiwania w sieci i już nie pamiętam jak, ale natknąłem się na Blynka. Jakiś gość pisze, że to proste, łatwe i nawet początkujący da sobie radę. Pomyślałem, jaaaasne, ale skoro tak piszesz to spróbuję. Mignę sobie diodą. Jako, że temat mnie szczerze zainteresował, szybkie zamówienie i na drugi dzień u mnie paczka z arduino MEGA i ethernet shield. Kurier był o 12 a o 13 wyjazd do pracy… myślę sobie i tak się nie wyrobię ale popróbuję o co chodzi z tym Blynkiem. 15 minut na rejestrację, autoryzację, wyszukanie i wpisanie kodu… Ok, chwila prawdy: tap w telefonie i … DIODA SIĘ ZAŚWIECIŁA, WOOOOOW!!!, drugie tap i ZGASŁA!!! WOOOOW!!!

ASIA (do żony) „patrz zero kabelków, a naciskam w telefonie, a tu mi się dioda zaświeca, natychmiast!! i gaśnie!! i zrobiłem to w chwilę!! i sygnał idzie gdzieś przez serwer we Włoszech!! i WOOOOW!!!”, a żona z udawanym podziwem:-): „super”. I tyle:-)))
W zachwycie pomigałem sobie jeszcze trochę i do roboty, ale w pracy myślałem tylko kiedy wrócę i dalej będę kodował i próbował Blynka.

Wiedziałem już, że mam co chciałem. Sterowanie z poziomu telefonu, które nawet ja potrafię ogarnąć. W międzyczasie powstawał kod do mojej MEGI, który miał czytać dane z kilku czujników, sterować 8 przekaźnikami i wyświetlać to wszystko na LCD 20×4. Dodatkowo, na LCD kilka podmenu wyświetlających najwyższe i najniższe odczyty, reset pamięci tych odczytów, sterowanie przekaźnikami. Wszystko za pomocą pokrętła enkodera. Prawie dwu miesięczna walka z kodem, po godzinach, w nocy… nauka, próby i poprawki.
Kiedy już w miarę wszystko chodziło, postanowiłem w końcu dopisać linijki związane z Blynkiem. Jako, że już o nim trochę wiedziałem, to oprócz sterowania przekaźnikami za pomocą Buttonów, postanowiłem dołożyć do apki na telefonie odczyty z czujników. Usiadłem w sobotę po śniadaniu i zdziwienie, że po 3 godzinach miałem napisane linijki związane z Blynkiem, które wyświetlały mi na telefonie to samo co na LCD. Tylko, że kod na LCD pisałem przez kilkadziesiąt godzin!!!

Uruchomienie sketcha i kicha, wysyłanie z arduno do apki działa pięknie ale z apki do sprzętu tragicznie, zwiechy po kilka minut. Szybkie konsultacje z Krzychem i już wiem, cały kod do przeróbki. O tym że Blynk nie lubi delay wiedziałem, i tak od czasu jak poznałem millis() piszę bez delay, ale ułatwiałem sobie życie i stopery robiłem najprościej if(millis() – time1 > ileś tam), tak jak Blynk nie lubi delay, tak też nie lubi częstego wywoływania funkcji millis(). Mozolna zmiana stoperów na takie z biblioteki Timers.h i wgranie sketchu, wszystko śmiga!!!:-))

Byłem niezmiernie zadowolony, trzeba oczywiście bezwzględnie pamiętać o tym by ne wysyłać na serwer danych w głównej pętli. Sam się na tym złapałem, po którymś tam eksperymencie, że apka łączyła się z serwerem i natychmiast rozłączała i tak w kółko. Dopiero po dłuższej chwili poszukiwań i eliminacji różnych możliwości doszedłem do tego, że cały czas wysyłam kilka milionów razy na sekundę dane na serwer. Szybka zmiana kodu i w efekcie połączenie stabilne.
Należy pamiętać, że jeśli nie musimy czegoś wiedzieć natychmiast na telefonie, a możemy poczekać na informację np.5 sekund to umieszczajmy wysyłanie danych np. z czujników w timerach. Ja np. umieściłem wysyłanie danych z czujników na telefon w timerze który również steruje odczytem co minutę tych danych. Czyli kiedy mamy nowe, aktualne dane wysyłamy je również na apkę. Nie ma sensu częściej. Za to aktualizację stanu przekaźników mam co 3 sekundy.

Bo musicie wiedzieć, że moje przekaźniki są sterowane nie tylko z poziomu aplikacji, ale także z poziomu enkodera przy LCD, z poziomu włączników naściennych, a także radiolinii. Informację o tym, że stan przekaźników się zmienił otrzymuje apka na telefonie. Odpowiedni kod w arduino (Set.property…) ustawiam mi wtedy odpowiedni napis i kolor na buttonie odpowiadającym za konkretny przekaźnik.

Ok, przyjechał szwagier (elektryk z wykształcenia) i co robię? Chwalę się!! Chłop zachwycony apką, ale na mój LCD wyświetlający dane z czujników mówi, że mogłem sobie kupić coś kolorowego i większego. Jasne, ale ile to kosztuje i jak to oprogramować??
Wertowanie netu w poszukiwaniu informacji o wyświetlaczach LED, OLED, 2.3 cala, 5 cali. Sprawa za droga i przy moim poziomie wiedzy programistycznej nie do ogarnięcia. Ale nie dawało mi to spokoju, fajny byłby lepszy wyświetlacz, może by mi się udało zrobić podobne menu jak w apce na telefonie, kolorowe bo o dotyku nawet nie myślałem…
I nagle kurde olśnienie… a czemu nie zastosować drugiego telefonu jako wyświetlacza?? zaraz nie telefonu, tablet to jest to!!

Szybki podgląd na OLX i na drugi dzień mam wyświetlacz mojego systemu domowej automatyki. 8 cali, IPS, dotykowy, kolorowy, z dodatkowymi funkcjami:-) jak przeglądarka internetowa i gry:-)))….. tablet za 140zł od sąsiada!!!! Programowanie? Brak, cały kod już napisany pod telefon. Wystarczy zainstalować aplikację i zalogować się na serwer. I gotowe, DZIAŁA!!. Teraz tylko do kumpla żeby zrobił fajną ramkę do niego na ścianę i full happiness, a jeszcze we wrześniu nie wiedziałem co to arduino:-)

Tym to sposobem, LCD20x4 stał się niepotrzebny, ale że było mi szkoda poświęconego czasu na kodowanie(nauka oczywiście bezcenna), jaki samego wyświetlacza, stał się pomocniczy i cieszy oko w piwnicy. Jeden kolor, 4 linie ale jest.
Za to reprezentacyjnie rządzi BLYNK na tablecie i telefonach. Jeszcze tylko w telefonie wrzucenie widgeta z temperaturą zewnętrzną na ekran główny i nic więcej mi na razie do szczęścia nie trzeba:-D

Generalnie polecam Blynka wszystkim którzy tak jak ja są zieloni i boją się czy dają radę. To banalne. Jasne, ze trzeba siąść i poćwiczyć, poczytać, sprawdzić, po prostu nauczyć się z Blynka korzystać, ale jak frajda jak już działa!!!
Tym bardziej obeznanym również, możliwości jakie daje np. widgety Button, Menu, wirtualne piny są nie do przecenienia.

Moje obawy budzi jedynie co z tą platformą będzie się działo w przyszłości. Zrozumiałe są obawy bardziej doświadczonych programistów, że zawsze warto budować systemy autonomiczne, niezależne, nad którymi w pełni panujemy. W pełni to rozumiem i może kiedyś będę potrafił takie coś zbudować i oprogramować. Jednak żeby jeździć autem hybrydowym nie muszę znać każdej linijki kodu zapisanej w pamięci głównego procesora tego auta. Choć fajnie byłoby to znać i rozumieć to nie od razu Kraków zbudowano. I tak też traktuję moją naukę, moją przygodę z arduino i Blynkiem, który jest niesamowicie przyjazny dla początkujących. Tak był chyba pomyślany i napisany.
No cóż, pożyjemy zobaczymy.
Nie podzielam również niechęci do naprawdę skormnych opłat za dodatkowe widgety. Uważam, że należy wspierać tak fajne inicjatywy, choćby po to by trwały i się rozwijały. Choć własny serewer i nizależność kusi. Ale na razie nie te umiejętności, a prąd też kosztuje.

Krzysztofowi dziękuję za możliwość opowiedzenia mojej krótkiej historii z elektroniką i Blynkiem, a także za chęci i pomoc dla zielonego, w rozwiązywaniu problemów z nim związanych.
Pozdrawiam i zachęcam do spróbowania, bo warto. Satysfakcja gwarantowana!!

Tomek SOYER

I kolejna przybliżenie do wersji ostatecznej

 

Dodaj komentarz

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

Translate »