Tuya TY01 门窗传感器
背景
由于巴塞罗那的治安不算很好,日程规律的独居学生又容易成为入室行窃的目标,于是想给房门装上门磁传感器。从 tasmota 支持设备列表中找了一个合适的型号 “TY01”,从 AliExpress 以 €5.76 包邮购入。
Hacking
拆开传感器看到 WiFi 模块上印着 “CB3S”,一查又是 Tuya 基于 Beken BK7231 系列 ARM SoC 的模块,再次踩雷。
还好这个 PCB 比较小又容易拆,在电热灶台上靠近烤一会儿就能把模块轻松解焊:
清理焊盘后换上一片 ESP-12F,然后焊上需要的几条线:
- 黑色:GND,PIN9 或电池座负极
- 白色:Vcc(+3.3V),PIN8
- 灰色:RxD,PIN15
- 紫色:TxD,PIN16
另外短接 PIN12(GPIO0)和 PIN9 或屏蔽罩(GND),再用镊子短接 PIN1(RST)和屏蔽罩后释放,让 ESP 重置后进入 flashing 模式即可。
起初使用原来的 GPIO7 作为输入引脚,可是由于在 ESP8266 模块上这个脚连着内部的闪存,会导致无法刷写程序,只好将干簧管飞线到一个空闲 GPIO(如 GPIO5),并将其通往 GPIO7 的线路割断。
另外 Tuya CB3S 模块运行不需要上拉 ENABLE 脚,PCB 上并没有相关电路,还得自己焊一个上拉电阻到 Vcc,最后完成如图:
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Ω 的即可。
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