Ameba Arduino: [RTL8195] Power Management – 让Ameba处于wifi连接的省电模式

材料准备

  • Ameba x 1
  • DHT11/DHT22/DHT21 x 1
范例说明
Ameba的deepsleep无法让wifi处于连线状态,如果想让Ameba省电,并且保持wifi连线,可以使用sleep API。
打开范例 “File” -> “Examples” -> “AmebaPowerSave” -> “SleepWithDHTUdpServ”
范例里一样需要设定连线AP的ssid & password
这个范例里,Ameba会先建立wifi连线,进入sleep省电模式,Ameba会当作UDP server,每当接收到UDP封包内容为 ‘H’,就回传湿度,接收到UDP封包为 ‘T’,就回传温度。
与deepsleep不同的地方是,当Ameba打开sleep模式,会自己找寻可以睡眠的时间,当装置闲置时就会进入睡眠。整个睡眠与醒来的动作是自动的,不需要使用者干预。
当Ameba连线之后,我们参考之前测试TCP/UDP的工具Sokit设定Ameba的IP & port。
我们每分钟轮流问一次温湿度,可以看到Ameba都有回应。
1这个范例里会侦测D18这根防止进入睡眠的pin脚,如果D18被接地,就不会让Ameba进入sleep睡眠模式,于是我们可以测量两种耗电: (实验所使用的电表为Keysight 34465A)
2
NOTE: 实际情况里,不会用到那么久,他会因为升压转换造成能量损失,也会因为电池电压随时间而降低造成无法使用到全部的容量。
这里的数据会因为网路状况而有不同,但让Ameba保持连线的情况下会比让Ameba进入deepsleep要耗电。但让Ameba保持连线也提供使用者做远端操控,这是deepsleep无法做到的。这端看使用者的应用而定。