项目想法
之前做了两个 HomeAssistant 受控设备,特别是交流通断器,它能够真正地控制家里的电器电源。在 HomeAssistant 的自动化当中,你可以设置定时开启、定时关闭等功能。 但是想要做更加智能化的功能的话,就需要用传感器。
- 比如小夜灯要智能化起来时,需要光照传感器检测光强度来决定是否开启,或者还需要人体传感器检测有人才开启。
- 比如空调控制时,可以利用温度传感器,检测室温来决定制冷还是制热
等等诸如此类智能控制,都需要传感器的参与才能实现智能化。
所以今天这个项目就是一个:基于 Ai-WB2 模组实现的 HomeAssistant 传感器采集器
目标传感器
针对目前的传感器类型,根据接口类型分类,大致有这么几个品类:
- 串口:RS485 传感器
- I2C: 数字传感器,如 SHT30 温湿度传感器
- IO:二进制传感器,只输出高低电平的
- 单总线:典型 18B20 温度传感器
供电方式
计划采用锂电池供电方式,设计充电电路。这样一来,RS480 传感器就不打算接入了,因为这类型的传感器一般是 12V 供电,使用电池供电的话,需要额外的升压电路,而且功耗也高。传感器采集器只能接入 I2C、IO、单总线接口的传感器了,而且充电接口的话,就用 Type-C 吧! 从而就要衍生出一些电路:
电池供电电路
充电电路采用的 IC 是 IP3506。
锂电池保护电路
既然使用的是锂电池,肯定要用保护电路,当然也可以不焊,然后使用那种自带保护板的电池。
电池电量采集电路
一般是读取电池的电压来实现电池的容量检测,使用 ADC 就行:
低功耗稳压电路
因为用了电池供电,所以稳压电路的稳压器不能用太高功耗的,1mA 的静态电流都很大了。所以不能用 1117 这个 LDO,我找到了一个静态电流只有 8uA 的 LDO:WL6026。 8uA 的功耗能够提供最高 250mA 的输出,满足 Ai-WB2 的日常使用了。
功能计划
供电说完了,现在讲讲功能计划:
- 主控模组:Ai-WB2-12F
- 板载温湿度传感器
- 支持安信可 IOT 小程序配网
- 定时上传温湿度数据
- 引出 I2C、IO 检测、IO 单总线接口,2.54Pin 脚
- 即时检测按键,按下可以立即检测数据
- 采集完成立即深度休眠,提高续航
低功耗软件实现流程
头疼的来了,Ai-WB2 这款模组没有低功耗的保活连接,这就以为不可能一直连接着 WiFi,而且只有深度休眠才能保障电池的续航。幸好 Ai-WB2 是支持 RTC 唤醒的,因此,我们只能做定时检测,而且不能频繁,因为连接 WiFi 和发布消息都需要很高的功耗。