Шановні покупці, у зв'язку з військовим станом магазин тимчасово призупинив роботу. З усіх питань пишіть admin@1wire.com.ua
Категории Статей
Популярные Статьи
Умный дом Xiaomi ZigBee на Raspberry Pi + Home Assistant
В этой статье пойдет речь о датчиках, розетках, выключателях Xiaomi Aqara/Mijia. Я расскажу к ...»
Home Assistant + база SQL MariaDB оптимизация
Все чаще у многих пользователей Home Assistant возникает вопрос о выросшем файле базы данных. П ...»
Открытая система управления “умным домом” MajorDoMo - Часть 1
В этой статье я расскажу об одном проекте, которым занимаюсь уже довольно продолжительное время и ко ...»

Замок по отпечатку пальца WiFi для Home Assistant


В прошлой статье я рассказывал о подключении модуля RFID - PN532 в Home Assistant, но всегда носить с собой брелок или карту не очень удобно.
Сегодня рассмотрим подключение сканера отпечатка пальцев к умному дому, в моем случае это будет замок в гараж. Релейным модуль подключен к порту GPIO02 и включается на 1 секунду, время можно изменить в прошивке.
Это устройство может работать независимо от системы умного дома в сегменте Wi-Fi сети.

Поддерживаются оптические сенсоры FPM10A, R307, ZFM-20 и емкостные R503.
FPM10 - R503

Я собрал на ESP32 и FPM10A, но с успехом можно применить любой модуль ESP8266.

Сборка сканера

Для сборки сканера нам понадобятся следующие компоненты:


Собираем по схеме

Схема подключения сканера отпечатка к ESP32

Интеграция в Home Assistant

Для подключения к серверу будем использовать аддон ESPHome. Переходим в раздел Supervisor - Add-on и устанавливаем.

Установка ESPhome

Переходим в меню аддона и нажимаем зеленый плюс внизу страницы для добавления нашего нового устройства.

Установка для ридера

Запускается мастер установки, вносим данные нашей Wi-Fi сети, тип модуля и пароль для перепрошивки по воздуху ОТА

Создаем Ноду

Выбираем тип платы ESP8622

Вводим данные сети

Подтверждаем кнопкой SUBMIT

Подтверждаем

После чего заходим в редактирование конфигурации созданного модуля

Редактирование конфигурации

Очищаем и добавляем следующий код:

esphome:
  name: fingerprint_lock
  platform: ESP32
  board: nodemcu-32s

wifi:
  ssid: "Ваша сеть"
  password: "Ваш пароль"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Fingerprint lock"
    password: "Ваш пароль"

captive_portal:

# Enable logging
logger:

ota:
  password: "Ваш пароль"

uart:
  rx_pin: GPIO13
  tx_pin: GPIO15
  baud_rate: 57600

fingerprint_grow:
  sensing_pin: GPIO12
  on_finger_scan_matched:
    - text_sensor.template.publish:
       id: fingerprint_state
       state: !lambda 'return "Authorized finger " + to_string(finger_id) + ", confidence " + to_string(confidence);'
    - if:
        condition:
          lambda: 'return confidence > 50;'
        then:
          - homeassistant.tag_scanned: !lambda |-
              switch (finger_id) {
                case 0:
                  return "person_a";
                case 1:
                  return "person_b";
                default:
                  return "person_unknown";
              }
    - switch.turn_on: gate
    - delay: 1000ms
    - switch.turn_off: gate
  on_finger_scan_unmatched:
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Unauthorized finger"
  on_enrollment_scan:
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Finger scanned"
  on_enrollment_done:
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Enrolled fingerprint"
  on_enrollment_failed:
    - text_sensor.template.publish:
        id: fingerprint_state
        state: "Failed to enroll fingerprint"

# Optional template text sensor for visual feedback
text_sensor:
  - platform: template
    id: fingerprint_state
    name: "Fingerprint State"

switch:
  - platform: gpio
    pin: GPIO02
    id: gate

binary_sensor:
  - platform: fingerprint_grow
    id: fingerprint_enrolling
    name: "Fingerprint Enrolling"

