极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12569|回复: 1

Ameba RTL8195 Arduino: 太阳能供电 – 上传温湿度到LASS

[复制链接]
发表于 2016-9-26 19:05:36 | 显示全部楼层 |阅读模式

材料准备

■Ameba x 1
■DHT11 x 1
■Solar Panel (1W) x 1
■Lipo rider pro x 1
■Li-Po battery (1100 mAh) x 1
■DS3231 RTC x 1
■AMS1117-3.3V x 1 (Optional)
1.太阳能板
官网使用的太阳能板是这一块: http://www.seeedstudio.com/depot/1W-Solar-Panel-80X100-p-633.html
功率大小的差别在于要花多久的时间将锂电池充饱,一般来说1W的太阳能板在台湾晴朗微云的天气是够用的。
2.锂电池
晚上时需要依靠锂电池度过晚上,加上考虑到可能会有连续2~3天阴天的情况,这边锂电池的大小选择1100 mAh。一般来说不建议小于500 mAh。
3.锂电池充放电模组
在白天时,我们希望太阳能板供应电源给Ameba之外,如果有多余的能量可以用来对锂电池充电;但如果太杨能板供电不足,也可以从锂电池供电给Ameba。所以我们须要一个锂电池充放电模组。这里我们使用Lipo Rider pro,它使用JST 2.0的接头,在处理接头上需要找对应的线材。
充放电模组也有其他类似的产品:
Lipo Rider: http://www.seeedstudio.com/depot/Lipo-Rider-v13-p-2403.html
PowerBoost 500C: https://www.adafruit.com/product/1944
PowerBoost 1000C: https://www.adafruit.com/product/2465
4.DS3231 RTC
我们使用的DS1307RTC library支援DS1307/ DS1337/DS3231,这边我们使用DS3231。
5.AMS1117-3.3V
Lipo Rider Pro的输出预设是5V,直接接Ameba的开发版就可以。但如果想要更省电,可以考虑使用AMS1117降压至3.3V并直接供电给Ameba module。
范例说明

这个范例里会使用太阳能板,当太阳能板供电超过Ameba,可以将多余的电将锂电池充电。到晚上时则使用锂电池供电。
我们打开范例 “File” -> “Examples” -> “AmebaMQTTClient” -> “lass_for_dht_plus_ps_NFC”

这边要注意,当直接供电至Ameba Module时,开发板上的3.3V会因为预设并不是从Module供电,所以无法使用。此时其它需要3.3V供电的模组就需要直接从降压模组供电。
另一个值得注意的是,图中NFC的天线板是裁开的,中间与Amabe只用线材连结,只要线不要太长基本上感应的效率不会变太差。将连结的两条线互相缠绕可以稍减线材变长的问题。如果不喜欢这个天线板,也可以接其它的天线,NFC的天线使用电磁感应的方式,官方网站曾试过直接用杜邦线绕几圈,也试过悠游卡的代币,或其它NFC tag的天线,基本上感应的效果都不太一样。另外,如果不想使用AMS1117,也可以直接供电至5V的地方


但是要注意,供应至5V的地方也会启动DAP,造成额外的耗电。

要执行范例,需要修改几个参数:

■Wifi连线需要使用的ssid/password
■LASS的clientId,预设是FT1_9999,请改成不同的值。
编译并上传至Ameba之后,按下Reset按钮,等待一会儿应该可以在 “零时空观污网” 看到资料:http://g0vairmap.3203.info/map.html


范例程式预设将位置填入瑞昱的位置,可以在新竹的地方找到这个点,或是由左下方条件筛选只留LASS。目前资料上云端之后,有些小数点转换的误差,所以填入的位置可能会偏离,这个需要注意一下。

NFC的功能,官网有提供一个NFC的应用程式,如果你的Android手机已经打开NFC功能,去感应NFC天线,就会打开google play对应的应用程式网页。
或是可以到这个地方下载: https://play.google.com/store/apps/details?id=com.realtek.sensortag


安装完成后,用手机感应Tag,会出现最近一次量测的温湿度。点下方的按钮可以从网路端得到当天的温湿度资料。

耗电分析
以下是一些细节的说明

■太阳能板的供电效率
这里我们测量亮度的单位为照度(LUX),照度是以人眼感受测量出来的亮度,不同波长的光线照度也不一样。同时我们使用卤素灯泡模拟太阳光,一般来说卤素灯是常见用来模拟太阳光的光源。
在台湾晴天无云的情况下 ,早上10点至下午两点大约可以量到照度100K LUX左右,傍晚四点左右则可以量到照度10k LUX。
改成使用100W的卤素灯,距离20cm的地方照度为10k LUX,距离5cm的地方照度为100k LUX。但是距离灯泡太近会让太阳能板太热而造成效率降低,所以实验中保持一定距离比较好。这里我们使用20cm的距离做实验。
我们测量太阳能板实际供电的情况,当照度为100k LUX的时候,可以输出210mA的电流,电压为4.8V,4.8V x 0.21 A = 1.008 W。如果使用其它不同的太阳能板也可粗略估算可以输出的电流。
但是当照度为10K LUX的时候,太阳能板只能输出40~60mA的电流。
■NFC的耗电
这个范例里我们使用了NFC,并且当Ameba进入deepsleep省电模式时,也保留了NFC。 NFC的耗电约7mA,这对deepsleep来说是相对高的耗电,这部份要留意。
■RTC的耗电
RTC平常使用电池维持时间的精准度,但是当Ameba接上RTC时,预设会启用I2C做为沟通介面。这方面会量到2mA的耗电。
■总耗电
如果是从AMS1117降压至3.3V再对Ameba module供电,量到的电流在deepsleep的时候是12mA,长时间的平均值是13mA
如果是从Ameba的5V供电,量到的电流在deepsleep的时候是17mA,长时间的平均值是18mA
扣除NFC与RTC的耗电,有一部份的耗电来自于降压损耗与点亮LED灯。
在不考虑锂电池充放电模组的耗电下,假设太阳能板供给40mA的电流,而1100mAh的锂电池已用了一半。那么在中午的阳光照射下,需要 550 mAh / (210mA - 13mA) = 2.8h可以将锂电池充饱。
那么如果太阳能板一直未能对锂电池充电,并且Ameba只由锂电池供电,那么1100mAh的锂电池用了一半可以让Ameba使用 550 mAh / 13mA = 42h,接近2天。
程式码说明
整个程式都由之前的范例组成,程式码流程如下:
   

      一开始的地方,我们启动watchdog,并且启动一个GTimer让它每秒feed/kick watchdog,如果检查发现整个流程经过30s秒还没完成就直接进入deepsleep。
     比较需要注意的是我们将WiFi连线的部份放在较后面的地方,因为启动WiFi会消耗较多的电量,在设计省电的专案时,最好先将不需要WiFi的部份先做完。
更多详情请访问公司主页http://ameba.realsil.com.cn/
加入QQ交流群获取技术支持:184666894

回复

使用道具 举报

发表于 2016-9-27 16:22:29 | 显示全部楼层
解释的很详尽,给个赞!是否可以给出BOM参考,这样可以考虑下使用场合。NFC使用是否有些勉强,因为手机本身可以在云端读到数据。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 13:55 , Processed in 0.037430 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表