首页 > 其他 >特殊应用电路 > 如何利用ESP32实现太阳能气象站的设计

如何利用ESP32实现太阳能气象站的设计

来源:互联网发布者:常思一二 关键词: 太阳能 气象站 ESP32 更新时间: 2024/07/15

获取温度、湿度和压力,并通过互联网显示;一切都由太阳提供动力。

背景

对于我的第一个 IoT 项目,我想构建一个气象站并将数据发送到 data.sparkfun.com。

小更正:当我决定在 Sparkfun 开设账户时,他们不接受更多的连接,所以我选择了另一个物联网数据收集器 thingpeak.com。

地点

该系统将放置在我的阳台上,并将检索温度、湿度和气压。

构建

本项目选用的微控制器是 DFRobot 提供的 FireBeetle ESP32 IOT 微控制器。

请查看DFRobot wiki 页面以获取有关此微控制器以及如何使用 Arduino IDE 上传代码的更多信息。

传感器

所有物理参数均由BME280 传感器给出。

电源

要将系统完全“无线化”,所需的电源由两块 6V 太阳能电池板提供,可提供 2W 的功率。电池将并联。

然后将产生的能量存储在容量为 +/- 1000mAh 的 3.7V 聚合物锂离子电池中。

DFRobot的 Solar Lipo Charger 模块将负责能源管理。

成分

pYYBAGKxkUOAO-mQAAWgraCxza0076.png

连接组件

FireBeetle ESP32 IOT 微控制器由 3.7V 电池供电,该电池连接到电池输入端口中的太阳能锂电池充电器。太阳能电池连接在 PWR In 端口中。FireBeetle ESP32 IOT 微控制器的 Vcc 和 GND 端口连接到 Solar Lipo 充电器的 Vout 端口。

BME280 电源由 FireBeetle ESP32 IOT 微控制器中的 3.3V 端口供电。通信通过 I2C 线路 (SDA / SCL) 完成。

为了修复盒子中的所有组件,我使用了穿孔板、一些接头和电线。

基本思想是这样的:

最后的样子:

对于太阳能电池,我只是用热胶将它们固定在盒子的顶盖上。由于盒子本身已经有洞,所以不需要再凿更多。

一切都已安装并准备安装。

代码

为了让您使用我的代码,需要进行一些更改:

第一个是定义您的 wifi 网络名称和密码。

第二个是从Thingspeak.com获取 API 密钥。我将在下面解释。

如果您愿意,您也可以定义一个新的睡眠间隔。

Thingspeak.com

如果您没有 Thingspeak 帐户,则需要访问www.thingspeak.com并自行注册。

验证您的电子邮件后,您可以转到频道并创建一个新频道。

添加要上传的变量。对于这个项目,温度、湿度和压力。

向下滚动并按“保存频道”。

在此之后,您可以单击 API Keys。

并检索 API 写入密钥。然后将其添加到您的代码文件中。

如果一切正常,您的气象站可以开始向您的频道发送数据。

结论及拓展

在我的项目最后,我将一如既往地为未来的改进留出空间,这并没有什么不同。

在开发过程中,我开始关注系统的能耗。我已经让 ESP32 和 BME280 进入睡眠状态,即便如此,我的耗电量也只有 2mA 左右。由于 BME280 负责这个,我可能需要一个开关在睡眠模式下完全关闭模块。

另一个有趣的功能是检索电池电压。在对 ESP32 的一些内部功能进行了一些调查和测试后,没有任何效果。所以我可能会添加一个分压器并将其连接到模拟输入并直接读取电压。

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-13 08:55

通过编译软件自动生成编译时间的方法
在很多情况下,我们实行版本的管理,我们除了定义软件版本号外,还会定义个编译时间。但是如果通过数组定义编译时间,每次编译我们都需要手动修改,非常麻烦,而且有时候,还会忘记。其实我们不需要这么复杂,编译器一般都会提供一个宏用于自动获取编译时间。下面就以MDK为例进行说明:
 zhaojun_xfNXP MCU
电路设计问题,为什么要这样设计
为什么图中 电路 要加Q23这个三极管,有什么用。 speed_input是车速输入(PWM信号) MCU_speed_out是车速输出(PWM信号) speed_out也是车速输出(PWM信号) 我感觉Q23这个三极管没起什么作用,正常情况一直没法导通,没什么用,这是别人设计
 jianshan198977模拟电子
mspf149
怎样用mspf149与hc-sr501控制一个灯,达到人走灯灭,人来等开的效果,用程序说明下. mspf149 {:1_101:}{:1_101:}{:1_101:}{:1_101:}{:1_101:}才一枚这也太抠了吧 if(person) { delay(1000) i
 茅山派2864微控制器 MCU
求助
各位大哥我画的原理图是用层次图的画法,可是不可以生成网络表有哪位大个可以告诉我.先谢谢了哦. 求助 能讲得具体一点吗 Re: 求助 你定义了NET 了吗? Re: 求助 說清楚點啊 ,你用甚麼軟件画的 Re: 求助 你是用什么软件呀,都没说清楚,最好放点图 Re: 求助
 20060901FPGA/CPLD
CMake构建实战读书笔记03-CMake常用命令
CMake提供了很多很多命令,这么命令可以先做个大致了解,在需要用到的时候,可以单独研究完整的用法细节。 # 1 数值操作命令math 数值操作,即进行算术运算,CMake中不能直接使用运算符运算,需要通过math这个指令来实现运算,例如: ```cmake math(EXPR
 DDZZ669嵌入式系统
电子设计竞赛组委会最新推荐论文
电子设计竞赛组委会最新推荐论文 电子设计竞赛组委会最新推荐论文 电子设计竞赛组委会最新推荐论文????
 Rick37电源技术

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved