← 返回传感器图鉴

DHT22 温湿度传感器

最后更新 2026-06-20
⏱ 约 6 分钟 🟡 涉接线/强电
🛒 器材清单
器材数量参考
DHT22 模块1

价格随渠道波动,以购买页实时为准。

你照着教程接了一颗 DHT11,做了个室内温湿度记录,结果回看曲线发现湿度只在整数上跳——38%、39%、40%,中间那些小数全没了;温度也总差那么一两度,跟手边的温度计对不上。问题不在你的代码,是 DHT11 这颗元件本身就只到这个分辨率。想把读数做准、做细,又不想换接线、不想重学协议,DHT22(也叫 AM2302)就是为这一步准备的——三根线照旧、库照旧,只是元件换成了更好的那一档。

工作原理

DHT22 和 DHT11 是同一套思路,区别只在内部元件的等级。

测湿用的是电容式湿度元件:两片电极中间夹一层吸湿介质,空气里的水汽多了,介质介电常数变化,电容随之变化,芯片把这个电容值换算成相对湿度。DHT22 的这层介质和标定都比 DHT11 讲究,所以它能给到 0.1% 的分辨率、±2% 的精度,而不是 DHT11 那种只能报整数、误差动辄 ±5% 的水平。

测温用的是热敏电阻(NTC):温度越高电阻越小,芯片测电阻反推温度。DHT22 的热敏元件经过更细的标定,量程拉到了 -40 ~ 80°C,负温也能测——这一点 DHT11 做不到(它下限只到 0°C)。

两个元件的模拟信号都先进到 DHT22 内部那颗芯片里,做完 A/D 转换和标定,再用单总线协议把一串数字脉冲从 DATA 脚发出来。所谓单总线,就是用一根线既发命令又收数据,靠脉冲的长短来区分 0 和 1。这套数字输出的好处是:传到主控的是算好的数,不受导线长度、电压波动影响,不像纯模拟传感器那样要你自己接 ADC、自己滤噪。模拟和数字的差别,这一节讲得更细。

一句话:DHT22 = DHT11 的协议 + 更好的元件 + 更准的标定。

接线

和 DHT11 一模一样,三根线:

DHT22 ESP32 说明
VCC (+) 3.3V 或 5V 3.3V/5V 都行,跟主控电平一致即可
DATA (out) GPIO4(任意 GPIO) 数据线,需上拉
GND (-) GND 共地

如果你买的是模块版(带小电路板那种),板上通常已经焊好上拉电阻,三根线直接插上就能用。如果是裸传感器(四脚那种,AM2302 常见),要在 DATA 和 VCC 之间手动加一颗 10kΩ 上拉电阻,否则总线浮空、读数全是 nan。上拉为什么必须,这一节有解释。

裸件的第 3 脚一般悬空不接,第 4 脚是 GND,买的时候看清丝印。

完整代码

用 Adafruit 的 DHT 库,和 DHT11 共用同一个库,唯一要改的就是 DHTTYPE——把 DHT11 换成 DHT22

#include "DHT.h"

#define DHTPIN 4        // DATA 接 GPIO4
#define DHTTYPE DHT22   // 关键:这里写 DHT22,不是 DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
  Serial.println("DHT22 启动,等待读数...");
}

void loop() {
  delay(2000);  // DHT22 采样间隔 ≥ 2 秒,比 DHT11 还慢一点

  float h = dht.readHumidity();      // 湿度 %
  float t = dht.readTemperature();   // 温度 °C

  if (isnan(h) || isnan(t)) {
    Serial.println("读取失败(nan):检查上拉和接线");
    return;
  }

  Serial.print("温度: ");
  Serial.print(t, 1);   // 保留 1 位小数,DHT22 给得出来
  Serial.print(" °C   湿度: ");
  Serial.print(h, 1);
  Serial.println(" %");
}

库的安装、DHT.h 找不到等常见问题,DHT11 那节写得更全,这里不重复。t, 1 那个 1 是打印保留一位小数——DHT22 的分辨率撑得起小数位,DHT11 写小数也只是后面跟个 0,没意义。

让 AI 帮你改代码时,把需求说清楚就行:「ESP32 + DHT22 接 GPIO4,每 2 秒读一次温湿度,串口打印保留一位小数,读到 nan 时提示」,它能直接给你这段。

你应该看到什么

打开串口监视器(波特率 115200),上电两三秒后开始刷:

DHT22 启动,等待读数...
温度: 23.4 °C   湿度: 56.8 %
温度: 23.4 °C   湿度: 56.9 %
温度: 23.5 °C   湿度: 57.1 %

注意看小数位——温度跳到 23.4、23.5,湿度有 56.8、56.9、57.1 这种细变化。这就是 DHT22 比 DHT11 直观的地方:同一个房间,DHT11 可能从头到尾只报「23°C 57%」三个数字纹丝不动,DHT22 能让你看出空气在缓慢变化。

