Duży może więcej....
Od chwili zmuszenia ESP8266 do pracy nie mam już problemów z dostępnością pamięci w małym ATMELu-328. Największy kod BRAMA4 obsługujący wszystko co do tego czasu zaimplementowałem w domowym IoT zajmuje niecałe 20KB. Przerzucenie BLYNKa do ESP-01 dało jeszcze jeden pozytywny aspekt - cały system automatycznie przechodzi w stan pracy autonomicznej przy braku połączenia z siecią lub serwerem BLYNK. W porównaniu z BLYNKiem zainstalowanym w NANO praktycznie przejmującym kontrolę nad procesorem przy braku połączenia taki stan to spełnienie marzeń.A więc 80MHz traktor dzielnie ciągnie wózek inteligentnego domu. ESP-01 nie ma jednak żadnych dodatkowych portów możliwych do swobodnego wykorzystania toteż szansa na obciążenie jego taczki jest już niewielka. Ale gdy pomyślę, że dla powiększenia pamięci NANO wydałbym 10-20 zł to rozwiązanie z dodatkowym ESP-01 (1,6$) jako rozszerzeniem pamięci programu wydaje się super optymalne. A wszystko to niejako przy okazji instalacji WiFi bez, której cała zabawa w IoT pozbawiona jest sensu.
ESP-01 pracuje u mnie jak wzorcowy SLAVE pod komendą z małego NANO przejmując na siebie całą obsługę BLYNK i WiFi. A wszystko to jest sterowane banalnie prostym protokołem opartym na stringu.
"Kxx:yyy" gdzie K >komenda xx > nr vPin : > separator yyy > dane
i to wszystko czego potrzebuje ESP-01 by poprawnie komunikować się z BLYNK i wykonywać zlecone mu zadania
Cóż więc takiego robi nasz chińczyk:
Wszystkie procedury związane z połączeniem z BLYNKiem są w programie głównym.
BLYNK_WRITE_DEFAULT() (30-39) odczytuje po resecie i wysyła do NANO wszystkie zapamiętane stany vPinów.
Blynkwrite(String str2) (41-67) przetwarza otrzymane z NANO komendy na polecenia BLYNK lub wykonuje je wewnątrz ESP-01.
Na końcu programu mamy procedury migania ledami dla celów kontrolnych. Program główny wygląda nader skromnie.
ESP-01 odpowiada przede wszystkim za nawiązanie i obsługę połączenia WiFi. Ale nie zobaczymy tego w kodzie programu. Wszystko odbywa się na poziomie sprzętowym a niezbędne komendy do uruchomienia całej procedury zajmują jedynie kilka linijek (205-227).U mnie więcej bo dodana została dodatkowo procedura zmiany domyślnych nastaw logowania do WiFi. Idea opisana jest tu>>>> ale próba implementacji tej funkcjonalności w programy BRAMA kończyła się niepowodzeniem przez brak pamięci w NANO. Dopiero układ dwuprocesorowy pozwolił mi ponownie wrócić do pomysłu i to z pełnym sukcesem. Aktualna biblioteka pozwala zmienić dane logowania WiFi przy użyciu terminala BLYNK i jednego vPrzycisku. Nowe dane logowania zapamiętywane są w EEPROMie.
Biblioteka "transmit.h" spełnia funkcję identyczną do tej w NANO tj. obsługuje łącze serialowe dla wymiany danych z drugim procesorem. Nic tu specjalnego nie ma poza odbiorem w poolingu danych z RS232 i sprawdzeniem poprawności odebranego kodu. To skromne zadanie wzbogaciłem o możliwość "podglądania" odbieranych i wysyłanych danych na serialu i terminalu ESP. By nie zaśmiecać transmisji i nie generować nadmiernego ruchu w domowym internecie funkcje podglądu są zdalnie załączane vPrzyciskami V32 i V33. Taki sam mechanizm został dodany do NANO stąd dwie dodatkowe zakładki w aplikacji telefonu służące jedynie celom testowym. Baaaaardzo przydatna funkcjonalność.
Teraz kilka tygodni testów i zobaczymy co jeszcze trzeba będzie dodać lub poprawić
Przed nami święta więc
Spokojnych Pogodnych Świąt Bożego Narodzenia
I czekamy na cd .....
Brak komentarzy:
Prześlij komentarz