前言
事情源于家里的德施曼智能门锁Q5M Pro时不时无法识别我的指纹,只要识别错误2次我就不敢再试了,否则就要被关在门外10分钟,采取手动输入密码解锁的方式开门。我觉得太麻烦,于是就准备改造一下看看有没有方式实现真正意义上的远程开门。
当然,这并不妨碍我拒绝使用它的App。
方式及原理
查询一番资料,想要无损不拆锁的情况下实现远程开门,只需额外配置一套触发装置。
德施曼智能门锁支持蓝牙钥匙,只需将蓝牙钥匙连接到ESP32C3开发板,通过ESP32C3 的 GPIO 控制 PC817 光耦内部发光二极管的通断,让光耦输出侧的光敏三极管等效“按下”德施曼蓝牙钥匙上的物理按键,从而触发钥匙原本的蓝牙开锁流程。
配件
有了这套方案后,购买相应的配件,成本30元左右。
-
德施曼蓝牙钥匙3.0: 咸鱼价14
-
ESP32 SuperMini开发板(焊接排针): 咸鱼价12.6
-
PC817 光耦模块: 淘宝价3
-
杜邦线2-4根:不值钱,买模块的时候让商家送2根;或者用家里的网线自己焊
-
电烙铁: 常用设备,家里有
-
5V插头和供电线: 家里老旧的手机充电器可以使用
| 名称 | 图片 |
|---|---|
| 德施曼蓝牙钥匙3.0 | ![]() |
| ESP32 SuperMini开发板 | ![]() |
| PC817 光耦模块 | ![]() |
操作步骤
第 1 步:蓝牙钥匙配对
先不要拆蓝牙钥匙,在德施曼的App中添加并配对蓝牙钥匙,并且操作确认可以正常开门(双击)后再拆开,底部有两个小的卡槽很容易撬开来,取出其中的PCB线路板,抠出电池。
第 2 步:钥匙部分接线
纽扣电池一侧:通常中间底部弹片是负极(GND),侧面卡扣弹片是正极(+3V),看纽扣电池上的正负极也能区分,底部够不到的地方是负极,架空的弹片是正极。正负极各焊一根线,正极连接ESP32-C3 SuperMini开发板的 3V3 引脚 ,负极连接 GND 引脚。
GND 引脚 只有一个,这边可以先不接,后面PC817输入端的负极也要接这个引脚,可以先将两根线连起来后再接入 GND 引脚。背面微动开关一侧:微动开关的四周有4个引脚,两两相通,取其对角线的两个引脚,焊接2根线。连接PC817 输出端的 IN 和 OUT+ 。任意插。
C 必须接按键的高电位端,3 脚发射极 E 必须接低电位端)。
但是家里没有万用表,没法测量。 如果后边焊好后发现按键没反应,只需把焊在光耦输出端的两根按键线对调一下位置即可!接错了也不会烧坏电路,放心尝试。
第 3 步:ESP32-C3 SuperMini部分接线
根据 ESP32-C3 SuperMini 官方引脚规范 与 ESPHome C3 SuperMini 文档:
-
千万避开
GPIO2、GPIO8、GPIO9:这三个是 ESP32-C3 的启动引导脚(Strapping Pins,且GPIO8接了板载蓝灯、GPIO9接了 BOOT 键),断电重启瞬间会产生电平抖动。 -
推荐使用
GPIO3:GPIO3在上电和重启瞬间完全静默,这样保证不会在家里停电再来电时误触发开门
ESP32-C3 SuperMini开发板的 GPIO3引脚 连接 PC817 输入正极,GND 引脚 连接 PC817 输入负极。
完整硬件接线对照表
| 起点(ESP32-C3 SuperMini) | 中间件(PC817 光耦模块 / 裸芯片) | 终点(德施曼蓝牙钥匙 PCB) | 作用说明 |
|---|---|---|---|
3V3 引脚 |
—(直接连)— | 电池座正极(+) |
给蓝牙钥匙提供稳定的 3.3V 免换电池供电 |
GND 引脚 |
—(直接连)— | 电池座负极(-) |
供电共地 |
GPIO3 引脚 |
接 PC817 输入正极 (IN+ / 1脚阳极) |
— | 接收 ESP32 开锁高电平脉冲 |
GND 引脚 |
接 PC817 输入负极 (IN- / 2脚阴极) |
— | 光耦输入端回路 |
| — | PC817 输出端 OUT+(4脚集电极 C) |
微动按键焊点 A | 模拟手指按下按键(光电隔离) |
| — | PC817 输出端 OUT-(3脚发射极 E) |
微动按键焊点 B | 若触发无反应,将 A、B 两根线在光耦输出端对调即可 |
第 4 步:给 ESP32-C3 SuperMini 刷入 ESPHome 门锁固件
这一步应该不用多说,正常操作刷写固件:
eesphome:
name: deschmann-key
friendly_name: "德施曼蓝牙钥匙"
esp32:
board: esp32-c3-devkitm-1
variant: esp32c3
framework:
type: esp-idf
advanced:
# 消除日志中的 IRAM 警告,为单核 ESP32-C3 腾出高速内存
flash_chip: generic
logger:
api:
# 禁止因短暂网络波动重启芯片
reboot_timeout: 0s
ota:
- platform: esphome
wifi:
ssid: "2.4G Wi-Fi SSID"
password: "Wi-Fi 密码"
output_power: 15dB
power_save_mode: none
fast_connect: true
reboot_timeout: 0s
# 固定静态 IP,替换自己的局域网地址
manual_ip:
static_ip: 10.0.0.35
gateway: 10.0.0.2
subnet: 255.255.255.0
dns1: 10.0.0.2
output:
- platform: gpio
pin: GPIO3
id: optocoupler_pin
- platform: gpio
pin:
number: GPIO8
inverted: true
id: onboard_blue_led
button:
- platform: template
name: "蓝牙钥匙点动测试"
id: unlock_button
on_press:
# 第 1 击:快速唤醒
- output.turn_on: onboard_blue_led
- output.turn_on: optocoupler_pin
- delay: 280ms
- output.turn_off: optocoupler_pin
- output.turn_off: onboard_blue_led
# 停顿 250ms
- delay: 250ms
# 第 2 击:触发开锁
- output.turn_on: onboard_blue_led
- output.turn_on: optocoupler_pin
- delay: 350ms
- output.turn_off: optocoupler_pin
- output.turn_off: onboard_blue_led
lock:
- platform: template
name: "德施曼 Q5M Pro"
id: de_shi_man_q5m_pro
optimistic: true
lambda: |-
return LOCK_STATE_LOCKED;
unlock_action:
- button.press: unlock_button
- delay: 5s
- lock.template.publish:
id: de_shi_man_q5m_pro
state: LOCKED
第 5 步:接入HomeAssistant
刷完固件之后正常情况在HomeAssistant中可以添加设备了。会出现两个实体按键。
点击任意一个按钮即可测试。同时观察PC817 模块上的信号灯。
可能遇到的问题
Q1: HA中点击解锁,PC817 模块无任何信号输入(信号不闪)
接线有问题,重新检查接线。
Q2:HA中点击解锁,PC817 模块有任何信号输入(信号闪一下),但是门不开
先尝试手动按蓝牙钥匙上的微动开关,确定能正常开门的情况下:
原因 1(占 80% 概率):PC817 输出端的两根线“正负极接反了”
-
原因:机械按键本身不分正负极,但 PC817 光耦的输出端内部是一个单向导通的“光电三极管”,电流只能从
OUT+(C 极)流向OUT-(E 极)。如果接反了,哪怕 PC817 上的红灯亮了,内部三极管也是截止不通的,蓝牙钥匙完全收不到按键信号! -
测试与解决:
-
短接测试:直接拿一把金属镊子(或一根杜邦线),触碰两下焊在 PC817 输出端螺丝端子(
OUT1/OUT2或V+/GND)上的那两个焊点。(模拟双击钥匙)- 如果镊子一碰,蓝牙钥匙上的小灯亮了、门锁开了——100% 证明就是光耦输出端正负极反了!
-
解决办法:直接把接在 PC817 输出端的这两根去往蓝牙钥匙按键的线,左右对调换一下位置!
-
原因 2(占 15% 概率):买的“PC817 模块”输出端自带了一颗串联限流电阻导致压降过大
-
原因:很多成品 PC817 模块为了配合 12V/24V PLC 使用,在 输出端(光电三极管第 4 脚与螺丝端子之间)串联了一颗
1kΩ或3.3kΩ的贴片电阻,但是德施曼蓝牙钥匙只有 3.3V 低电压,如果输出回路里串了一颗1kΩ电阻,光耦导通时引脚电压拉不低(压降太大),蓝牙钥匙芯片检测不到按键被按下! -
确认与解决:
-
看一下手里的 PC817 模块输出端附近是不是有一颗贴片电阻
-
如果镊子直接碰蓝牙钥匙按键能开门,但对调输出端正负极后点动依然不开门,说明就是这颗输出电阻挡住了!
-
解决办法:用烙铁把输出端那颗贴片电阻直接用焊锡短接连起来(或者直接把蓝牙钥匙的两根按键线,直接焊在黑色四脚 PC817 芯片的 第 3 脚和第 4 脚 引脚根部,绕过模块上的输出电阻)。
-
成品展示
之前做 AI语音对话台灯 剩下的亚克力材料,把它装进去了。丑是丑了点,这个东西先放在这边看看稳定性,后期准备挪到门口的柜子中去。
| 原始状态 | 现在状态 |
|---|---|
|
|
最后
改造德施曼智能门锁远程开门这套流程不难,主要是我不想拆锁,不然家里领导要跟我拼命,这样无损实现远程控制也挺方便,通过HomeKit Bridge桥接到Apple Home中操作挺方便。
但是我的终极目标是门口摄像头进行人脸识别,实现自动开门的流程。
目前已经实践完成,但是由于家里是一梯一户的类型,电梯出来就是大门,整套流程目前在5s走完,对我来说时间还有点长,目标缩短到3s能开门比较实用,仍在优化中。
具体文章后续再发布吧。







