W końcu skończyłem robić bramę, pospawane, pomalowane więc nadszedł czas żeby dodać elektronikę.
Zdecydowałem, że chce przy bramie czytnik linii papilarnych, abym mógł uruchamiać różne funkcje każdym palcem, podjeżdżając pod dom, nie potrzebuję klucza, pamiętać pinu, po prostu przykładam palec i wchodzę.
W słupku furtki zamontowałem
elektrozaczep
dzwonek arlo,
czytnik lini papilarnych R503 z lm1117 3,3v
można zapisać 200 palców w tym czytniku
i przycisk chwilowy z podświetleniem led od strony podwórka.
Do słupka idzie przewód 7x1
- 5v dc do lm1117 3,3 do czytnika i dla czujników jakie chce jeszcze dodać. np. dopplera
- 5v dc gnd
- 12v dc elektrozamek po przekaźniku
- 12v dc gnd
- 24v ac arlo
- 24v ac gnd
- 5v dc do podświetlenia guzika led po przekaźniku
idzie również skrętka
- r503
- r503
- r503
- guzik
- kontaktron
-
-
- jeszcze wolne
-
Trochę sie nagimnastykowałem żeby to w słupku poprzeciągać
Ale wyszło bardzo fajnie, beż żadnych puszek itp.
Rozdzielnia z elektroniką jest w budynku, kupiłem większą niż potrzebowałem, ale w trakcie wyszło że jeszcze chce tam coś wsadzić i wyszło prawie na styk.
w skrzynce jest:
bezpiecznik 6A
transformator 24v ac
zasilacz 12v dc
zasilacz 5v dc
zasilacz 12v do kamer
3x przekaźniki po 4
nano router TP-link
Mercusys MS108 switch x8
moduł led 2 diodowy
dht11 temeratura i wilgotność w skrzynce
przełącznik rtęciowy na pokrywie
i najważniejsze ESP32
początkowo był esp8266, ale chciałem bluetooth i później podłączyć ethernet a esphome wpiera tylko esp32
Wszystko upakowałem do rozdzielni, uchwyty na szyny, wago, przekaźniki, esp, router i switch wydrukowałem.
jeszcze muszę ogarnąć ładnie przewody
dodałem kontaktron do bramy i beznapięciowy przekaźnik do centrali bramy z siłownikami super jack które już wcześniej zainstalowałem.
Dodatkowo puściłem skrętkę do skrzynki pocztowej, dodałem kontaktron co by mnie powiadamiało i zamontowałem elektrozaczep
Dzięki temu mogę również bez kluczą ją otwierać.
Ogólnie wszystko dla tego że mam problem z noszeniem kluczy
Czyli autonomicznie podstawowa funkcjonalność działa bez HA
jednym palcem otwieram furtkę, drugim bramę a trzecim skrzynkę na listy.
ESPHome wygląda tak:
esphome:
name: brama
platform: ESP32
board: nodemcu-32s
logger:
wifi:
ssid:
password:
captive_portal:
web_server:
port: 80
esp32_ble_tracker:
binary_sensor:
- platform: gpio
pin:
number: GPIO15
mode: INPUT_PULLUP
inverted: true
name: "Guzik furtki"
on_press:
then:
- switch.turn_on: furtka
- platform: gpio
pin:
number: GPIO19
mode: INPUT_PULLUP
inverted: true
name: "czujnik pokrywy"
on_press:
then:
- switch.turn_on: swiatloskrzynka
on_release:
then:
- switch.turn_off: swiatloskrzynka
filters:
- delayed_on_off: 100ms
- platform: gpio
pin:
number: GPIO4
mode: INPUT_PULLUP
inverted: true
name: "kontaktron furtki"
- platform: gpio
pin:
number: GPIO26
mode: INPUT_PULLUP
inverted: true
name: "kontaktron bramy"
- platform: gpio
pin:
number: GPIO33
mode: INPUT_PULLUP
inverted: true
name: "kontaktron skrzynka na listy"
- platform: ble_presence
mac_address: C4:9D:60:67:B4:DB
name: " opaska BLE Presence"
switch:
- platform: gpio
pin: GPIO13
id: furtka
name: "Furtka"
inverted: true
on_turn_on:
- delay: 50ms
- switch.turn_off: furtka
- platform: gpio
pin: GPIO12
id: guzikled
name: "Podswietlenie Guzika Furtka"
inverted: true
- platform: gpio
pin: GPIO14
id: brama
name: "Brama"
inverted: true
on_turn_on:
- delay: 50ms
- switch.turn_off: brama
- platform: gpio
pin: GPIO27
id: swiatloskrzynka
name: "Światło skrzynka"
inverted: true
- platform: gpio
pin: GPIO25
id: skrzynkanalisty
name: "Skrzynka na listy"
inverted: true
on_turn_on:
- delay: 5s
- switch.turn_off: skrzynkanalisty
mqtt:
broker: 192.168.100.100
uart:
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 57600
fingerprint_grow:
sensing_pin: GPIO21
on_finger_scan_matched:
- lambda: |-
if (finger_id == 10) {
id(fingerprint_username).publish_state("Bartek10");
id(furtka).turn_on();
} else if (finger_id == 17) {
id(fingerprint_username).publish_state("Bartek17");
id(brama).turn_on();
} else if (finger_id == 18) {
id(fingerprint_username).publish_state("Bartek18");
id(skrzynkanalisty).turn_on();
} else {
id(fingerprint_username).publish_state("Unknown");
};
- fingerprint_grow.aura_led_control:
state: BREATHING
speed: 200
color: BLUE
count: 1
- text_sensor.template.publish:
id: fingerprint_state
state: "Authorized finger"
- delay: 3s
- text_sensor.template.publish:
id: fingerprint_state
state: "Scan your finger"
on_finger_scan_unmatched:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: RED
count: 2
- text_sensor.template.publish:
id: fingerprint_state
state: "Unauthorized finger"
- delay: 3s
- text_sensor.template.publish:
id: fingerprint_state
state: "Scan your finger"
on_enrollment_scan:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: BLUE
count: 2
- fingerprint_grow.aura_led_control:
state: ALWAYS_ON
speed: 0
color: PURPLE
count: 0
- text_sensor.template.publish:
id: fingerprint_state
state: "Finger scanned"
on_enrollment_done:
- fingerprint_grow.aura_led_control:
state: BREATHING
speed: 100
color: BLUE
count: 2
- text_sensor.template.publish:
id: fingerprint_state
state: "Enrolled fingerprint"
on_enrollment_failed:
- fingerprint_grow.aura_led_control:
state: FLASHING
speed: 25
color: RED
count: 4
- text_sensor.template.publish:
id: fingerprint_state
state: "Failed to enroll fingerprint"
text_sensor:
- platform: template
id: fingerprint_state
name: "Garage Fingerprint State"
- platform: template
id: fingerprint_username
name: "Who Scanned Last"
sensor:
- platform: fingerprint_grow
fingerprint_count:
name: "Garage Fingerprint Count"
last_finger_id:
name: "Garage Fingerprint Last Finger ID"
last_confidence:
name: "Garage Fingerprint Last Confidence"
status:
name: "Garage Fingerprint Status"
capacity:
name: "Garage Fingerprint Capacity"
security_level:
name: "Garage Fingerprint Security Level"
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
- platform: dht
pin: GPIO5
temperature:
name: "skrzynka Temperature"
humidity:
name: "skrzynka Humidity"
update_interval: 60s
- platform: xiaomi_hhccjcy01
mac_address: C4:7C:8D:6C:B9:6D
temperature:
name: "Xiaomi MiFlora Temperatura"
moisture:
name: "Xiaomi MiFlora Wilgoć"
illuminance:
name: "Xiaomi MiFlora Nasłonecznienie"
conductivity:
name: "Xiaomi MiFlora Żyzność"
battery_level:
name: "Xiaomi MiFlora Battery Level"
api:
services:
- service: enroll
variables:
finger_id: int
num_scans: int
then:
- fingerprint_grow.enroll:
finger_id: !lambda 'return finger_id;'
num_scans: !lambda 'return num_scans;'
- service: cancel_enroll
then:
- fingerprint_grow.cancel_enroll:
- service: delete
variables:
finger_id: int
then:
- fingerprint_grow.delete:
finger_id: !lambda 'return finger_id;'
- service: delete_all
then:
- fingerprint_grow.delete_all:
Trochę się natrudziłem z kodem jak zrobić dla każdego palca osobno bo nie jestem programistą, w necie znalazłem tylko automatyzacje z HA, a chciałem aby podstawowa funkcjonalność była na płytce, działająca niezależnie.
Teraz dodatkowe automatyzacje np. włączenie wszystkich świateł w ogrodzie, wyłączenie wszystkiego w domu, włączenie alarmu, mogę sobie zrobić w NR / HA.
W HA wszystko jest:
Jeszcze coś tam muszę poprawić, podłączyć halogeny, lampy, jakieś czujniki ruchu itp.
Trochę mi to zajęło ale działa… tak jak chciałem