Sterowanie bramami w domkach jednorodzinnych nie jest tak problematyczne jak sterowanie tego typu urządzeniami w zabudowie wielorodzinnej. Gdzie tak na prawdę nie mamy możliwości ingerowania w instalacje. Mamy do dyspozycji symulację otwierania przy pomocy pilota. W skrajnych przypadkach, takich jak np. mieszkanie po drugiej stronie budynku skąd nie ma szans dotrzeć sygnał radiowy do bramy, zostajemy bez możliwości sterowania bramą przy pomocy telefonu. Ja na szczęście mam widok na bramę z okna kuchennego.

Dodatkowym utrudnieniem jest kodowanie sygnału z pilota. Nie możemy użyć tu np. sonoff RF, który „podszyłby się” pod oryginalny pilot. Dlatego też ostatecznie okazuje się, że jest tylko jedna opcja jaką możemy wykorzystać. Zintegrować oryginalny pilot z ESP. Na wszystkie esp daje espHome i tak też było w tym przypadku. No dobra, znalazłem jeden wyjątek bramka do czajnika na esp32 gdzie zastosowałem autorskie oprogramowanie.

Oprogramowanie

Wgrywamy na płytkę EspHome. Konfigurujemy sobie switch’a z odpowiednim pinem, którym będziemy sterować przekaźnikiem. Osobiście preferuje komunikację po MQTT więc stosowny wpis z konfiguracją brokera musi się pojawić. Pierwotnie zrealizowałem w konfiguracji automatyzację włącznika jako relay, który sam się wyłączał po 500ms. Niestety tak krótkich impulsów nie wyłapywał node-red więc zrobiłem zwykły włącznik a wyłączanie go po 500ms realizuję już w node-red.

switch:
  - platform: gpio
    pin: D8
    name: "Brama MCU - Remote"
    icon: "mdi:gate"

Dlaczego ma tu ingerować Node-red ? Chociażby żeby w momencie otwierania bramy alexa dźwięk informujący o otwarciu bramy. Jest to np. przydatne w momencie kiedy, żona wraca z ciężkimi zakupami a ja czym prędzej zbiegam do garażu aby pomóc 😛 Nie musi dzwonić i informować mnie o swoim powrocie 🙂 Poza tym na pewno coś jeszcze wymyślę więc otwarcie sobie drogi i możliwość obsługi pilota z poziomu node-reda wydała mi się uzasadniona.

Ok, to tyle jeśli chodzi o oprogramowanie. Zajmijmy się teraz stroną hardware’ową.

Niezbędne elementy układu

Elementy, które poza oczywistym esp, w moim przypadku node MCU i pilotem, który musiałem rozebrać to: przekaźnik z cewką na 5V, tranzystor NPN, rezystor 4,7kOhm, dioda prostownicza i kilka kabelków oraz płytka prototypowa aby wszystko w miarę trwale i stabilnie utrzymać w harmonii. Całość polutowana według załączonego schematu. Poniżej przedstawiam efekt ostateczny mojego spawania.

Zastanawiam sie jak to teraz ukryć. Na parapecie leżeć nie może. Jakaś wydrukowana czy gotowa obudowa wpłynie negatywnie na komfort użytkowania okna. Najprawdopodobniej wykuję we wnęcę miejsce na puszkę kieszeniową. Doprowadzę tam zasilanie od przycisku rolety dzięki czemu będę mógł tam wrzucić ładowarkę i rozwiążę problem zasilania esp.

Podsumowanie

Po blisko 2 tygodniach użytkowania jestem zadowolony z rozwiązania. Jedynym problemem, który zaobserwowałem to chwilowy, ograniczony dostęp do internetu w podziemnym garażu. Trzeba podjechać pod bramę zanim użyje się przycisku na telefonie. Mam nadzieję, że kogoś mój projekt zainspiruje. Poniżej zamieszczam kompletny kod mojego ESP, które aktualnie zajmuje się tylko bramą. Każdy jednak wie jak to jest z tymi esp i najprawdopodobniej za chwilę wykorzystam pozostałe piny. Chociażby mam juz pomysł na wykonanie przycisku na ścianie. żeby bramę można było otwierać również z poziomu zwykłego przycisku na ścianie.

esphome:
  name: brama_mcu
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "ssid"
  password: "haslo"
  
    # Optional manual IP
  manual_ip:
    static_ip: 192.168.1.109
    gateway: 192.168.1.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Brama Hotspot"
    password: "12345678"

captive_portal:
logger:
ota:

mqtt:
  broker: 192.168.1.110
  username: login
  password: haslo
  discovery: True   

# Enable Web server
web_server:
  port: 80

sensor:
  - platform: wifi_signal
    name: "Brama MCU - Wifi Signal"
    update_interval: 60s
    icon: mdi:wifi
  - platform: uptime
    name: "Node1 - Uptime"
    update_interval: 60s
    icon: mdi:clock-outline
    
switch:
  - platform: gpio
    pin: D8
    name: "Brama MCU - Remote"
    icon: "mdi:gate"

text_sensor:
  - platform: version
    name: "Brama MCU - Version"
    icon: mdi:cube-outline

Author : m4rlb0r0

Aktualnie siedzę we frontendzie. Na co dzień koduję HTML5, CSS3 (SASS) i JavaScript na potrzeby PrestaShop. Gdy zajdzie potrzeba nurkuję w backend do PHP i MySQL gdzie zaczynałem swoją przygodę z zaawansowaną developerką. Ciągły rozwój :)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Profesjonalny Hosting