Przejdź do głównej zawartości

Kontroler czujników obecności - EspHome

Prezentowany moduł powstał z potrzeby obsługi wszystkich przewodowych czujników ruchu oraz czujników otwarcia. Sterownik jest zbudowany w oparciu o ESP32 LoLin. Dodatkowo obsługuje on domofon oraz dzwonek do drzwi. Całość jest oprogramowans z wykorzystaniem EspHome z pełną integracją z Home Assistant.

Podstawowe parametry sterownika:
  • zasilanie 12V
  • 5 czujników otwarcia
  • 5 czujników ruchu
  • czujnik otwarcia drzwi wejściowych
  • wykrywanie przekręconych rygli w drzwiach, góra i dół
  • detekcja sygnału z dzwonka od drzwi
  • zdalne sterowanie domofonem
  • tryb "nie przeszkadzać"
Wykorzystałem gotową płytkę deweloperską ESP32 LoLin, co ułatwiło projektowanie płytki i przyspieszyło prace.

Schemat ideowy

Układ posiada podstawowe zabezpieczenia:
  • przed odwrotną polaryzacją zasilania
  • bezpiecznik rurkowy
  • fizyczny włącznik
  • optoizolacja sygnałów wejściowych
  • tranzystorowe wyjścia 'open collector'



Sterownik został osadzony na podstawie montowanej na szynie din.

Czujniki

Wykorzystane czujniki otwarcia to zwykłe kontaktrony, podające stan niski jako sygnał sterujący. Natomiast sensory ruchu to dowolne czujki np. PIR. Sterownik ma wyprowadzone zasilanie do bezpośredniego podłączenia czujników ruchy. Sygnał sterujący to również stan niski. Wszystkie sygnały wejściowe są zabezpieczone optoizolacją. 
Polecam takie kontaktrony jak na poniższym zdjęciu z wyprowadzonym złączem śrubowym.

Drzwi wejściowe

Dla frontowych drzwi do mieszkania wydzieliłem dodatkową sekcję w sterowniku, składającą się z trzech sygnałów wejściowych:
  • tradycyjny czujnik otwarcia drzwi
  • czujnik rygla górnego zamka
  • czujnik rygla dolnego zamka
Czujniki dla rygli są zbudowane na osobnym układzie - Arduino Nano. Ościeżnica jest metalowa i tradycyjne kontaktrony nie 'łapią' magnesu przyklejonego do końcówki rygla. Wykorzystałem analogowy czujnik hala, który jest podłączony do przetwornika ADC, a sygnał jest analizowany i zamieniany na postać cyfrową emulując zwykły kontaktron.

Domofon

Jest to jeden z najprostszych modeli Laskomex LY-8. Jego modyfikacja polegała na symulowaniu normalnych sekwencji za pomocą przekaźników. Szerszy opis jest w osobnym artykule 'Home Assistant integracja domofonu'


Tryb "nie przeszkadzać"

Domofon oraz dzwonek do drzwi mają zamontowane przekaźniki rozłączające głośniczki. Funkcja ta została dodana z myślą o niespełna rocznej córce, która ucina sobie drzemki w ciągu dnia... lepiej, żeby sygnał domofonu jej nie budził.

EspHome

Całość jest obsługiwana przez EspHome co pozwoliło na bardzo szybkie wdrożenie i łatwą integrację z Home Assistant. Tutaj właściwie żadna logika nie jest realizowana poza obsługą domofonu, która polega na symulowaniu następującej sekwencji:
  • podniesienie słuchawki
  • wciśniecie przycisku otwierania 
  • zwolnieniu przycisku otwierania
  • odłożeniu słuchawki
Cały plik yaml dla EspHome:
substitutions:
device_name: "Multi Reed"
device_name_lower: "multi_reed"

esphome:
name: ${device_name_lower}
platform: ESP32
board: wemosbat

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true

logger:
api:
ota:

binary_sensor:
# STATUS
- platform: status
name: "${device_name}_status"

# MOTION SENSORS
- platform: gpio
pin:
number: GPIO19
inverted: True
name: "Motion Baby room"
device_class: motion

- platform: gpio
pin:
number: GPIO18
inverted: True
name: "Motion Bedroom"
device_class: motion

- platform: gpio
pin:
number: GPIO5
inverted: True
name: "Motion Living room 1"
device_class: motion

- platform: gpio
pin:
number: GPIO17
inverted: True
name: "Motion Living room 2"
device_class: motion

- platform: gpio
pin:
number: GPIO16
inverted: True
name: "Motion Bathroom"
device_class: motion

# WINDOW REED SENSORS
- platform: gpio
pin: GPIO34
name: "Window Baby room"
device_class: window

- platform: gpio
pin: GPIO35
name: "Window Bedroom"
device_class: window

- platform: gpio
pin: GPIO32
name: "Window Kitchen"
device_class: window

- platform: gpio
pin: GPIO23
name: "Window Balcony Tilt"
device_class: window

- platform: gpio
pin: GPIO22
name: "Window Saloon"
device_class: window

# DOOR REED SENSORS
- platform: gpio
pin: GPIO4
name: "Door"
device_class: door

- platform: gpio
pin: GPIO15
name: "Lock up"
device_class: lock

- platform: gpio
pin: GPIO13
name: "Lock down"
device_class: lock

# DOOR BELL
- platform: gpio
pin:
number: GPIO33
inverted: True
name: "Door bell"
device_class: sound

