最近毫米波很火,正好模块价格也下来了,群友介绍购买了海凌科 LD2410
的毫米波模块,参与了早期测试版本。在 1688
找到了一个相对完美的红外遥控外壳,稍加修改之前S6in1的项目,画了 PCB
测试。为了实现 LD2410
串口相关功能,找到了一个外国大佬的帖子,啃了两天 C++
基础,搞出了相对完美的 ESPHOME
固件。因为很忙,都是抽空搞的,整个项目总共花了两个月。PCB
测试样品花了一些时间,固件编写也花了几天时间,更多的时间都是用来测试毫米波稳定性,稳定性这里要感谢我的硬件大佬朋友孔老板的指导
- 外观精致
- 支持磁吸底座
- 多功能:人体存在,距离调节,呼吸检测,环境亮度,红外遥控(支持收发,但暂时不能同时使用,
ESPHOME
的BUG
),蓝牙网关(测试过米家低功耗) - 方便二次开发:
TYPE-C
接口,支持串口调试(USB Serial/JTAG) - 成本低廉(总体硬件成本
50
左右) - 稳定性极好
- 主控
ESP32C3
名称 | 型号 | 数量 | PCB 标注 | 链接 |
---|---|---|---|---|
LD2410 毫米波雷达 | LD2410 / LD2410B | 1 | LD2410 | 购买 |
VS/HX1838/PC638 红外接收头 | 1 | HX1838 | 购买 | |
3MM 940nm 红外发射管 | 2 | LA / LB | 购买 | |
光敏电阻 5516 | 1 | GL5516 | 购买 | |
ME1117A33B3G 线性稳压器 | 1 | 1117-3 | 购买 | |
ESP-C3-13U 模块 | 1 | ESP-C3-13U | 购买 | |
贴片 S8050 J3Y 贴片三极管 500MA SOT-23 | 1 | J3Y | 购买 | |
0603 贴片电阻 1MΩ 1 兆欧 1/10W 精度 ±1% | 1 | R1 | 购买 | |
0603 贴片电阻 10KΩ 10 千欧 1/10W 精度 ±1% | 1 | R2 | 购买 | |
直插固态电解电容 1000uF 6.3V 6.3*11.5mm | 1 | C1 | 购买 | |
1206 贴片电容 4.7UF | 1 | C2 | 购买 | |
1.27mm 间距 单排母 | 1X5P | 1 | LD2410 | 购买 |
贴片 USB-3.1 插座 Type-C 母座 16P | 1 | TYPE-C | 购买 | |
直插 6*6 轻触开关 | 5、0 高 | 1 | BUTTON | 购买 |
2.4G 内置柔性 FPC 软天线 | IPEX 接头 | 1 | - | 购买 |
304 不锈钢平头自攻螺丝 | M1.7*6 | 3 | - | 购买 |
红外转发器外壳 | 1 | - | 购买 | |
车载磁吸出风口手机支架 | 1 | - | 购买 |
打板(板厚选1mm
)-->焊接-->组装-->刷机
- 支持运动、静止状态显示
- 检测距离显示
- 动静距离显示,能量显示
- 动静灵敏度调节
- 动静距离调节
ESP32
状态显示(IP,MAC,CPU
温度,运行时间)
GPIO | 功能 |
---|---|
0 | 红外接收 |
1 | 红外发射 |
2 | 背部自定义按键 |
3 | 光敏电阻电压 |
5、6 | 毫米波串口 |
8 | 毫米波状态 |
组件 | 含义 |
---|---|
espmmw_brightness | 环境亮度 |
espmmw_button | 毫米波背后按钮 |
espmmw_cpu_temprature | CPU 温度 |
espmmw_detection_distance | 检测距离 |
espmmw_get_conf | 获取当前毫米波配置 |
espmmw_ip | IP |
espmmw_mac | MAC |
espmmw_max_move_distance | 最大移动距离调节(最大距离=n*0.75 米) |
espmmw_max_static_distance | 最大静止距离调节 (最大距离=n*0.75 米) |
espmmw_mmw | 毫米波状态(ON-有人,OFF-无人)态 |
espmmw_mmw_status | 毫米波状态(OFF-关闭,MOVE-运动,STATIC-静止,ON 运动或静止) |
espmmw_move_distance | 当前运动距离 |
espmmw_move_energy | 当前运动能量值 |
espmmw_move_sensitivity | 移动灵敏度调节 |
espmmw_reboot | 重启 esp |
espmmw_reboot_mmw | 重启毫米波 |
espmmw_reset_mmw | 重置毫米波 |
espmmw_signal | WiFi 信号强度 |
espmmw_static_distance | 当前静止距离 |
espmmw_static_energy | 当前静止能量值 |
espmmw_static_sensitivity | 静止灵敏度调节 |
espmmw_unattended_duration | 无人持续时间调节 |
espmmw_uptime | 运行时间 |
-
编译和刷机
Linux
( 以下是在x86
的Ubuntu
下操作的,其他Linux
类似,不支持ARM
)2、
docker-compose.yml
文件增加如下内容version: "3" services: esphome: image: esphome/esphome:2022.9.4 container_name: esphome volumes: - /etc/localtime:/etc/localtime:ro - /opt/esphome/conf:/config - /dev:/dev environment: - TZ=Asia/Shanghai network_mode: host restart: always privileged: true
3、安装
esphome
的docker
docker-compose -f docker-compose.yml up -d
4、打开
esphome
的页面http://IP:6052
,新增espmmw
的配置文件,编辑配置文件删除全部,将文件夹esphme的配置粘贴上去,按需修改后保存5、
docker
服务器执行如下命令进入esphome
的docker
内部docker exec -it esphome bash
6、设置 https 代理(这部比较重要,编译需要从
git
下载依赖)export https_proxy=http://IP:PORT
7、将毫米波通过数据线插入服务器
8、执行编译并刷入
esphome run espmmw.yaml
Windows
将编译的固件放入flash_tool,按说明操作
-
组件 含义 espmmw_mmw 毫米波状态(ON-有人,OFF-无人) espmmw_move_energy 当前运动能量值 espmmw_move_sensitivity 移动灵敏度调节 espmmw_static_energy 当前静止能量值 espmmw_static_sensitivity 静止灵敏度调节 espmmw_unattended_duration 无人持续时间调节 1、当
espmmw_move_energy
超大于设定的espmmw_move_sensitivity
时espmmw_mmw
触发ON
2、当
espmmw_static_energy
小于设定的espmmw_static_sensitivity
时espmmw_mmw
触发OFF
3、
espmmw_mmw
触发ON
之前都是通过espmmw_move_energy
的值判断的,一旦触发ON
后,后面的检测都是通过espmmw_static_energy
来判断是否OFF
的4、我把
espmmw_move_sensitivity
设置成99
是为了防止一些轻微的动作误触有人,比如阳台的衣服或者窗帘微动5、我把
espmmw_static_sensitivity
设置成10
是为了更好的检测呼吸,防止误触无人6、实际使用中大家可以根据环境内的
espmmw_static_energy
值来设置,因为有些环境espmmw_static_energy
就是高于10
的,我自己家用10
是没啥问题的,但有些地方调高一点比如阳台,防止衣服微动导致无法触发espmmw_mmw
的OFF
-
由于
ESPHOME
的一些限制,还有雷达模块串口设置容易死机,所以需要重复步骤多次确认1、先点击
espmmw_get_conf
获取配置,如果配置获取失败拔电重启再重复操作2、设置好后一定要点击
espmmw_get_conf
获取配置确认设置成功 -
红外收发
红外接收一般用来学习遥控器后模拟,或者接收指定代码后,执行特定操作
请看rr文件夹内的说明
C3
的ESPHOME
有BUG
,需要定义一个没用的${device_name}_null
remote_receiver: - id: ${device_name}_null pin: number: 10 inverted: true dump: raw - id: ${device_name}_rr pin: number: 0 dump: raw
发 RAW 码
将学习到的
RAW
码填入remote_transmitter: pin: 1 carrier_duty_percent: 50% - platform: template name: ${device_name}_tv_on_off on_press: - remote_transmitter.transmit_raw: carrier_frequency: 38kHz code: [#这里放入日志中打印的RAW码]
-
蓝牙网关
直接采集
esp32_ble_tracker: - platform: xiaomi_lywsd03mmc mac_address: #mac bindkey: #bindkey temperature: name: ${device_name}_mi_temperature humidity: name: ${device_name}_mi_humidity battery_level: name: ${device_name}_mi_battery
ESPHOME
代理ESPHOME
和HA
添加配置后重启,HA
集成里就会出现支持的设备,配置如下HA
的configuration.yaml
添加# Bluetooth bluetooth:
ESPHOME
配置添加esp32_ble_tracker: bluetooth_proxy:
-
LD2410
的芯片固件还是有一点问题,发送串口命令容易死机,这个需要官方提供固件优化,但串口接收很稳定不影响实际使用 -
LD2410
的发热很多人觉得温度很高,温度确实比较高,但实际并不影响使用,我已经用了两个月没发现有什么问题 -
红外无法同时使用,硬件并没有问题,
ESPHOME
的锅,希望有大佬能看到并解决主要应该是ESP32C3 RMT
兼容的问题
-
这次
DIY
是目前花的时间和精力最多的一次,禁止商用和私自销售,请尊重原创,大家也可以参考我其他项目S6in1,和这个红外遥控外壳自行DIY
,时间精力花了不少希望大家理解 -
!!!转载请注明出处 !!!
默认包含雷达和一根数据线,不含充电器
配件可以根据需求自行购买,强烈推荐磁吸底座,数据线长度随机发
由于还有工作,都是抽空 DIY
,所以发货时间不能保证,但会尽快,希望理解