对着嘴呵一口气,或者用手捂住传感器,湿度数字几秒内往上窜十几个点,松手后慢慢回落——这是验证它工作正常最快的办法。

读数解读

  • 温度:范围 -40 ~ 80°C,精度约 ±0.5°C,分辨率 0.1°C。负温能正常读,零下环境(如冰箱、冬天户外)显示负数是对的,不是出错。
  • 湿度:范围 0 ~ 100%RH,精度约 ±2%,分辨率 0.1%。极端干燥或饱和时边缘精度会差一些,中段最准。
  • 稳定时间:刚上电第一两次读数可能偏,等几秒稳定了再信。
  • nan:表示这一次没读到有效数据,几乎都是采样太频繁或接触/上拉问题,下一节排查。

把 DHT11 和 DHT22 的指标摆一起看,差距很直观:

指标 DHT11 DHT22
温度量程 0 ~ 50°C -40 ~ 80°C
温度精度 ±2°C ±0.5°C
湿度精度 ±5% ±2%
分辨率 整数 0.1
采样间隔 ≥ 1 秒 ≥ 2 秒

选型 / 避坑

🚧 避坑

DHT22 的采样间隔必须 ≥ 2 秒,比 DHT11(≥1 秒)还慢。loopdelay(2000) 不能再短,否则读数会持续返回 nan。这是元件特性,不是 bug,急不来。

挑哪一颗,看你的项目要什么:

  • 预算紧、只要室内大概数(提醒一下太干了、记个趋势):DHT11 够用,更便宜。
  • 要更准、要测负温、户外或冰箱场景:DHT22,就是本页这颗。
  • 要 I2C 接口、体积更小、走标准总线:看 SHT30,三线变两线(SDA/SCL),不占用单总线那套时序,多设备挂总线更省心。
  • 要工业级精度、做认真的计量:看 SHT35,精度还能再上一档,价格也对应上去。

简单记:DHT22 是「业余玩家的甜点档」——比 DHT11 准得多,又比 SHT 系列便宜、接线还简单。绝大多数学习项目和家用监测,它都够。

故障排查

现象 可能原因 怎么办
读数全是 nan 采样间隔 < 2 秒 delay 至少 2000ms
读数全是 nan 裸件没加上拉 DATA-VCC 间加 10kΩ
读数全是 nan 接触不良 / 杜邦线松 重插,焊死,或换线
第一次读就是 nan 刚上电没稳定 跳过头一两次读数再用
数字纹丝不动 DHTTYPE 还是 DHT11 改成 DHT22 重新烧录
温湿度都偏离很多 接错脚 / 电压不对 核对 VCC、DATA、GND 顺序

排查口诀和 DHT11 通用:先看采样间隔,再看上拉,最后看接触。九成 nan 都死在前两条。

进阶 / 变体

把这颗读数玩出花,常见三个方向:

  • 接屏幕实时显示:温湿度直接刷到 OLED 或 LCD 上,做个桌面小温湿计,不用一直盯串口。怎么驱动屏幕见 显示屏小项目
  • 数据上云:每隔几分钟把读数传到云平台或自建数据库,画成长期曲线,看一天/一周的温湿度走势——这正是 DHT22 比 DHT11 值得的地方,分辨率高,曲线才平滑好看。
  • 接 AI 做判断:读数喂给模型,让它结合时间、历史趋势给提醒(「湿度连续 3 天偏低,该开加湿器了」),而不只是显示一个数。传感器接 AI 的思路见 这一节

典型应用

  • 家庭气象站:客厅/卧室/阳台各放一颗,对比室内外,DHT22 的小数分辨率让曲线有看头。
  • 大棚 / 种植监测:温湿度是作物的命门,±2% 的湿度精度够用来判断要不要通风、加湿。
  • 冰箱 / 冷链记录:负温量程派上用场,普通 DHT11 在这里直接歇菜。
  • 需要稍高精度的长期记录:比 DHT11 准,比工业传感器便宜,做毕设、做家用数据采集刚刚好。

小结

DHT22 是 DHT11 的「无痛升级」——接线一样、库一样、代码只改一行 DHTTYPE,换来的是 ±0.5°C / ±2% 的精度、-40~80°C 的量程和 0.1 的分辨率。代价是采样要慢到 2 秒一次,以及略高的价钱。室内随便看看用 DHT11 就行;想认真记录、想测负温、想要平滑的曲线,DHT22 是性价比最高的那一步。

相关阅读:DHT11(更便宜的入门款) · DS18B20(只测温、可入水) · DHT11 上手教程 · 传感器接 AI · 回传感器总览 · 原理速查

参数以上方 datasheet 为准;本页为公开资料整理,接线与代码请结合实物验证。

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

内容有错、看不懂、或想看下一期?告诉我们 →

本文为公开资料的学习整理,非亲测。涉接线/花钱/合规的步骤请结合实物与官方最新资料验证,风险自负。见免责声明