poniedziałek, 11 listopada 2019

Na kłopoty - mikroprocesor + BLYNK czyli prosty wyłącznik światła

Zdarza wam się notorycznie o czymś zapominać? U mnie to standard. Na przykład o wyłączeniu światła. Pal go sześć (polecam pochodzenie tego zwrotu) gdy w domu. Ale lampy oświetlenia elewacji domu zapalam z rzadka. Nie są zbyt intensywne ale tworzą odpowiedni nastrój wydobywając bryłę budynku z mroku nocy. Ten widok dostępny jest jedynie z zewnątrz i mogą go docenić tylko goście lub sąsiedzi. Dla mnie światła mogą się palić i kilka dni zanim przypomnę sobie by je wyłączyć. W dzień ich nie widać a wieczorem też nie bo siedzę w domu. Światło się pali, licznik kręci a elektrownia stęka z wysiłku.
Czujka ruchu lub wyłącznik zmierzchowy  nie rozwiązuje sprawy. W okresie Bożego Narodzenia ten sam obwód zasila świąteczne lampki.
I znowu się świeci .... mówię sobie po raz setny wychodząc rano z domu.
W końcu się wkurzyłem  i poprosiłem o pomoc mr BLYNKa.
Dziś opis kolejnego prostego projektu (projekciku) ułatwiającego życie.


Najbardziej eleganckim rozwiązaniem byłoby umieszczenie mikroprocesorowego przekaźnika w puszce wyłącznika oświetlenia. Mam nawet taki - Shelly1.



ale nie mieści się niestety w wypełnionej przewodami puszce. Szkoda.
Pozostaje mi więc SONOFF Basic i wcięcie się z przekaźnikiem w przewód zasilający lampy oświetlenia dekoracyjnego.


Włącznik znajduje się przed SONOFF. Zapalenie światła to podanie napięcia na przekaźnik, który załącza się na określony czas. Po odliczeniu czasu napięcie output zostaje wyłączone. Ponowne zapalenie świateł wymaga wyłączenia  i załączenia włącznika - to jedyna niedogodność takiego rozwiązania.

Jest to swego rodzaju czasowy wyłącznik schodowy. Jednak zainstalowany BLYNK znakomicie poszerza zakres funkcji dostępnych w tym prostym urządzeniu. I tak mogę mieć dodatkowo:

  1. możliwość dowolnej zmiany czasu świecenia w tym ustawienie ciągłego świecenia
  2. zdalne załączanie/wyłączanie
  3. funkcje wyłącznika zmierzchowego 
  4. cykliczne załączanie/wyłączanie o określonej porze - symulacja obecności gospodarzy
  5. automatyczne załączanie przy zbliżaniu się do budynku 
  6. i pewnie kilka innych

Dzisiejszy projekt to tak naprawdę praktyczne ćwiczenia wykorzystania tkwiących w BLYNKu możliwości tworzenia różnych algorytmów automatyki sterowania prostym oświetleniem. Ale na początek zbuduję i oprogramuję wyłącznik.

SPRZĘT

Do budowy wyłącznika użyłem standardowego SONOFFa BASIC bez żadnych przeróbek. Po prostu przeciąłem przewód zasilający oświetlenie zewnętrzne i tam wpiąłem przekaźnik. Urządzenie będzie zamontowane na zewnątrz pod okapem i osłonięte podbitką nie będę więc stosował dodatkowych elementów ochronnych przekaźnika. W instalacjach wewnątrz domu w miejscach dostępnych dla domowników SONOFF BASIC wymaga dodatkowej ochrony by nie doszło do przypadkowego porażenia. Dlaczego i jak warto to zrobić pokazuje ten film https://www.superhouse.tv/21-six-sonoff-secrets/ 

PROGRAM

Bez oporów kopiuję program z poprzedniego wpisu lekko go tylko modyfikując na potrzeby wyłącznika świateł. Cały program z bibliotekami znajdziecie na GITHUB.
Program główny jest w pliku main.h. Sporo w nim zaslaszowanych linii by pokazać jak łatwo i przy niewielkim nakładzie sił adaptuje się program opary na własnych uniwersalnych bibliotekach. Całkiem nowy produkt uzyskałem zmieniając kilkanaście linijek kodu choć cały program zawiera ich  kilka setek (nie licząc obcych bibliotek). Przy pewnej wprawie programowanie za pomocą klocków lego (bibliotek) staje się prawdziwą przyjemnością.

Oświetlenie domu załączane jest po podaniu napięcia na SONOFF i trwa 4h. Czas ten można oczywiście zmienić z aplikacji a nowa wartość zapamiętana jest w eepromie ESP8266 (tzn. w pamięci flash). I to cały algorytm pracy urządzenia.
Dodatkowe funkcje uzyskujemy dzięki aplikacji BLYNK.

APLIKACJA

 Wszystko co jeszcze można wycisnąć z tego prostego urządzenia ukryte jest w aplikacji BLYNK. Pokażę teraz tylko dwie dodatkowe opcje choć kombinacji jest dużo więcej a jedynym tu ograniczeniem jest ... wyobraźnia.



Wskaźnik pokazuje odliczany czas w minutach. Wstępnie ustawiłem maksymalny zakres na 600 min (10h). Podobnie suwak ma maksymalny zakres 600 min i programuje długość świecenia.  Oba te maksymalne zakresy mogę prosto zmienić w konfiguracji widgetów aplikacji. Przycisk V19 załączą przekaźnik na określony suwakiem czas.

Dla bardziej zaawansowanego sterowania warto dodać kalendarz. Bez problemu uzyskamy to za pomocą widgetu "time input". Steruje on przekaźnikiem poprzez pin V11.




Ciekawą opcję sterowania daje widget GPS Trigger. Wysyła on sygnał uruchamiający przekaźnik na pinie V12 gdy telefon znajdzie się w obszarze określonym w ustawieniach widgeta.



Jeśli więc udam się do centrum stolicy Meksyku SONOFF powinien zapalić oświetlenie domu gdzieś w odległej Polsce.

Jak wspominałem możliwych kombinacji załączeń i wyłączeń oświetlenia możemy sobie ustawić bez liku. A wszystko poprzez sterowanie wirtualnego pinu V11 lub V12 z aplikacji z wykorzystaniem EVENTORa. Różnica pomiędzy oboma tymi pinami jest taka że podanie 1 na V11 załącza przekaźnik aż do chwili gdy pin V11 zostanie wyzerowany. Stan wysoki na pinie V12 załącza przekaźnik na czas określony suwakiem.

Ale dalsze eksperymenty z ustawieniami BLYNKa w wyłączniku oświetlenia pozostawię memu ulubionemu ciągowi dalszemu.


Przydatne linki
Małe co nieco o SONOFF BASIC https://100-x-arduino.blogspot.com/2019/05/stary-nowy-sonoff-basic-czyli-sonoff-rf.html

1 komentarz: