赞
踩
本项目的起因是周末在家洗衣服,晾在窗外的晾衣架上,本来是个艳阳高照的天气,突然下起了雨,而在屋内写代码的我对此一无所知,等发现的时候,快晾干的衣服已经在滴水了,因此萌生了DIY一个能够检测下雨,并且语音提醒的东东。
首先看一下演示视频
HomeAssistant下雨检测演示视频
接下来,咱们进入正题。
本项目使用到的硬件和自制人体感应器部分基本相同,此处只是罗列出来,不再过多介绍了。传送门
Water Sensor是一个利用湿度方式检测有没有水分的传感器,可用于天气状况的监测,可以检测有没有下雨。将传感器放置在室外,当有雨水滴到检测面上时,湿度将增大,随之电压升高,并转成数字信号DO和模拟信号AO输出。除了检测雨水外,雾水和水蒸气也都能检测。
为ESP-01S烧录ESP-Home固件,硬件安装好后,可以通过OTA的方式升级固件,而无需取下。
固件的编辑、编译、下载流程参考 软件篇
配置文件如下:
esphome: name: esp01s_rain platform: ESP8266 board: esp01_1m wifi: ssid: "TP-LINK_C770" password: "tzacwbc418" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp01S Rain Fallback Hotspot" password: "HgQQT5PNt4Z5" captive_portal: # Enable logging logger: # Enable Home Assistant API api: ota: web_server: ##web控制,添加了这2行,就可以在网页端打开设备ip port: 80 binary_sensor: #定义传感器 - platform: gpio pin: number: 0 inverted: yes name: "rain sensor" device_class: moisture id: motion_01 on_press: - switch.turn_off: motion_01_light on_release: - switch.turn_on: motion_01_light switch: - platform: gpio pin: GPIO2 name: "rain light" id: motion_01_light restore_mode: ALWAYS_ON
硬件接线图如下所示:
连接方式与人体感应器基本相同,需要注意的是人体感应开关需要5V供电,而雨滴传感器只需要3.3V即可。
硬件全家福如下图所示:
打开web调试页面,IP地址可以到路由器管理页面查找,可以在web界面做简单的调试、OTA升级等功能。
在OTA Update处选择固件文件,然后点击update
升级完成后,页面显示如下,点击F5刷新页面即可。
代码如下(示例):
添加设备的方法与人体感应器的添加方法相同,此处不再赘述。
创建两个自动化脚本,分别命名为下雨提醒和雨停提醒,创建好后再开始编辑。
下雨提醒脚本设置如下:
触发条件设置为 雨滴传感器检测到湿度 并持续2s ,延时是防止传感器抖动误报,
环境条件中 增加时间,设为7:00-20:00,睡眠期间免打扰。
动作中,添加调用服务,通过语音播报下雨提醒, 服务选择 tts, 实体选择音频输出设备,消息填写语音播报的信息。
由于雨滴传感器检测下雨后,并不会保持下雨的状态,而是会连续的触发,为了防止重复触发提醒,添加一个动作,下雨提醒后关闭自身。再添加一个动作,开启雨停提醒脚本。
雨停提醒脚本设置如下:
触发条件为检测到雨滴传感器变干,并持续一段时间,这里为了方便测试,设置为10s,实际可以设置的长一些。
添加动作,设置雨停的语音提醒。
添加一个动作,检测到雨停时,停用自身,并且启用下雨提醒的自动化脚本,继续检测下雨的状态。
通过上述两条自动化脚本,可以实现检测到下雨后触发语音提醒,并且每次下雨只提醒一次。
以上脚本只是一个示例,可以通过定义自动化脚本,实现更多好玩的功能。
看到这里,我们的下雨感应器就做好了,接下来计算一下成本
相关的资料和文件在此处下载,同时也会上传到我的个人公众号中,回复“下雨感应器”即可免费领取。
如果你对HomeAssistant和智能家居的内容感兴趣,欢迎关注我的个人微信公众号,获取更多精彩内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。