亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

ESP8266 WiFi气象站:DHT22温湿度传感器 + ThingSpeak云端记录

项目目标

构建低成本、低功耗的户外气象监测站,利用ESP8266 WiFi模块直连路由器,读取DHT22温湿度数据,定时上传至ThingSpeak云平台生成历史趋势图表,适合农业监测、家庭环境监控、物联网入门学习。

硬件清单

关键硬件连接

ESP8266烧录接线(Arduino UNO做USB转串口)

运行模式接线(独立工作)

核心固件代码(temphumwifi.ino)


#include 
#include 
#include 

// ===== 用户配置区 =====
#define DHTPIN 2              // GPIO2连接DHT22 DATA
#define DHTTYPE DHT22
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
unsigned long myChannelNumber = 167319;  // ThingSpeak通道号
const char* myWriteAPIKey = "XXXP9V86RWR7R9Y";  // 写入API Key
// ======================

DHT dht(DHTPIN, DHTTYPE);
WiFiClient client;

void setup() {
  Serial.begin(115200);
  delay(10);
  dht.begin();
  
  // 连接WiFi
  Serial.print("Connecting to "); Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500); Serial.print(".");
  }
  Serial.println("\nWiFi connected, IP: "); Serial.println(WiFi.localIP());
  
  ThingSpeak.begin(client);
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read DHT22!");
    delay(2000);
    return;
  }
  
  Serial.print("Humidity: "); Serial.println(h);
  Serial.print("Temperature: "); Serial.println(t);
  
  // ThingSpeak免费版最快15秒/次,这里20秒上传一次
  ThingSpeak.writeField(myChannelNumber, 1, h, myWriteAPIKey);
  delay(20000);
  ThingSpeak.writeField(myChannelNumber, 2, t, myWriteAPIKey);
  delay(20000);
}

ThingSpeak云平台配置

  1. 注册thingspeak.com账号,创建新Channel
  2. 添加两个Field:Field 1 = Humidity (%), Field 2 = Temperature (°C)
  3. 记录Channel ID和Write API Key填入代码
  4. 可启用MATLAB分析/可视化:自动生成趋势图、计算统计量、设置阈值告警
  5. 公开/私有分享链接,嵌入网页或手机APP查看

供电设计关键点(避坑指南)

常见问题与调试技巧

组件数量关键规格
ESP8266 ESP-01模块180MHz/160MHz, 4MB Flash, WiFi 802.11 b/g/n
DHT22温湿度传感器1温度-40~80°C±0.5°C,湿度0-100%±2%
Arduino UNO1仅用作USB转串口烧录器
UDOO USB/串口调试模块1可选,专用烧录更稳定
面包板+跳线若干原型搭建
3.3V稳压电源/电池1ESP8266峰值电流>300mA,必须独立供电
现象原因分析解决方案
烧录失败/同步错误GPIO0未接地/波特率不匹配/供电不足确认烧录接线、降低波特率115200→9600/74880、加大电容
WiFi连不上SSID/密码错误/信号弱/路由器MAC过滤/2.4G only检查配置、靠近路由器、确认2.4G频段开启
DHT读数nan/异常线太长/无上拉电阻/供电不稳/时序不满足缩短线<20cm、加4.7k上拉、稳压供电、用成熟库
ThingSpeak上传失败API Key错/频道号错/网络不通/频率超限串口打印HTTP响应码、遵守15秒最小间隔
频繁复位/看门狗重启供电纹波大/代码阻塞过久/堆栈溢出加大滤波电容、避免delay长阻塞、用yield()/喂狗

功能扩展建议

成本估算(单站)

组件约价(CNY)
ESP-01/ESP-01S¥15-25
DHT22 (AM2302)¥10-18
AMS1117-3.3模块¥2-5
面包板/跳线/外壳¥10-20
总计¥40-70

制造工艺

  1. 树莓派与 Python 构建远程温度传感器:分步实战指南
  2. 树莓派自制气象站:每日邮件推送温湿雨数据
  3. 树莓派多传感器温度光照监测系统:DS18B20 实战构建
  4. 树莓派传感器与执行器控制实战:加速度计、舵机与数据流
  5. 验证并校准湿度传感器以实现精准测量
  6. Windows 10 IoT Core 上基于 SHT15 的精准温湿度监测
  7. Portenta H7 对接 MAX6675 热电偶温度传感器教程
  8. DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
  9. 智能物联网罐:ESP8266 + Arduino + 超声波传感器实时监测罐内物位
  10. MyRiver:基于 Arduino MKR FOX 1200 的河流水质远程监测系统
  11. DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
  12. Arduino 高速转速计 - 单次检测算法实测 6.5MHz 级响应,红外 + 红激光方案