家庭电量可观测性(背景)
背景
2018年的时候在某智能家居论坛看到一句话:
前一段有个帖子里,说米家智能插座增强版可以看功率,我提到了只看一个插座的功率没太大意义,要看就看整个家庭的用电。说了一句:“家里整体功耗才是王道”引得网友回复……这下好了,自己挖的坑自己得埋!
其实当时也沉浸在米家智能插座看功率的阶段,对于这句话颇有不服,但看在作者自己已经动手做出来的基础上。感觉,似乎自己也能试试看?或者能从另一个新的视角发现点什么呢?
说做就做,但 纸上得来终觉浅 绝知此事要躬行。真的把那个帖子看完,发现要干成这件事还需要以下几个条件:
- 智能家居玩家:有较强的兴趣爱好去折腾,不然中间遇到一些困难很可能就浅尝辄止了。况且这种改造还伴随着一些”风险“。
- 有一些电力方面的知识:要对自己家的电路有所了解,知道空开和漏保,以及电线平方数和电流的关系。不然改造起来是很危险的。
- 一些物联网方面的知识:因为获取电能表并不是我们的家用电器,还需要一些工业协议去获取,获取的时候还需要一些物联网编程吗的知识,比如modbus协议,比特率,CRC校验码等。
- 一些编程和网络方面的知识:最后,还需要一些高级语言编程以及监控(可观测性)方面的知识。而且只会编程可能还不够,还要从可维护性、便利性、可靠性、经济性等等去选择你的最终技术实现。
说实话,做之前感觉一件很简单的事情,真的去做的时候才发现,原来需要考虑的真的还不少。不过饭要一口一口的吃,遇到什么就解决什么就好了。前前后后折腾了3-6个月,包括硬件选型、一些奇怪的知识的查漏补缺等等。咨询了各种搞IoT的小伙伴,以及获得了各种他们各种有经验的调试方法。因此这个文章可能要分为背景、方案、硬件、软件来写了。最初版是2019年写完,但只单纯的介绍实现方式,没有对心路历程进行描述。虽然时隔久远,有些细节已经不太记得。但是还是希望好好记录下这个过程。顺道在最后贡献个PR稿:)
方案
背景介绍完了,终于可以开始介绍方案(纠结历程)了。
协议
modbus:只要跟一些工控设备打交道 基本上绕不过去的一个协议,说白了就是如何跟工控设备打交道。
MQTT:如果要把IoT接入某些大的平台,就需要这种IoT专有协议去跟云打交道。粗略的看了下,除了报文的标准,其它部分感觉有点类似于消息队列。
TCP:这个就是大家正常使用的,但是对于设备要求最好是性能比较好的。因为实现TCP甚至HTTP序列化还是需要一定的计算能力的。
最后,既然绕不开modbus,就找了一个TCP<=>modbus的转换器。而MQTT,可能在以后直接接入云平台的时候会进行选择。
硬件
自己DIY
根据论坛里老哥的介绍需要准备
- 培正检测模块PZEM-004T :这个用于检测电流电压等参数,需要接到强电电路里,然后通过TTL输出。
- 220v交流转5v直流模块:通过把220v转成5v,给esp供电使用。
- esp-01模块:灵魂人物,通过TTL取数据,再通过esp的能力上传到各种数据库。
其实那位老哥以前就有一个成品商业的modbus检测的,只是自己想DIY把控自己的数据下。但其实看下来还是需要很多的知识储备的。但这个方案也是最便宜的。几个模块和成品比起来能便宜一半以上的钱,总成本可以控制在100以内(刨除人的时间成本)。
买成品
说实话,我对于TTL了解不多,而且esp这个神器也没有怎么玩过。所以开始自己的选型,并且根据自己家里的情况定了几个原则:
- 电表箱太小 体积一定要小
- 强电箱里东西越少越好
- 协议要通用 最好是可扩展性较强的协议
因此
检测模块选了一个单火线,并且只有1P的 DDS5188-1P
转换模块选了一个微型的HF7121 通过5V供电并且支持RJ45。(这个供电电复用的RJ45其中的两根线)如果要支持更多协议或者不想编程太多的话,可以选择ZLAN5144J这种的,就是体积有点过大,并且价格也很美丽了。
至此 当硬件和相关的协议都确认了下来之后,就开始折腾之路了。最终的大体的架构如下。
第一篇就是本篇会讲讲背景介绍。
第二篇会开始讲物理上的连接情况。
第三篇会讲下软件的情况。
第四篇会进行下总结和以后的展望。