sensor:
  - platform: fingerprint_grow
    fingerprint_count:
      name: "Fingerprint Count"
    last_finger_id:
      name: "Fingerprint Last Finger ID"
    last_confidence:
      name: "Fingerprint Last Confidence"
    status:
      name: "Fingerprint Status"
    capacity:
      name: "Fingerprint Capacity"
    security_level:
      name: "Fingerprint Security Level"
      
api:
  password: Ваш пароль
  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:

Не забываем прописать вашу сеть и пароли!

Сохраняем SAVE проверяем VALIDATE. Если ошибок нет, то можем прошивать.
Подключаем наш модуль ESP32 к Raspberry в usb порт, и в верхнем углу плагина выбираем появившийся Serial порт. Если до этого модуль прошивался по кабелю, то можно использовать прошивку по воздуху OTA.

Прошивка модуля

После чего жмем UPLOAD. Происходит компиляция и прошивка. После чего, видим лог подключения к нашему устройству. Теперь модуль можно отключить от Raspberry и подключить в любому источнику 5 вольт.

Логи

Переходим в раздел Интеграции

Интеграции

И видим наше подключенное устройство.

Интеграции

Нажимаем на ссылку и переходим

FPM10A сканер

Теперь добавим отпечатки пользователей, сами отпечатки хранятся в памяти сканера.
Для добавления переходим в раздел Панель разработчика - Службы, выбираем ESPHome: fingerprint_lock_enroll, долее в поле finger_id пишем порядковый номер ячейки начиная с 0, всего в память сканера FPM10A поместится 150 отпечатков.
Количество сканирования я ставлю 2, для оптического сканера этого достаточно.

Нажимаем вызвать службу.

Добавление отпечатков

В логе ESPHome видим следующее:

Добавление пальцев - лог
Касаемся сенсора пальцем несколько раз (сколько прописали в службе) и видим, что добавление успешно.
Так же поступаем с другими пользователями.

После добавления необходимо вызвать службу для отключения записи.

Завершение добавления отпечатков

В своем конфиге я добавил возможность фиксации пользователя средствами HA. Для каждой ячейки памяти в сканере предусмотрено свое имя пользователя.
У меня всего два пользователя, вы можете добавить еще, для каждой ячейки.
 
    - if:
        condition:
          lambda: 'return confidence > 50;'
        then:
          - homeassistant.tag_scanned: !lambda |-
              switch (finger_id) {
                case 0:
                  return "person_a";
                case 1:
                  return "person_b";
                default:
                  return "person_unknown";
              }

В настройках HA появляется пункт Метки переходим в него.

TAGS Home Assistant

Кликнув на шестеренку, задаем имя. Здесь же можно создать автоматизацию для каждого пользователя.

Метки TAGS


 
  Отзывов: 1
Ваше Имя:


Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.

Оценка: Плохо           Хорошо

Введите код, указанный на картинке:



Последние Статьи
Замок по отпечатку пальца WiFi для Home Assistant
В прошлой статье я рассказывал о подключении модуля RFID - PN532 в Home Assistant, но всегда ...»
16.06.2021 в 11:22    Просмотров: 1071
Home Assistant - Звук через аудио выход RPI
Если нужно выводить оповещение или слушать музыку через аудиовыход Raspberry PI не используя внешн ...»
28.12.2020 в 14:34    Просмотров: 4531
RFID считыватель для Home Assistant
​В последнее время получили широкое распространение метки беспроводной идентификации RFI ...»
18.10.2020 в 12:37    Просмотров: 1967
Последние отзывы
Замок по отпечатку пальца WiFi для Home Assistant
Благодарю за очень полезный материал, даже не знал что ESPHome уже со сканерами работает. Спасибо, удачи в проектах, пишите еще!!! ...»
16.06.2021 в 13:13    Просмотров: 1071
Анатолий
Умный дом Xiaomi ZigBee на Raspberry Pi + Home Assistant
Отличная статья но есть ошибки, а именно отсутствует в основном конфиге sensor: - platform: mqtt name: Bridge state state_topic: "zigbee2mqtt/bridge/state" icon: mdi:rout ...»
10.02.2020 в 20:25    Просмотров: 16226
Kolyk
Открытая система управления “умным домом” MajorDoMo - Часть 2
Продолжайте писать, очень интересно ...»
04.03.2017 в 23:34    Просмотров: 5265
Алексей