备注:此项目制作人为Tiobel,他是一位才华横溢、勤勉努力的制作者。点击这里查看原项目。
来自DFRobot英文网站,转载需私信授权。
我的第一个物联网项目想法是建立一个气象站,并将数据发送到data.sparkfun.com。
需要矫正是,我原想在Sparkfun上注册账户,但他们不愿新增连接,所以我选用了另一个物联网数据收集平台thingspeak.com。
然后……
我想将这个系统将放置在阳台上,以检测外部温度、湿度和气压。
更多关于此微控制器的信息以及如何使用Arduino IDE软件上传代码的信息,敬请访问DFRobot产品资料库页面。
所有物理参数均由BME280传感器提供。更多信息,敬请访问产品资料库页面。
为完全实现“无线”运作,系统采用并联连接的两块放电功率分别为1W,电压为6V太阳能电池板供电。太阳能电池板所产生的电能储存在一个容量为+/- 1000mAh的3.7V聚合物锂离子电池中。
DFRobot的太阳能锂聚合物电池充电器模块将负责能量管理。
步骤1:组件
此项目所需组件:
- 1x – DFRobot FireBeetle系列ESP32物联网开发板 DFR0478
- 1x - DFRobot Gravity - I2C BME280 SEN0236
- 1x - DFRobot 3.7V聚合物锂离子电池 FIT0120
- 1x – DFRobot太阳能锂聚合物电池充电器 DFR0264
- 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
如果你没有Thingspeak账户,请登录http://www.thingspeak.com进行注册。
验证电子邮件后,你可转到通道 (Channels) 页面创建一个新的通道。添加你想要上传的变量。在此项目中,我们要上传的是温度、湿度和气压数据。
向下滚动并点击“保存通道 (Save Channel) ”。之后,点击API密钥 (API Keys) ,获取API写入密钥。然后将其添加到代码文件中。
若上述步操作无误,则你的气象站就可以开始向通道发送数据了。
步骤4:总结
我在项目中总会为今后的改进预留一些空间,这次也不例外。
在开发过程中,我开始注意到系统的能耗问题。即使在ESP32和BME280处于休眠状态时,系统能耗也接近2mA!!!由于BME280能耗最大,因此可增加一个可在休眠模式下完全关闭这个模块的开关。
另一个我比较关注的地方是电池电压。经过调查与测试,ESP32的一些内部功能完全失效。因此,我可能会添加一个分压器,并将其连接到模拟输入,以直接读取电压信息。如果你有更好的解决方案,请与我分享。
如果你发现任何错误或有任何意见、建议及疑问,请告诉我。
"Do not get bored, do something"
备注:此项目制作人为Tiobel,他是一位才华横溢、勤勉努力的制作者。点击这里查看原项目。
来自DFRobot英文网站,转载需私信授权。
|