ESP8266+ESPHome+Homeassistant实现地暖水温监测
进入冬天后,天气一天天变冷,虽然已经开始集中供暖,但是家里的温度确并不暖和。我经常怀疑供热公司有没有好好供暖,我突发奇想,为了更好的了解家里的供热情况,何不做个实时监测地暖进出水温度的装置。经过查阅资料,最终决定使用esp+温度传感器+esphome来实现,并接入home assistant,从而可以直观的看到水温的变化。
一、硬件部分
(一)需要的硬件
ESP8266开发板*1个
DS18B20数字温度传感器*2个(最好是扁头的,方便固定)
各种工具:电烙铁、耐高温胶带、导热硅胶片等


(二)硬件制作
DS18B20传感器有三根引线,分别是3.3V电源、接地、数据,把它分别接在esp8266的3.3V、GND、GPIO引脚上。注意GPIO的0引脚有特殊用处,要避开使用这个引脚。一般开发板PCB印刷的引脚会用D1D2D3……代替,可查看商家提供的开发文档。
我使用的是D2、D6这两个引脚,3.3V和GND接到对应的引脚即可,一定要看清楚不要接错。
这里我要说明一下,我的这个接线方法其实是浪费引脚接口了。一开始我以为DS18B20的数据接口需要分开接,后来在查阅资料时发现它使用的是总线通讯的方式,也就是说可以把两个传感器的数据线都接到同一个GPIO上,使用不同的地址来识别不同的传感器。这样使用ESP01S就可以了,既缩减了体积,又节省了成本。

为了美观和牢固,可以使用热熔胶、热缩管将线材和板子固定好,也可以安装进亚克力的盒子里。
二、固件制作
硬件制作好以后,就是刷入固件和调试了。由于我这个设备最终也是要接入homeassistant里使用的,所以我选择的固件是esphome。它不要编写代码,只需要配置yaml文件,即可编译成你需要的功能的固件,而且支持通过WiFi进行OTA升级。这样你只需第一次烧入固件时要用到数据线连接电脑,后面的参数修改固件更新你都不用再去把设备拆下来,直接使用WiFi连接OTA即可,真是方便。
(一)准备工作
在Homeassistant里安装ESPHome,装好后会在HA界面的侧边栏显示
ESPHomeBuilder菜单电脑装好烧录器的驱动,我买的是自带CH340G的开发板,所以装好CH340G的驱动即可
一根USB数据线,用于连接ESP8266开发板和电脑
(二)具体步骤
1.第一次使用时,需要给esp8266开发板刷入初始固件。
将开发板连接到电脑上,进入ESPHomeBuilder界面,点击“OPEN ESPHOME WEB”->点击“PREPARE FOR FIRST USE”->点击“CONNECT”,在弹出的对话框选择开发板连在电脑上的端口,然后连接->填写家里WiFi的名称和密码->根据提示开始刷写固件,最后出现“Configuration installed!”表示完成初始固件的烧录。





2.在ESPHOME里连接硬件ESP8266。
在第一步刷写好初始固件后,重启ESP8266会自动连上WiFi。还是进入ESPHomeBuilder界面,这时会提示发现新硬件,点击“TAKE CONTROL”,填写名称、网络信息等,这样就添加成功了。

3.配置具体参数,并将新固件OTA到开发板上。
这时,我们再进入esphome的页面,就会看到刚刚添加的新设备,右上角显示“ONLINE”代表设备已成功联网。这时点击“EDIT”进行配置文件的编辑。

这里的yaml文件是刷写初始固件时配置的默认参数,我们想要使温度传感器能够正常使用,还需要添加以下代码:
# 这里是配置DS18B20的两个总线,总线对应的针脚pin需要看开发板的文档。(前面的硬件制作部分,如果把两个传感器的数据线都连到一个针脚上,这里只需配置一个总线)
one_wire:
- platform: gpio
pin: GPIO4
id: one_wire01
- platform: gpio
pin: GPIO12
id: one_wire02
# 配置传感器,update_interval是数据上报频率,120秒就可以了
sensor:
- platform: dallas_temp
name: temperature1
update_interval: 120s
one_wire_id: one_wire01
- platform: dallas_temp
name: temperature2
update_interval: 120s
one_wire_id: one_wire02添加好以后,点击“SAVE”进行保存,然后回到上一个页面点击“UPDATE”进行OTA更新,这时ESPHome会自动编译固件、上传固件、刷写固件,这个过程需耐心等待一会儿,出现下图内容表示更新完成。

三、Homeassistant系统设置
以上工作都完成后,我们就可以把设备添加到HA里了。这时进入到“设置”里的“设备与服务”,在“已发现”里就会看到我们的ESPHOME设备,点击“添加”、“提交”,填写自定义设备名称、选择区域,最终完成设备的添加。



四、地暖硬件安装
传感器设备的软硬件工作全部完成了,那怎么才能检测到地暖的水温呢?本着省事的原则,同时也避免对地暖的管路造成影响,我是将温度传感器直接贴在了地暖分水器的铜管上面。如下图,利用导热双面胶、高温胶带,将探头固定在管子上。


这样,就能很直观的看到地暖的进出水温度。

五、结语
至此,整体的工程就全部结束,从采购零件到焊接,从调试再到安装,断断续续花了我一个星期的时间。关于监测地暖水温有没有意义我不清楚,但是整个折腾的过程却是很享受,这大概就是DIY的乐趣所在吧。