niedziela, 25 marca 2018

sterownik pompy CWU ver. 2.0 - destrukcja IoT cd

Mówiłem już, że zamierzam rozwalić mój domowy IoT na drobne kawałki ? Chyba tak ale powtórzę. Dość upakowywania wszystkich funkcji w jednym mikroprocesorowym kombajnie. Dlaczego? Spróbujcie cokolwiek zmienić w pieczołowicie dopracowanym i pięknie działającym systemie. Horror. I nie tylko w tym, że większość czasu zabiera śledztwo w rozwikłaniu misternie ukrytych funkcji programu. Cały rozbebeszony sterownik leży na stole i czeka cierpliwie na kolejną wersję programu. A tymczasem trwają nerwowe poszukiwania nie używanego od wieków pilota gdyż nie można przez tydzień otworzyć bramy telefonem. To potrafi wkurzyć. Basta. Każda funkcja dostaje swojego własnego master-slave. Dziś część 2 - o wydzieleniu sterowania pompą CWU.
Układ sterowania pompą CWU to już historia tego bloga. Ale jak widać będzie się to to obijać po wpisach jeszcze czas jakiś. Postanowiłem zrobić układ minimum. Dałem tylko to co niezbędne by cieszyć się ciepłą wodą w oddalonej od kotłowni łazience nie czekając aż spłynie cały jej zimny zasób.

Konfiguracja układu pozostaje bez zmian. Bezprzewodowa czujka PIR, sterownik jako translator protokołów, repiter i przekaźnik czasowy i bezprzewodowe gniazdo ELRO. Nawet rysunku nie muszę specjalnie zmieniać. Pożegnałem jedynie stare dobre NANO a serwer BLYNK zamieniłem na lokalną wersję. Nie ma sensu wyprowadzania żadnych informacji sterowania pompą poza obszar domu.



Co prawda pojawił się dodatkowy element. Jest to pilot załączający pompę przydatny w pewnych sytuacjach. Na tym samym ciągu rur prowadzących do łazienki zainstalowany jest kuchenny kran. Umieszczenie dodatkowej czujki PIR w kuchni nie ma sensu bo jest ona połączona z jadalnią i zbyt często byłaby wzbudzana przez domowników. Stąd pojawił się dodatkowy pilot wymuszający, w razie potrzeby, obieg CWU.

Schemat


Schemat absolutnie minimalistyczny - jedynie niezbędne uklady i elementy. Zastosowanie ESP-01S pozwoliło wyeliminować prawie wszystkie rezystory podciągające. Za to konieczne (nie wiem czemu) okazało się podpięcie linii Tx do 3v3. Bez tej polaryzacji moduł procesora nie chciał ruszyć.
W układzie są dwie wskaźnikowe diody LED. Jedna na module ESP na porcie GPIO2 druga na płytce podłączona do GPIO 0.
Całość jest zasilana z 5 V zasilacza USB. Napięcia 3V3 dostarcza stabilizator LF33.

Realizacja
Bazą układu jest płytka PCB porządnie wykonana przez JLCPCB. Jeszcze piękniejszy jest jej wypadkowy koszt - 2 zł.



Minimalistyczna wersja sterownika CWU zajmuje jedynie część płytki. Ale za to sama płytka idealnie pasuje do obudowy - oczywiście ulubionej czujki PIR. W układzie rozdzieliłem anteny nadawczą i odbiorczą. Sygnał wychodzący z nadajnika WLC-TX1 jest zbyt silny by podawać go bezpośrednio na wejście odbiornika.



Całość dała się zmontować i uruchomić w jeden wieczór. Nieco dłużej (2 popołudnia) poświęciłem na dopisanie i sprawdzenie bloku pompa.h do wcześniej przygotowanego  szablonu programu. Pomysł z dowolnym łączeniem bibliotek realizujących poszczególne funkcje niesamowicie przyspiesza tworzenie kolejnych projektów. Wynikająca stąd pewna nadmiarowość kodu jest praktycznie nieistotna przy tak dużej dostępnej pamięci w ESP8266.

A tu cały działający od 2 tygodni kod. Jak na razie - bez zastrzeżeń.

Najskromniej wygląda sama aplikacja BLYNK. Tam praktycznie nic nie ma.




Przycisk uruchamiający pompę na określony czas i kontrolny LED. Moduł i aplikacja dołączone są do serwera lokalnego uruchomionego na Raspberry Pi. To mój najnowszy nabytek mocno testowany w konfiguracji z BLYNKiem. Jak na razie spisuje się znakomicie.
BLYNK w systemie zainstalowany jest nieinwazyjnie. Brak połączenia z serwerem  w żaden sposób nie wpływa na poprawne sterowanie pompą CWU.

Podoba mi się  ten modułowy IoT.
W kolejce kolejne bloki sterowań więc jest szansa na cd.....

126

1 komentarz:

  1. Ten komentarz został usunięty przez administratora bloga.

    OdpowiedzUsuń