ESP32太阳能气象站
我的第一个物联网项目想法是建立一个气象站,并将数据发送到data.sparkfun.com。
需要稍微调整的一点是,我原先想在Sparkfun上开设账户,但由于该平台不愿意新增连接,所以我选用了另一个物联网数据收集平台thingspeak.com。
继续……
该系统将放在我的阳台上,用于检测温度、湿度和气压。
请前往DFRobot产品资料库页面了解更多关于此微控制器的信息以及如何使用Arduino软件 (IDE) 上传代码。
所有物理参数均由BME280传感器提供。请前往产品资料库页面了解更多信息。
为完全实现“无线”运作,系统所需电力将由两块6V太阳能电池板提供,其可产生功率为2W的电流。电池为并联连接。所产生的电能将储存于一个容量为+/- 1000mAh的3.7V聚合物锂电池 (Polymer Lithium Ion Battery) 中。
DFRobot的太阳能锂电池充电器 (Solar Lipo Charger) 模块将用于电量管理。
第1步:组件
本项目需要:1x - DFRobot FireBeetle ESP32物联网开发板1x - Gravity: I2C BME280环境传感器 (温度,湿度,气压)1x -DFRobot 3.7V聚合物锂电池1x - DFRobot太阳能锂电池充电器2x - 6V 1W太阳能电池板1x -万能电路板1x - 排母1x - 外壳/盒子电线螺丝
还需要以下工具:热胶枪烙铁钻孔机
第2步:组装
FireBeetle ESP32物联网微处理器由3.7V电池提供电力,该电池通过电池输入口与太阳能锂电池充电器相连接。太阳能电池连接到PWR In端口。 FireBeetle ESP32物联网微处理器的Vcc和GND端口则与太阳能锂电池充电器的Vout端口相连接。BME280的电力来自于 FireBeetle ESP32物联网微处理器的3.3V端口。通过I2C总线(数据线SDA/时钟线SCL)进行数据传输。为将所有组件固定于盒子之中,我使用了一块万能电路板和若干排针、电线。至于太阳能电池,我只是用热胶将其粘于盒子的顶盖上。由于盒子本身有孔,因此无需额外打孔 :)
第3步:代码
在使用我的代码之前,需要做一些改动。首先,规定你的wifi网络名称和密码。然后,从Thingspeak.com获取一个API密钥。我会在下文进行解释。此外,如果你愿意的话,可以规定一个新的睡眠间隔。
Thingspeak.com
前往www.thingspeak.com进行注册。
验证完电子邮件后,你可以前往通道 (Channels) 页面创建一个新的通道。添加你想要上传的变量。本项目上传的是温度、湿度和气压数据。
向下滚动并点击“保存通道 (Save Channel)”。之后,点击API密钥 (API Keys) ,获取API写入密钥。然后将其添加到你的代码文件中。
若各步操作无误,那么你的气象站就可以开始向你的通道发送数据了。
第4步:小结
一直以来,我都会为我的项目预留改进空间,这次也不例外。
在开发过程中,我开始注意到系统的能耗问题。即使在ESP32和BME280处于休眠状态的情况下,系统能耗也达到将近2mA!!!由于BME280能耗最大,因此我可能需要一个可以在休眠模式下完全关闭这个模块的开关。
另一个引起我注意的地方是电池电压读取问题。经过对ESP32部分内部功能的调查与测试,我发现这些功能都不适用。因此,我可能会添加一个分压器,并将其连接到模拟输入 (Analog Input) ,直接读取电压信息。如果你有更好的解决方案,请与我分享。
如果你发现任何错误或有任何建议、改进及疑问,请告诉我。
“不要厌烦,动起手来”
注:本项目制作人为Tiobel,他是一位才华横溢、勤勉努力的创客。
了解更多ESP32/ESP8266教程、项目,请点击 : ESP32教程 汇总贴
高手,赞一下。{:5_148:} 还以为是你自己做的呢 dsweiliang 发表于 2018-10-26 13:37
还以为是你自己做的呢
嘻嘻,我看着教程是会做的~可惜我缺一块esp32 用UNO也做了一个,不过是用RF24传输,考虑到esp8266或32太耗电,并且隔一段时间检测并传送,非活跃时间进入休眠,最大化省电。
不错,不错 GZ-LHW 发表于 2018-10-27 12:27
用UNO也做了一个,不过是用RF24传输,考虑到esp8266或32太耗电,并且隔一段时间检测并传送,非活跃时间进入 ...
666 ,你可以发个教程出来~ 不错 luna 发表于 2018-10-29 16:20
666 ,你可以发个教程出来~
期中考完了后可能会有机会 哈哈哈,好创意 八错八错
页:
[1]