小结
到现在为止折腾了不少DIY设备,大概的需求都能够使用esphome满足了。总结一下目前的成果:
- 最重要的--DIY多路智能开关
- 制作中--5路LED调光模块
- 完成了实验:燃气传感器,温湿度传感器,微波物体传感器,超声波距离传感器,人体红外传感器,土壤湿度传感器,esphome文字传感器
esphome这个框架真的特别方便,我通过diy多路开关基本了解了esphome的拓展模块该怎么自己写(就属于能用那种)。所以在设备接入上,可以通过esphome接入或者HA原生支持的mqtt接入。
下一步
像开关,调光器这样的东西,对于功耗就没有太大的要求,因为肯定是要接电源了。而一些传感器就不一样,想要随处可用就得用电池,这就对功耗提出了要求。现在查询了相关资料,决定采用以下的解决方案
- zigbee模块,淘宝亿佰特,看上去就很靠谱,无线模块种类齐全
- arduino,arduino是支持低功耗睡眠的,使用起来复杂度也最低 网上的使用样例
- esp8266/esp32,做网关的数据处理并接入HA,有线连接也可以使用arduino+以太网模块。
简单说就是zigbee模块自己组网,传感器端的arduino平时处于低功耗状态,并且控制zigbee模块的休眠,需要发数据的时候唤醒并将数据组装成mqtt的报文通过zigbee透传。zigbee网关接到数据之后解析出topic和playload,直接发给mqtt服务器,中间不需要对数据进行组装。
以上只解决了节点到网关单向的数据传输,用作普通的传感器可以解决数据传输的问题,但网关主动发数据给节点仍然需要考虑,比如HA前端控制某个开关的状态(感觉不是很需要,像开关这样需要持续消耗电源的节点就不应该选择电池)订阅的mqtt主题拿到了消息需要回报到节点。考虑使用广播(消耗大)或者单播(需要在网关维护一个地址--主题查找表)。
具体的成品大概是一个综合气象站,使用zigbee传输数据,电池供电,并且支持太阳能充电,最大限度延长续航。
总结框架
- 对于涉及输出,长时间不间断工作,实时性较高的节点,直接采用esp8266接入。必须有稳定供电。
- 对于需要小型化,便携,不一定能有稳定供电,实时性要求不高或间断工作的节点,采用zigbee接入网关。
- 对于需要远距离传输的节点,如果只是单纯的控制,考虑433模块。如果需要传输一定量的数据,考虑mesh或有线(网关->网关连接)。
- 另外一些节点可以考虑一下单纯使用以太网口连接。
叨叨几句... NOTHING