Tuya TY01 门窗传感器

背景

由于巴塞罗那的治安不算很好,日程规律的独居学生又容易成为入室行窃的目标,于是想给房门装上门磁传感器。从 tasmota 支持设备列表中找了一个合适的型号 “TY01”,从 AliExpress 以 €5.76 包邮购入。

Hacking

拆开传感器看到 WiFi 模块上印着 “CB3S”,一查又是 Tuya 基于 Beken BK7231 系列 ARM SoC 的模块,再次踩雷。

before

还好这个 PCB 比较小又容易拆,在电热灶台上靠近烤一会儿就能把模块轻松解焊:

wifi-module-removed

清理焊盘后换上一片 ESP-12F,然后焊上需要的几条线:

  1. 黑色:GND,PIN9 或电池座负极
  2. 白色:Vcc(+3.3V),PIN8
  3. 灰色:RxD,PIN15
  4. 紫色:TxD,PIN16

另外短接 PIN12(GPIO0)和 PIN9 或屏蔽罩(GND),再用镊子短接 PIN1(RST)和屏蔽罩后释放,让 ESP 重置后进入 flashing 模式即可。

testing

起初使用原来的 GPIO7 作为输入引脚,可是由于在 ESP8266 模块上这个脚连着内部的闪存,会导致无法刷写程序,只好将干簧管飞线到一个空闲 GPIO(如 GPIO5),并将其通往 GPIO7 的线路割断。

另外 Tuya CB3S 模块运行不需要上拉 ENABLE 脚,PCB 上并没有相关电路,还得自己焊一个上拉电阻到 Vcc,最后完成如图:

done

Software

ESPHome 配置示例:

esphome:
  name: door-sensor
  comment: 'Main door sensor'

esp8266:
  board: esp12e

logger:
  level: WARN
#   baud_rate: 0

wifi:
  fast_connect: true
  networks:
    - ssid: !secret wifi_ssid
      bssid: !secret wifi_bssid
      password: !secret wifi_password

api:
ota:
  password: !secret ota_password

binary_sensor:
  - platform: gpio
    pin:
      number: 5  # 连至干簧管
      inverted: true  # 反转 HASS 状态(关门为 OFF,开门为 ON)
    id: main_door
    name: 'Main Door'
    device_class: door  # 指定 HASS 设备类(使 OFF/ON => Closed/Open)
    on_state:  # 让 LED 在开关门时闪一下作为状态指示
      then:
        - light.turn_on: led
        - delay: 500ms
        - light.turn_off: led

light:
  - platform: status_led
    id: led
    name: 'Status LED'
    pin: 13  # 连至 PCB 上的 LED
    internal: true  # 不暴露状态指示 LED 至 HASS

测试之后传感器无法正常工作,分析电路发现干簧管下拉电阻过大(10 MΩ),把它换成 10 KΩ 的即可。

reed-pulldown-resistor

HASS 警报

将传感器接入 HASS 后,添加一个 automation 即可实现用户不在家时门被打开则发送警报至手机:

alias: Door Sensor Alert
mode: single
description: >-
  入侵警报
trigger:
  - type: opened
    id: door-sensor_opened
    platform: device
    device_id: c4d038b4bed09fdb1471ef51ec3a32cd  # (由 HASS 生成)
    entity_id: binary_sensor.main_door
    domain: binary_sensor
condition:
  - condition: not
    conditions:
      - condition: state
        entity_id: person.zry98  # 人物 ID
        state: home
action:
  - service: notify.mobile_app_zry_iphone  # 手机 ID
    data:
      data:
        push:
          sound:
            name: default
            critical: 1  # 推送 iOS 重要提示
            volume: 1
      title: 入侵警报
      message: 房门被打开了

0 Comments

发表评论

Avatar placeholder

您的电子邮箱地址不会被公开。