获取温度、湿度和压力,并通过互联网显示;一切都由太阳提供动力。
背景
对于我的第一个 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 模块将负责能源管理。
成分
连接组件
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 的一些内部功能进行了一些调查和测试后,没有任何效果。所以我可能会添加一个分压器并将其连接到模拟输入并直接读取电压。
这里还没有内容,您有什么问题吗?