回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

? 用 ESP32 打造智能环境监测系统:从传感到云端展示 简单

头像 唧唧复唧唧 2025.07.08 4 0

💡 前言

你是否想为自己的工作间或客厅添加一个能监测温湿度、空气质量、光照强度的智能助手?本篇文章将带你通过 ESP32 与环境传感器的整合,实现一个具备 Wi-Fi 数据上传、OLED 实时显示、动画反馈的多功能环境监测系统。

⚙️ 项目概览

本项目将 ESP32 与常见环境传感器(如 DHT11/22、BH1750、MQ135 等)集成,配合 ST7789 显示屏及 Wi-Fi 网络,将实时数据上传至云端(如 ThingSpeak),实现可视化展示与远程访问。

📁 系统结构:

模块功能描述
传感器模块采集温度、湿度、光照、空气质量等数据
显示模块ST7789 显示当前数值与图形动画
网络模块ESP32 通过 Wi-Fi 将数据上传至云端
动画反馈根据环境变化呈现动态视觉效果

🧰 开发环境与依赖库

建议使用 Arduino IDE 开发,易于快速构建与测试:

📦 所需库:

  • DHT.h:用于温湿度采集
  • Adafruit_BH1750.h:光照强度检测
  • TFT_eSPI.h:驱动 ST7789 显示屏
  • WiFi.h + HTTPClient.h:用于连接网络并上传数据
  • ArduinoJson:格式化上传数据

🧪 硬件选型与连接指南

硬件组件接口说明
ESP32 Dev Board主控器
DHT22GPIO 输入读取温湿度
BH1750I2C 接口读取光照数据
MQ135(选配)模拟接口监测空气质量
ST7789 显示屏SPI 接口显示动画与数值

📌 示例连接图:

DHT22 → GPIO 21   BH1750 → SDA/SCL (GPIO 22/23)   ST7789 → SPI 接口 (CS, DC, CLK, MOSI)

🖥️ 显示界面与动画效果

使用 ST7789 屏幕展示以下内容:

  • 实时数值:温度 / 湿度 / 光照强度
  • 环境状态图标:阳光、小雨、雾霾等图形化反馈
  • 数据变化动画:采用帧切换展示动态趋势

✨ 动画设计思路:

void drawSunAnimation() {  for (int i = 0; i < 5; i++) {    drawSunFrame(i);    delay(100);  } }

🌐 云平台数据上传

推荐使用 ThingSpeak 作为数据展示平台:

📤 数据上传流程:

  1. 注册账号并创建频道
  2. 获取 Write API Key
  3. 在代码中使用 HTTP POST 上传数据
  4. 在网页中配置数据图表显示

🚀 示例代码片段:

void uploadToCloud(float temp, float hum) {  HTTPClient http;  String url = "http://api.thingspeak.com/update?api_key=XXX&field1=" + String(temp) + "&field2=" + String(hum);  http.begin(url);  http.GET();  http.end(); }

🧠 项目亮点与扩展方向

🌟 技术亮点:

  • 模块化结构清晰,便于维护与拓展
  • 实现动画与传感数据联动,增强可视性
  • 支持网络通信,实现云端同步与远程监控

🔭 延伸创意:

  • 添加语音播报功能(DAC 或 I2S 输出)
  • 结合 BLE 与手机实时交互
  • 使用触控按键切换不同展示模式
  • 添加数据记录功能并绘制历史趋势图

📝 结语与互动

本项目将传感器、可视化界面与云端通信融合,不仅能提升环境认知体验,也为物联网项目开发奠定了良好基础。如果你也正在学习 ESP32 或尝试嵌入式项目,不妨从这类“实用 + 美感”的创意项目开始。

 

评论

user-avatar