用esp32和LD2410B通过ESPHOME搭建人体存在传感器并在homeassistant中与米家联动
书接上回,拆了领普的ES1人在 传感器 ,发现核心部件就是LD2410B。
https://post.smzdm.com/p/a8pokr56/
海凌科LD2410B
那么只要将LD2410B接入自己的可联网控制板,并写入驱动代码,就能制作自己的人体存在传感器。这里选用ESP32模块,能接入wifi,能接入homeassistant,有大量的例程参考,正所谓前人栽树后人乘凉,能CV就CV。理论上更为便宜的ESP8266也可以。
一般来说,开发ESP32需要用到ESP-IDF,并在Arduino IDE等开发环境下写代码烧录,这需要懂一点代码,懂一点单片机。那么有没有更为简单的方法呢?
当然有!ESP32作为一款炙手可热的芯片,在市场拥有巨大的保有量,以及众多的开发者。其中ESPHOME可以说是一个专门为ESP芯片和homeassistant智能家庭定做的傻瓜式变成下载平台。
总的来说,通过ESPhome,可以在网页上在线编译ESP系列的固件,并且通过有线或者WiFi的方式下载到ESP模块内。具体步骤是:
1、将ESP32模块通过USB串口连接到电脑
2、在ESPhome WEB界面连接设备,写入esphome专用的底层固件,并配置wifi信息联网。
3、刷入的底层固件后就可以在ESPhome里编写YAML文件生成固件,网页编译,在线OTA刷入,十分方便。
ESPHOME WEB界面,这个是免安装的直接打开 https://web.esphome.io/安装ESPHOME
安装ESPhome的方法有两种,一种是在homeassistant的加载项里面直接安装addon,另一种是通过docker安装。
特别注意点是homeassistant有多种安装方式,我们一般用dokcer和虚拟机VM的方式安装homeassistant OS,只有在homeassistant os上才能直接安装esphome,通过docker安装的hs是没有的。 至于homeassistant的安装可以搜索站内其他文章,这里默认大家都会homeassistant了。
所以这里建议用docker的方式安装ESPhome。同样这里默认大家都会docker了。
用群晖的,可以在注册表映像里面拉esphome/esphome,然后一路新建-next-启动就行。用docker管理器的,先登录终端,然后用root权限输入
安装好后,输入http://主机地址:6052就能访问ESPHOME了。小tips:现在dockerhub被和谐,可能需要一些魔法才能直接拉取,不然可能会报错。
ESPHOME的dashboard控制面板这里要说明ESPHOME与ESPHOME WEB的区别,ESPHOME WEB 是一个在线网站无需安装,网址为 https://web.esphome.io/ ,在这里可以直接给esp32安装底层固件以便在ESPHOME里面操作。而ESPHOME 要通过homeassistant OS里面的插件或者docker安装。
开始合成
准备工具:ESP32模块,LD2410B模块,模块转杜邦线,USB线,电脑一台。
准备环境:装好homeassistant,装好ESPHOME,浏览器一个。
模块连接
模块连接ESP32的IO17和IO16分别当做RX和TX,和LD2410B的TX和RX连接。不同的模块的IO口有出入,这里随便选两个就好,只要自己记住后面代码用到。由此可见只需要两个IO口便可,所以esp8266也是足够的。
安装底层固件
首先,将ESP32模块连接到电脑并装好串口驱动,记录串口号如COM4口。打开esphome web网页,点击connect并选择COM4
esphome web然后点击蓝色的prepare for fist install,网页会自动识别esp32并自动下载底层固件。安装完成可以设置路由器的ssid以及密码,随后ESP32就会自动联网了。点击visit device会跳转到esp32的后台,在后台我们能看到esp32模块的名字ESP32-XXXX-XXXX,以及当前模块的IP地址。
编写固件
打开ESPHOME(docker方式或者HSos方式),这时一般就会显示discover模块了。我们在右下角点击“new device”-“continue”-然后把发现的名字填进去ESP32-XXXX-XXXX,然后选择ESP32模块的型号,这时会自动生成一个 api秘钥 (后面会用到)该发现的模块就会从“discover”变成“online”了。
esphome 重要的秘钥点击模块下面的edit,进入编程。
默认生成的信息这些默认的信息橙色的都不要改动,是esp32的联网信息,秘钥凭证等。
牛逼的代码
就像上文说的,ESP32已经有海量成熟的代码,LD2410B也是一款商用的传感器,在开源社区已经有人合成了!所以只管CV!快乐CV!
但是有一些坑踩过的还是要造福值友的,就是要知道改什么地方,CV的价值就在于知道怎么CV能跑起来。
首先将上面默认生成的信息备份到记事本,再将YAML里面的信息全部删掉,将下面贴出的代码全部复制上去。然后 需要改动的地方:
1、上面橙字的秘钥(改成记事本内备份的)
board:后面的型号(改成记事本内备份的实际型号) 3、tx_pin和rx_pin的实际IO口(杜邦线连哪个改哪个)
然后SAVE-INSTALL,等待编译。编译过程需要自动下载对应的库,可能也需要魔法来加速。编译完后就可以通过无线ota,或者有线串口的方式下载模块里面了。
重启模块 电源 。
homeassistant添加传感器
如无意外,重启后模块就能正常工作了。可以通过esphome控制面板看到模块的信息,点该模块下visit按钮
模块后台信息在homeassistant中,点击配置-设备与集成,一般如果模块正常工作就会出现在“已发现”列表里面,如果没有就右下角“添加集成-ESPHOME-输入模块的IP”,这时候HS会问你要API秘钥,可以在上述备份的记事本中找到,或者在ESPHOME控制面板的show api key中看到,即可。
api key homeassistant添加模块后的样子至此已经可以在HS中自定义各种联动场景了。
总结:
合成成功后的人体存在传感器可以说在功能上和领普的es1十分接近了,diy的话成本15+15=30吧,如果用裸esp32核心,或者esp8266会更便宜,适合手头上已经有esp芯片的垃圾佬。而领普es1各种券后也能做到44元的超好价格,还能直接在米家超控,也很超值!
但是垃圾佬的乐趣就是在于折腾,是吧!
下面欣赏下人体存在传感器-探索者版本的美照
人体存在传感器-探索者版本 领普es1 手机客户端hs界面 分享 举报文章很值,打赏犒劳作者一下
打赏爱晒太阳的英美短混血小猫咪
关注 hi-link 海凌科 人体存在传感器LD2410B毫米波雷达感应模块支持光敏带蓝牙