# INTERCOM
- platform: gpio
pin:
number: GPIO25
inverted: True
name: "Intercom"
device_class: sound
filters:
- delayed_off: 4s

switch:
# DOOR BELL
- platform: gpio
id: door_bell_mute
pin: GPIO12
name: "Door bell mute"
icon: "mdi:volume-off"

# INTERCOM
- platform: gpio
id: intercom_mute
pin: GPIO14
name: "Intercom mute"
icon: "mdi:volume-off"

- platform: template
name: Intercom open
turn_on_action:
- output.turn_on: pick_up
- delay: 1s
- output.turn_on: press_button
- delay: 1s
- output.turn_off: press_button
- delay: 2s
- output.turn_off: pick_up

output:
- platform: gpio
id: pick_up
pin: GPIO26

- platform: gpio
id: press_button
pin: GPIO27

Home Assistant

Sterownik jest natywnie integrowany z Home Assistant bez dodatkowych prac konfiguracyjnych. Zostało tylko napisanie automatyzacji wg. własnych potrzeb.

Komentarze

  1. Przypadkowo znalazłem blog, ale już mam go dodanego do ulubionych :)
    Projekty świetne, ale brakuje schematów PCB do samodzielnego wykonania. Dla kogoś, kto z elektroniką nie miał za dużo do czynienia na pewno byłoby to dużą pomocą.
    Jeśli chodzi o czujniki rygli może lepsze byłyby te: https://www.bss-sdi.com/en/products/riegelschaltkontakt-rkleverr-ohne-kabel/ ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć, dzięki za miłe słowo. Postaram się uzupełnić artykuły o rzeczy, tak aby można było odtworzyć te ptojekty.

      Usuń
  2. Czego użyłeś do zabezpieczenia?

    -przed odwrotną polaryzacją zasilania
    -bezpiecznik rurkowy

    OdpowiedzUsuń
    Odpowiedzi
    1. Przed odwrotna polaryzacją zasilania użyłem zwykłej diody prostowniczej 1N4007. Jest również dany jeden szklany bezpiecznik rurkowy.

      Usuń
    2. Zastanawia mnie na jaki amperaż dobiera się bezpiecznik rurkowy do takiego układu :)

      Usuń
  3. Jak rozwiązałeś odczytywanie stanów rygli drzwi wejściowych ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Czujniki Halla podłączone do osobnego arduino pod ADC, które wystawia 0/1 do głównego ESP.

      Usuń
    2. Ja zrobiłem to na kontaktronach z magnesami. Futryna metalowa działa pięknie. Dawid dzięki za projekt! :)

      Usuń
    3. U mnie właśnie na kontaktronach nie chciało działać przy metalowej futrynie.

      Usuń
    4. Hmmm z kontaktronami wydaje się spoko pomysł tylko nie potrafię sobie wyobrazić montażu...
      Gdzie te magnesy ? Nawierca się rygle ?

      Usuń
    5. U mnie są magnesy neodymowe o średnicy rygla ( rygiel to walec Gerdy) przyklejony kropelką :) próbowałem go zdjąć ręką - nie udało mi się także wygląda że taki sposób mocowania wystarcza. Magnesy same sobą już dość mocno się trzymały. Wysokość magnesu 1mm. Między drzwiami a futryną jest szczelina i magnesy nie wadzą. Co do kontaktronów Gerda w miejscu rygla wstawia takie wkładki z tworzywa. I próbowałem na 2 rodzajach kontaktronów. Na rurkowych nie osłoniętych mi nie działało. (bardzo kruche i ciężko ustawić) działa mi to na najtańszych z Ali w Białej obudowie z w przewodami wyprowadzonymi :p
      Ogólnie 3 kontaktrony w drzwiach.

      Usuń
    6. te kontaktrony są "wkute" w ścianę ? czy na futrynie i magnes sięga ?

      Usuń
    7. Podaj jakiś namiar podeślę zdjęcia.

      Usuń
    8. m4rlb0r0(a)o2.Pl z góry dzięki :)

      Usuń
    9. cahir1987 - nie otrzymałem żadnej wiadomości :( a czekam niecierpliwie :)

      Usuń
    10. przepraszam, są zdjęcia musiałem sie "klasycznie" do konta o2 zalogować... nie wiem czemu nie pobrało mi z serwera tej wiadomości....

      Usuń
  4. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  5. Cześć, bardzo, ale to bardzo ciekawy blog.
    Powyższy artykuł opisuje temat jaki chodzi za mną od lat - wykorzystanie wiszących już, i nie używanych, czujek ruchu satela.

    Czy jest szansa byś podzielił się wzorami płytki? Lub może masz jakieś w zapasie?

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Smart Domofon

W tym artykule chciałem pokazać możliwość przerobienia zwykłego i praktycznie dowolnego domofonu na "smart" . Nie ma znaczenia jaki producent oraz czy jest on cyfrowy czy może analogowy. Odpowiednie przerobienie to kwestia analizy płytki PCB posiadanej słuchawki. Jedne słuchawki są bardzo wygodne do przeróbek, a niektóre wymagają więcej pracy.

Tablica Manipulacyjna

W przeróżnych pudełkach zawsze walają się u mnie jakieś przełączniki, pokrętła i innego rodzaju elementy. Córka (3 lata) od zawsze lubiła pstrykać wszelkimi guzikami. Wychodząc z mieszkania to ona zawsze przywołuje windę i wybiera piętro.