Czujnik otwarcia bramy garażowej za 11 zł – HC-SR04 i NodeMCU V3

Nastał w końcu czas na wykorzystanie całej masy różnych czujników, na których uczyłem się podstaw Arduino, RaspberryPi, pisania skryptów itp. Wiele wieczorów spędzonych na walce ze złośliwością rzeczy martwych przyniosło w większości wymierne sukcesy. Po tych bojach pozostało mi kilka czujników, które czekają cierpliwie na pomysł jak je wykorzystać w praktyce. Aby zrobić miejsce na następne ( plany zakupowe są szeroko zakrojone ) postanowiłem nie kupować kolejnych dopóki nie wykorzystam już posiadanych. Na pierwszy ogień poszedł  ultradźwiękowy czujnik odległości HC-SR04. Zdecydowałem się wykorzystać go do monitoringu otwarcia bramy garażowej. Ponieważ konstrukcja bramy uniemożliwia montaż kontaktora, trzeba było coś wymyślić. Dedykowane, gotowe rozwiązania, zwłaszcza pod Z-wave potrafią kosztować grubo ponad 100 zł, warto więc podjąć wyzwanie.

Znalezione obrazy dla zapytania hc-sr04

Specyfikacje czujnika łatwo znaleźć w internecie, więc skupię się na kilku, moim zdaniem istotnych szczegółach. Zasięg czujnika mieści się w granicach od 2 do 200 cm. Sprawdzałem go w rożnych warunkach i potrafił zmierzyć nawet do 5 m, jednak nie polegałbym za nadto na tych pomiarach. Drugim, bardzo ważnym szczegółem jest fakt, iż czujnik jest zasilany napięciem 5 V. Jest to istotne w przypadku podłączenia do płytki NodeMCU V3, o czy za chwilę.

Schemat podłączenia czujnika do płytki.

Z uwagi na fakt, iż nie za bardzo ufam jakości czujników z Chin, od jakiegoś czasu najpierw testuje je na Arduino i jeżeli jest w porządku zaczynam zabawę z Domoticzem.

img_20180220_172513-1.jpg

Czujnik podłączamy w następujący sposób.

  • VCC – zasilanie 5V
  • GND – masa
  • ECHO – wyjście sygnału ( u mnie pod pin D7 )
  • TRIG – wejście wyzwalające ( u mnie pod pin D6 )

Na zdjęciu powyżej czujnik podłączony jest do płytki AMICA V2. Idąc po taniości zdecydowałem się na użycie tańszej płytki LOLIN V3. W V2 zasilanie 5V wyprowadzone jest na pin VIN. W naiwności swojej myślałem, iż tak też jest na płytce LOLIN. Już myślałem, że urządzenie jest niesprawne ( dostawałem cały czas odczyty 0 cm ), jednak po zapoznaniu się z poniższym schematem odkryłem, iż na płytce V3 zasilanie 5V jest wyprowadzone na pin VV. Po podłączeniu zasilania VCC czujnika do pinu VV LOLIN płytka ożyła.

Znalezione obrazy dla zapytania nodemcu v3 gpio

Wgranie ESPEASY na płytkę LOLIN V3.

Teraz sprawa była już prosta. Jak to zrobić opisałem tutaj.  Po wgraniu softu dodajemy czujnik.

FireShot Capture 16 - newdevice - http___192.168.2.87_devices_index=4&page=1.png

I oto mamy już odczyty.

 

Screenshot_20180220_173807.png

Możemy dodać wirtualny czujnik do Domoticza i cieszymy się odczytami. Jednak w tym przypadku będziemy chcieli jedynie wiedzieć czy brama jest otwarta czy zamknięta, więc dodamy zwykły przełącznik.

FireShot Capture 18 - Domoticz - http___192.168.2.214_9009_#_Hardware

FireShot Capture 19 - Domoticz - http___192.168.2.214_9009_#_LightSwitches.png

 

Budowa sensora otwarcia bramy garażowej.

W tytule wpisu, napisałem że zrobimy kompletny sensor. Montowanie płytki stykowej na ścianie w garażu jest mało praktyczne.

Lista zakupów ( ceny z chińskich portali ):

  • HC-SR04 – 1,73 zł
  • NodeMCU V3 – 7,32 zł
  • puszka – ok. 2,0 zł
  • przewody, kabel zasilający, klej na gorąco, wkręty – 0 zł ( domowe zapasy )

Razem:  11,05 zł

Składamy wszystko do kupy.

Montujemy czujnik w garażu. U mnie odległość czujnika od bramy wynosi ok. 124 cm. Jeżeli więc odczyt jest większy znaczy, że brama jest otwarta i w Domoticzu zmieni się stan przełącznika.

Piszemy banalne zdarzenie.

fireshot-capture-25-domoticz-http___192-168-2-214_9009__events.png

I działa. Jednego czujnika mniej w pudełku.

