接入更多设备,打造动环监测系统
书接上回打造一个智能温湿度监测平台
前言
在上次的文章里面,我们介绍了 HA 平台的搭建,ESPHome 环境的搭建,连接了两款温湿度传感器,但是机房监控不仅仅有这两种设备,还有门禁、漏水、气体、电池、电表、UPS监控……各种各样的设备。本篇我们就介绍一下怎么把这些稀奇古怪的设备对接到我们的平台上面
对接各种设备
选择什么协议?
上回说到,HA 能够支持的协议非常之多,比如 TCP/IP 、BLE、ZigBee 等等,还能与米家等平台对接。不过考虑到数据安全和断网的可能性(或者说是云平台的稳定性,比如米家的服务器就炸过几回),加上现有设备的协议考虑,我们选择统一使用工业上常用的 Modbus RTU 协议,用 esp32-c3 来采集并统一上报
设备类型?
去机房挨个翻了一下设备,目前已有设备主要是两种,一种是直接能通过 Modbus 上报数据的设备,一种是“开关量”设备,通过 Python 写的监测程序和一套“南瓜”(Niagara)物联网监测平台监测。直接通过 Modbus 上报数据的设备很简单,我们上次介绍过康耐德的温湿度传感器,而所谓“开关量”设备指的是通过开关的通断来表示某种物理状态的设备,如果有玩过「缺氧」或者是「戴森球」折腾过自动化可能比较容易想到,我们用烟雾报警器来举个例子
常见的开关量信号示意图 点击展开/收合图片
烟雾报警器输入为 12V DC,输出为 12V DC 开关量,用于带动警铃等设备,并与消防系统联动,对比上面的接线图,它属于湿接点类型,以常开的烟雾报警器举例,正常情况常开(开指开路,也就是断开,常闭指闭路/闭合,也就是连通,需要注意),我们按照湿接点接入方法,此时整个电路断开,假如着火,烟雾报警器的电路闭合,整个线路连通。
也就是说,我们只需要监测整个电路设备连通即可知道对应的监测指标的状态
但是开关量状态是没有办法直接上报到 HA 平台的,因为像烟雾报警器之类设备没法联网,那么为了让它能够连接到网络并将数据上报到 HA 平台,我们需要一个“开关量采集器”,长这个样子
点击展开/收合图片
通过开关量采集器,我们可以把多路开关量信号转变成 Modbus 协议的数据,传递到 HA 平台
一些特殊的设备
一些设备对于初次做这些的朋友可能有点绕,这里介绍一些
门禁
门禁这里我们主要需要监测门的状态,防止忘记关门,我们常采用干簧管来监测,有埋入型的可以直接塞到防盗门里面,长这样
点击展开/收合图片
三相电表
在现场操作三相电表一定要谨防触电!
三相电表往往会串上一个电流互感器,主要原因是用电量太大防止电表数据溢出,在对接 HA 平台的时候要注意观察电流互感器的倍数,凡涉及的量里面有电流的都要乘上这个比例,互感器长这样
点击展开/收合图片
如图所示的互感器,关注其电流比为“250/5A”,也就是说,电表上监测到涉及电流的项目都小了50倍,计算时需要乘上50,比如功率【P=UI】,用电量【功率(KW)x小时(h)】等等
使用 esphomeYAMLGenerator
对于 UPS 主机,精密空调等,往往监测指标有上百个,一个个指标填写是很麻烦的,为此,我写了一个生成器,借助百度翻译的 API ,可以快速生成 esphome 的 yaml 文件