之前总是担心厨房水槽下水管会漏水,所以直接用雨水传感器做了一个水浸传感器,这样在漏水的时候,就可以直接收到通知,从而及时去检查并修复下水管漏水问题。
要 DIY 一个水浸传感器还是很简单的,只需要一个雨水传感器和一个 NodeMCU 就可以了。
雨水传感器
给 NodeMCU 刷上 ESPEasy,配置一个 Switch 设备,将 GPIO 设置为 NodeMCU 与雨水传感器 DO 针脚连接的 IO 就可以了。
然后再在 Domoticz 中配置好一个 Virtual Sensor,类型改为 Switch 就可以了。
报警声音
有些时候推送通知会比较慢,又或者手机不在身边,那么是否可以直接在 NodeMCU 这一端直接使用声音报警呢?这很简单,加个蜂鸣器模块,再写点代码就好了。
先给 ESPEasy 写个蜂鸣器插件,关键代码就是使用 Arduino 的 tone 函数了:
#define Plugin158_Do 262
#define Plugin158_Re 294
#define Plugin158_Mi 330
#define Plugin158_Fa 349
#define Plugin158_Sol 392
#define Plugin158_La 440
#define Plugin158_Si 494
static int Plugin158_TonesFreq[] = { Plugin158_Do, Plugin158_Re, Plugin158_Mi, Plugin158_Fa, Plugin158_Sol, Plugin158_La, Plugin158_Si };
static void Plugin158_PlayTones(int taskIndex) {
int pin = Settings.TaskDevicePin1[taskIndex];
char *tonesStr = "616161";
pinMode(pin, OUTPUT);
int len = strlen(tonesStr);
if (Plugin158_TonesPlayingCharIndex < len) {
char c = tonesStr[Plugin158_TonesPlayingCharIndex];
int index = c - '0';
if (index > 0 && index <= 7) {
tone(pin, Plugin158_TonesFreq[index]);
} else {
noTone(pin);
}
}
Plugin158_TonesPlayingCharIndex++;
if (Plugin158_TonesPlayingCharIndex >= len) {
Plugin158_TonesPlayingCharIndex = 0;
}
}
为了能在有漏水时,马上报警,或者为了在没有网络情况不好时也能马上使用声音报警,需要在 ESPEasy 的本地规则里检测到漏水时来报警。
要实现这个功能,只需要使用 ESPEasy 的 Rules 功能,在 Rules 里检测到有漏水时,直接调用蜂鸣器插件进行报警:
on WATER#VAL=1 do
buzzer,2,1
endon
on WATER#VAL=0 do
buzzer,2,0
endon
更好的选择
当然,如果已经有小米网关了,可以直接购买 Aqara 水浸传感器,使用电池,方便部署,还美观 🙈。
而且小米的东西也可以不借助于 Domoticz 直接使用,可以将水浸传感器设置自动化,触发时直接使用小米网关播放警报音。
0 条评论。