2024年4月25日更新
之前存在的问题,是由于wifi信号不好所导致的,与LD2410B无关。
- 解决方案1:将板载天线的esp32,换成了外接ipex天线的esp,另花几元买了个外个的天线,信号改善非常多,再没出现掉线情况。这也是我实际采用的办法。
- 解决方案2:折腾途中,也尝试过换大功率AP、加装AP扩展等办法,也都可以解决。
esphome更新
- 近几个版本的esphome中,增加了对LD2410B蓝牙开关的控制,就不用像我以前一样、另写uart命令了,亲测非常方便,也很稳定。
总结
- 论坛中的子子擎方案,使用LD2410B,作为人体存在的解决方案,简直完美!
- 经过几次的蓝牙调参后,我的人体存在传感器已经非常稳定了,不仅没出现掉线,也没出现误报。很满意。
- 再后续的需求,可能就是人体定位了。目前看来,这个LD2410B恐不能胜任。看之后的雷达方案吧。
背景
分别尝试过以下方法,均失败:
- 更换数据线,保证供电
- 更换wifi信道,减少干扰
- 关闭LD2410B的蓝牙广播
难道是我使用的这批ESP32体质太差?
经验分享
折腾过程中,了解了下LD2410B的协议,看到了可以关闭蓝牙广播,需要在ESPHome中添加以下配置,分享如下:
switch:
- platform: template
name: "${device_name} BT"
turn_on_action:
# 使能配置
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x04, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# 蓝牙开
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x04, 0x00, 0xA4, 0x00, 0x01, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# ld2410b 重启
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x02, 0x00, 0xA3, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# 结束配置
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x02, 0x00, 0xFE, 0x00, 0x04, 0x03, 0x02, 0x01]
turn_off_action:
# 使能配置
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x04, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# 蓝牙关
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x04, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# ld2410b 重启
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x02, 0x00, 0xA3, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# 结束配置
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x02, 0x00, 0xFE, 0x00, 0x04, 0x03, 0x02, 0x01]
assumed_state: true
button:
- platform: template
name: "${device_name} Ld2410 Reboot"
on_press:
# 使能配置
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x04, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# ld2410b 重启
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x02, 0x00, 0xA3, 0x00, 0x04, 0x03, 0x02, 0x01]
- delay: 0.5s
# 结束配置
- uart.write: [0xFD, 0xFC, 0xFB, 0xFA, 0x02, 0x00, 0xFE, 0x00, 0x04, 0x03, 0x02, 0x01]