Moduł WiFi z ESP8266 (NodeMCU) i ESP Easy. Bezprzewodowe czujniki i przekaźniki w Domoticzu.

W moim systemie od dłuższego czasu prym wiodą czujniki i przełączniki bezprzewodowe.  Na blogu testowałem kilka takich rozwiązań  jak np.  gniazdka Orvibo czy Xiaomi Smart Home Starter Kit. Do odczytu temperatury, wilgotności, natężenia światła czy przełączników stosuje moduły WiFi z ESP8266 (NodeMCU) z oprogramowaniem ESP Easy.  Ich niewątpliwą zaletą jest łatwość programowania, kompletny firmware i nie ukrywam niska cena. Nie do przecenienia jest stabilność odczytów. Pierwsza płytka pracuje u mnie w systemie ponad rok bez przerwy, monitorując pogodę na zewnątrz.

Poradników i przewodników jak zintegrować płytki NodeMCU z Domoticzem jest w sieci dużo, jednak i ja postanowiłem opisać swoje doświadczenia. Myślę, że właśnie to rozwiązanie stanie się u mnie wiodącym.

  • Wybór odpowiedniej płytki.

Nie wdając się w szczegóły na rynku mamy płytki ESP8266 NodeMCU dwóch generacji. Od razu polecam urządzenia drugiej generacji. Jednak i one różnią się między sobą. Na pierwszy rzut oka możemy je rozpoznać po tym, iż wersja V2 jest węższa od V3 i na płytce stykowej pozostawia po jednym rzędzie otworów. Jest jednak i poważniejsza różnica. Leży ona w konwerterze USB-UART. NodeMCU w wersji V3 został wyposażony w układ CH340, natomiast V2 w Silicon Labs CP2102. Ten drugi jest lepiej obsługiwany przez system Windows z uwagi na dostępność sterowników. Ja mam płytki w obu wersjach i nigdy nie miałem z nimi problemów, jednak na początek polecam wersję V2.

IMG_20180120_104432.jpg

  • Programowanie płytki w systemie Windows

W pierwszej kolejności pobieramy najnowsze oprogramowanie ESPEasy_v2.0. Jest to wersja rozwojowa, ale już bardzo stabilna. Wypakowujemy archiwum, podłączamy płytkę do portu USB i uruchamiamy plik ESPEasy_v2.0.

Screenshot_20180120_144640

 

Jeżeli płytka zostanie poprawnie wykryta ( u mnie na porcie COM4) wybieramy firmware ( w zależności od ilości pamięci ). Dla płytki  ESP8266 NodeMCU V2 i V3 tak jak na zdjęciu powyżej. Naciskamy Flash. Kropki świadczą o postępie programowania. Na koniec otrzymujemy komunikat Flash Complete. Jeżeli pojawią się problemy z wykryciem płytki polecam zainstalowanie Arduino IDE.

  • Podłączenie płytki do sieci Wifi

Odłączamy płytkę od komputera i podłączamy do zasilania. W tym momencie urządzenie powinno zostać wykryte  jako dodatkowa sieć ESP_Easy_0. Płytka w tym momencie pracuje w trybie AP. Logujemy się do sieci hasłem configesp. Po wpisaniu w przeglądarkę adresu 192.168.4.1 otrzymamy możliwość dodania urządzenia do naszej sieci.

Screenshot_20180120_144148

Po kilkunastu sekundach urządzenie dostanie adres IP w naszej sieci.

Screenshot_20180120_144306

  • Konfiguracja ESPEasy.

Wpisujemy powyższy adres w przeglądarkę i przechodzimy do podłączenia czujników.

Screenshot_20180120_141633.png

Aby przekazać dane do Domoticza przechodzimy do zakładki Controllers.

Screenshot_20180120_152907.png

Naciskamy EDIT i wprowadzamy dane ( adres IP i port ) Domoticza. Pamiętać należy o zaznaczeniu Enabled.

Screenshot_20180120_153059.png

  • Dodanie czujników do płytki

Jako przykład pokaże jak podłączyć popularny czujnik temperatury i wilgotności DHT11.

Znalezione obrazy dla zapytania nodemcu dht11

Następnie przechodzimy do zakładki Devices. Naciskamy EDIT i wprowadzamy dane.

Screenshot_20180120_153849.png

Pamiętać należy o zaznaczeniu Enabled. Podajemy Pin do którego podłączyliśmy czujnik i IDX czujnika w Domoticzu. Jak dodać wirtualny przełącznik pisałem we wpisie.

Sprawdzamy czy widzimy odczyty.

Screenshot_20180120_155041.png

Jeżeli prawidłowo podaliśmy adres IP, port i IDX Domoticza to musi działać.

Screenshot_20180120_155337

W następnych wpisach pokażę jak podłączyć czujnik odległości HC-SR04 i prosty przekaźnik.