wtorek, 12 grudnia 2017

Router433 - jak programować. Schematy blokowe, grafy i takie tam różne automaty

Programowanie to sztuka wyborów. A że programiści to umysł ścisły przeważnie wybierają melodię co ją już raz słyszeli. Co ma jednak zrobić (nie)młody adept programowania, który nie słyszał praktycznie żadnej melodii? Może napisać własną....
No to dziś trochę zabawy z układaniem nowych melodii .. pardon .... programów.

niedziela, 3 grudnia 2017

Flash firmware ESP-12 / D1 MINI - jak wgrać nowe oprogramowanie AT

Chińskie kości z ESP8266 docierają do nas z różnym oprogramowaniem - najczęściej mocno nieaktualnym. Np. zakupione w tym roku moduły D1 MINI mają wsad z 2013 r. co objawiło się przy okazji mocno nieprzyjemnych samoistnych  resetów (poprzedni post). W takich przypadkach znalezienie przyczyny resetów należy rozpocząć od aktualizacji firmware. Dawno temu (jakiś rok z kawałkiem 😁 ) opisywałem sposób zmiany oprogramowania dla ESP-01. D1 MINI to tak naprawdę ESP-12F z dodatkami i wymaga nieco innego podejścia. Uaktualniły się też narzędzia do programowania nie mówiąc oczywiście o "wsadzie".  A więc powtórka z rozrywki - czyli jak przywrócić oryginalne oprogramowanie do ESP-12F zamontowane w sympatycznym D1 MINI.

niedziela, 19 listopada 2017

Router 433 MHz - łączymy różne systemy bezprzewodowe

Temat kołacze mi się od jakiegoś czasu - prosta uniwersalna bramka pozwalająca na współpracę różnych elementów i urządzeń bezprzewodowych pracujących w paśmie 433MHz. Dlaczego w tym? Jak w większości przypadków zdecydowała cena. Gotowe czujniki i elementy wykonawcze można kupić już za kilkanaście zł. Jest ich naprawdę sporo. Co więcej duża część z nich wykonana jest w wersji bateryjnej co znakomicie ułatwia montaż i uruchomienie oraz powoduje, iż cały system jest niesłychanie elastyczny i mobilny. Taki router  powinien w prosty sposób pozwalać na przyłączanie dowolnych czujników i elementów wykonawczych pracujących w paśmie 433 MHz. Dodatkowo całością można by sterować z telefonu lub komputera dając sobie szansę na dodatkowe funkcjetakiego systemu. Niby nic nowego w stosunku do projektu BRAMA.
Niby - a jednak...

środa, 18 października 2017

3,2,1 BLYNK na start - GrzyboSuszarka w telefonie

Model grzybosuszarki z dumnie zaprogramowanym automatem skończonym działa. Wiem, że działa choć słabo to widać. Bo co można stwierdzić patrząc na dwa LEDy? I co można ustawić jednym przyciskiem dostępnym w SONOFFie? Przyznaję - niewiele. Gdyby nie podłączenie do monitora Arduino figę bym wiedział co dzieje się wewnątrz urządzenia. Przycisk wystarczy do załączania/wyłączania urządzenia a nawet do zmiany programów pracy (dzięki autorowi OneButton.h) ale to koniec możliwości. A gdzie zmiana nastaw temperatur czy czasu pracy urządzenia? A jak odczytać aktualną temperaturę GS, pomierzyć pobór energii czy łączny czas suszenia?

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.

czwartek, 5 października 2017

finite state machine (automaty skończone) w praktyce Arduino - GrzyboSuszarka po nowemu

Pierwszy raz próbuję świadomie napisać program z zastosowaniem automatu skończonego. Świadomie - wcześniej oczywiście mówiłem prozą ale w stanie pewnej pomroczności. Nazwanie stanów programu a w zasadzie ich ponumerowanie samo poukładało strukturę wewnętrzną programu i dowiązało do nich potrzebne instrukcje i procedury. Najważniejszą jest decyzja jak stany będą w programie zmieniane określonymi sygnałami (wejściowymi) i w jaki sposób poszczególne stany zostaną obsłużone tzn jak wygenerują sterowania (sygnały wyjściowe).
Do tej pory w programach określony stan na wejściu modułu wywoływał program obsługi w następstwie czego generowane było sterowanie. W automacie skończonym sygnał powoduje jedynie zmianę stanu wewnętrznego programu. Obsługa zaś stanów wewnętrznych czyli generowanie sterowań wyjściowych dokonywana jest w całkiem innym miejscu. Może tego nie widać na pierwszy rzut oka ale to  naprawdę jest REWOLUCJA.

czwartek, 21 września 2017

Program z pamięcią czyli automat skończony i Arduino

Grzybosuszarka miała być banalnym programem demonstracyjnym wykorzystania zdalnego sterowanego przełącznikiem SONOFF. Program jest rzeczywiście banalny ale problemy jakie zaczynają się ujawniać przy jego analizie już nie. Potknąłem się o zwis BLYNKa (jakkolwiek by to nie brzmiało) i o bibliotekę BUTTON - patrz poprzedni wpis. Teraz głowę zaprząta mi finite state machine a po naszemu automat skończony. Teoria automatów to przecież klucz do zrozumienia nowoczesnej elektroniki cyfrowej a mikroprocesorów w szczególności. Automat More'a, Mealy'ego jest w każdym Arduino UNO czy NANO. Trochę jestem zaskoczony przeniesieniem teorii automatów na poziom programowania - choć nie powinienem. W końcu programiści wirtualizują kolejne elementy rzeczywistości.... Ale poważnie - automat skończony znajdzie zastosowanie w praktycznie każdym bardziej złożonym niż miganie LEDem programie a i w tym także. I znakomicie ułatwia panowanie nad integralnością  kodu i realizowanych przezeń funkcji. A więc dziś trochę teorii dla praktyki - automaty skończone na start