Power Management - 将DHT资料上传到LASS之后进入睡眠
材料准备
- Ameba x 1
- DHT11/DHT22/DHT21 x 1
范例说明
使用Ameba通常都会使用到它的Wifi功能,实际的省电使用情况也会因为使用wifi功能而有不同。
这个范例里,会先量测DHT的温湿度数据,打开wifi并连上AP,取得NTP时间,连上LASS的MQTT server,将量测的温湿度数据上传,再进入deepsleep。每10分钟重复这样的动作。
打开范例 “File” -> “Examples” -> “AmebaPowerSave” -> “DeepSleepWithDHTLass”
修改程式里相关的设定,包括:
– DHT的型号:DHT11/DHT22/DHT21
– 连上AP的方式:ssid, password
– 目前的GPS位置:latitude & longitude
编译并上传之后,量测到的耗电会因为许多因素而影响,包括wifi网路环境是否干净、网路连线是否顺畅、Server是否马上回应。但一般应该会在十多秒内完成。
范例测试的结果里,我在上传所花的时间是13s,量得的Ameba module耗电平均为1.3mA。
这个数据比范例 “DeepSleepWithDHT” 要大上许多,因为Ameba在工作模式下的耗电通常大于29mA,甚至在wifi连线时至少会大于68mA,与deepsleep的0.018 mA相比,我们要让Ameba尽量待在deepsleep才会取得最大的省电效益。
为了比较未省电的情况,我们将程式码修改如下,让它平常保持网路连线,每10分钟量一次,量完再上传至LASS的MQTT Server
这个范例里,会先量测DHT的温湿度数据,打开wifi并连上AP,取得NTP时间,连上LASS的MQTT server,将量测的温湿度数据上传,再进入deepsleep。每10分钟重复这样的动作。
打开范例 “File” -> “Examples” -> “AmebaPowerSave” -> “DeepSleepWithDHTLass”
修改程式里相关的设定,包括:
– DHT的型号:DHT11/DHT22/DHT21
– 连上AP的方式:ssid, password
– 目前的GPS位置:latitude & longitude
编译并上传之后,量测到的耗电会因为许多因素而影响,包括wifi网路环境是否干净、网路连线是否顺畅、Server是否马上回应。但一般应该会在十多秒内完成。
范例测试的结果里,我在上传所花的时间是13s,量得的Ameba module耗电平均为1.3mA。
这个数据比范例 “DeepSleepWithDHT” 要大上许多,因为Ameba在工作模式下的耗电通常大于29mA,甚至在wifi连线时至少会大于68mA,与deepsleep的0.018 mA相比,我们要让Ameba尽量待在deepsleep才会取得最大的省电效益。
为了比较未省电的情况,我们将程式码修改如下,让它平常保持网路连线,每10分钟量一次,量完再上传至LASS的MQTT Server
void setup() { dht.begin(); reconnectWiFi(); retrieveNtpTime(); initializeMQTT(); } void loop() { if (gatherHumidityAndTemperature() == DATA_CNT_FOR_UPLOAD) { reconnectWiFi(); while(!sendMQTT()) { delay(1000); } mqttClient.loop(); pDhtData->dataCount = 0; } // store data back to flash memory FlashMemory.update(); delay(measureInterval * 1000); }
这种方式量测到的平均耗电为67mA
我们用2颗AA电池来比较耗电 (实验所使用的电表为Keysight 34465A)
可以看到没省电的情况下只能用一天,但经过省电并且单独供电给Ameba module可以使用2.8个月。
NOTE: 实际情况里,不会用到那么久,他会因为升压转换造成能量损失,也会因为电池电压随时间而降低造成无法使用到全部的容量。
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用条款