littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于 Arduino 和 NodeRed 的气象站系统

项目简介

本项目为完整的气象站系统,是物联网学习活动的成果。系统借助 DHT11 传感器与 ESP32CAM 微控制器采集本地环境温度和相对湿度,通过 MQTT 协议将数据以 JSON 格式发送至 NodeRed 的 Flow 中。同时,利用 OpenWeatherMap 提供的 API 获取温度、湿度、空气质量和紫外线指数等信息,并通过 MQTT 向组内其他成员报告。当温度超过 26°C 时,ESP32CAM 上的 LED 闪光灯会发出信号。

项目的主要特性和功能

  1. 数据采集:利用 DHT11 传感器和 ESP32CAM 微控制器获取本地环境温湿度数据。
  2. 数据传输:通过 MQTT 协议以 JSON 格式传输本地传感器数据和 API 获取的数据。
  3. 远程数据获取:通过 OpenWeatherMap API 获取指定地理位置的温度、湿度、空气质量和紫外线指数等信息。
  4. 数据可视化:使用 NodeRed Dashboard 展示本地和组内的气象数据图表。
  5. 温度预警:本地温度超过 26°C 时,ESP32CAM 上的 LED 闪光灯发出信号。

安装使用步骤

前提条件

用户已下载本项目的源码文件,且具备以下硬件和软件: - 硬件:ESP32CAM 微控制器、FTDI 转换器、USB 转 USB - mini 线、MM 跳线、实验板、DHT11 传感器、10k 欧姆电阻。 - 软件:Ubuntu 20.04、Arduino IDE、Mosquitto MQTT Broker(监听端口 1883,开启认证连接)、NodeJS、NPM、NodeRed 和 Node Dashboard。

安装步骤

  1. 硬件连接:按图示连接电子电路。
  2. 修改相关配置:
  3. 修改发布和订阅主题。
  4. 填写要连接的网络名称和密码。
  5. 设置数据发送间隔时间(以毫秒为单位)。
  6. NodeRed 配置:启动 NodeRed 并加载 Flow7,进行如下修改:
  7. 修改要报告的 MQTT 主题。
  8. 填写用于向 OpenWeatherMap 进行 API 请求的地理坐标。
  9. 生成并填写 OpenWeatherMap 的 API 密钥。
  10. 设置触发 LED 闪光灯亮起的温度阈值(建议设置为 26°C)。
  11. 电路供电:为电子电路供电,确保 WiFi 信号覆盖范围不超过 3 米。

使用步骤

在 NodeRed 中完成 Flow7 并部署后,打开仪表盘,访问 http://localHost:1880/ui 查看气象数据图表。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】