打印

用WIFI单片机在省电模式中上传数据-Ameba Arduino

[复制链接]
378|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Simon西|  楼主 | 2020-10-19 10:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

对于ARM Cortex -M系列的单片机来说,省电一直都是其一个极大的亮点,但是众所周知,wifi的使用会很大的加快电量的使用,使得省电的特色完全表现不出来,因此,在保持WiFi连接的同时使用省电模式,就是我们要找的解决方案,这里以瑞昱的ameba RTL8722双频WiFi+BLE开发板为例,我们来一起看一下如何实现这一功能,以及能耗能得到怎样的改善,



让Ameba处于Wifi连接的省电模式
[size=1.125em]
材料准备
  • 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都有回应。
这个范例里会侦测D18这根防止进入睡眠的pin脚,如果D18被接地,就不会让Ameba进入sleep睡眠模式,于是我们可以测量两种耗电: (实验所使用的电表为Keysight 34465A)

NOTE: 实际情况里,不会用到那么久,他会因为升压转换造成能量损失,也会因为电池电压随时间而降低造成无法使用到全部的容量。
这里的数据会因为网路状况而有不同,但让Ameba保持连线的情况下会比让Ameba进入deepsleep要耗电。但让Ameba保持连线也提供使用者做远端操控,这是deepsleep无法做到的。这端看使用者的应用而定。




使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

62

帖子

0

粉丝