超低成本制作室外气象站续航50天!

admin 2025-12-22 04:04:46 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章介绍了如何使用ESP8266、AHT20+BMP280传感器和太阳能电池制作室外气象站,通过深度睡眠模式实现50天续航,每5分钟通过MQTT上报温湿度气压数据。硬件选择上AHT20+BMP280组合比DHT11更适合户外环境,具有更宽的测量范围、更高精度和更低功耗。 综合评分: 88 文章分类: IoT安全,其他


cover_image

超低成本制作室外气象站 续航50天!

kali笔记

2025年12月18日 08:02 甘肃

想不想制作室外温湿度计呢?在很早之前利用ESP8266和DHT11做了室内传感器,已经稳定运行一年多了了。最近想着再做一个室外的,于是有了这篇文章!

基于MQTT协议的物联网小基站

配合HomeAssistant显示温湿度

室外温湿计存在的挑战

  • 电池供电续航问题。
  • 设备寿命问题
  • 网络连接问题

接下来,我们首先解决供电问题。

目前,我使用的方案为4节18650电池并联(并联后总容量=4 × 单节容量),利用太阳能板给电池充电。

🐧关于续航:

目前,我采用的方案是每5min发送一次数据,理论上,这个时间越长,续航时间越长。

其次,让设备发送消息后,进入睡眠模式。下次发送消息时,再次唤醒设备。大致流程如下: 上电/唤醒 → 读温度湿度气压 → 发送 MQTT → 睡 5 分钟 → 再次自动唤醒 → 再发一条。

理论上睡眠时间越长,续航越长。

🐼睡眠原理:

通过ESP.deepSleep((uint64_t)SLEEP_SECONDS * 1000000ULL); 让 ESP8266 进入 深度睡眠模式,芯片几乎全部关掉,只保留内部定时器。 当设定的时间到了,GPIO16(D0) 会发一个低电平脉冲到RST引脚,相当于帮你按了一下“复位键”,ESP8266 重新启动,从 setup() 再运行一遍。

通过这种方案,4块18650并联(6000mAh)可让设备运行 50 天左右(每5min发送一次数据,时间间隔越长,续航越长)。

夜晚测试

硬件选择

本次我没有采用DHT11温湿度模块,而是采用了AHT20+BMP280模块。两者的对比如下:

| 对比维度 | DHT11 | AHT20+BMP280组合 | 户外环境优势方 | | — | — | — | — | | 测量范围 | 温度:0~50℃ 湿度:20%~90%RH | 温度:-40~85℃ 湿度:0%~100%RH 气压:300~1100hPa | AHT20+BMP280 | | 测量精度 | 温度:±2℃ 湿度:±5%RH | 温度:AHT20±0.3℃ / BMP280±0.1℃ 湿度:±2%RH 气压:±1hPa | AHT20+BMP280 | | 长期稳定性 | 无自校准功能,漂移大,易受潮湿影响。 | AHT20支持自校准,BMP280内置温度补偿+气压校准,长期部署(6~12个月)漂移小,耐潮湿 | AHT20+BMP280 | | 功耗表现 (电池供电关键) | 静态功耗≈1mA,待机功耗高 | AHT20静态≈0.5mA,BMP280静态≈0.1mA,组合总功耗更低 | AHT20+BMP280 | | 户外特殊场景适应 | 低温(<0℃)、高湿(>90%RH)、强干扰环境下无法正常工作 | 耐低温(-40℃)、抗高湿(雨天/雾天)、抗电磁干扰,部分模块带防水外壳可选 | AHT20+BMP280 |

线路连接

| 模块引脚 | ESP8266引脚 | 备注 | | — | — | — | | GND | GND | 负极 | | VCC | 3.3V | 请勿接5V,避免模块损坏 | | SDA | D2 (GPIO4) | I2C数据引脚 | | SCL | D1 (GPIO5) | I2C时钟引脚 | | | D0–>RST | 短接 保证设备唤醒 |

MQTT上报

本次,我们仍然采用MQTT进行数据上报。

{"humi":65.7,"temp":0.5,"pa":863.7}

接入HomeAssistant效果

代码上传事项

在 Arduino IDE 中,需要先安装库:

  • PubSubClient
  • Adafruit AHTX0
  • Adafruit BMP280 Library

修改自己的WiFi信息和MQTT信息即可!

点击阅读原文,获取源码。

更多精彩文章 欢迎关注我们


查看原文:《超低成本制作室外气象站 续航50天!》

评论:0   参与:  6