做温室大棚监控、烘干箱、或给机器人加个环境感知,测温湿度最便宜的就是DHT系列。DHT11白菜价入门,DHT22精度高一点,两者都是单总线数字输出。这篇把两种模块的接线、差异和怎么选一次说明白。
DHT11和DHT22差在哪
先说结论:DHT11精度低、响应慢,湿度公差约±5%RH、温度±2℃,每秒最多读一次;DHT22精度高——湿度±2%RH、温度±0.5℃,测量范围更大,湿度能测0到100%、温度能到-40到80℃,但贵一些。做要求不高的环境展示,DHT11够用;要存数据做分析、或场景温度湿度波动大,DHT22更稳。

这是DHT11模块的典型接线:模块三根脚VCC接5V、GND接地、DATA接一个数字脚。很多成品模块板载了上拉电阻,直接插三根线就能读。裸的DHT11/DHT22是四个脚,其中第3脚通常是空的不用接,接VCC、DATA、GND三根就行。
DHT11怎么接Arduino和读数据
DHT走的是单总线协议,时序讲究,别自己手写,直接用库最省心。库管理器里搜DHT(Adafruit那套),初始化时把数据引脚和型号传进去。读取的核心是:先begin,然后循环里调readTemperature和readHumidity,返回的就是摄氏度和相对湿度百分比。

这张图把你常见的那种四脚裸传感器接面包板的走线画得很清楚——传感器插得离Arduino近一点、连线短一点,信号才稳。单总线对线长和干扰敏感,杜邦线太长或旁边有大电流线,读数会间歇性变成“NaN”,插紧、理线、必要时加个上拉电阻就能缓解。
使用时的两点建议
一是别读太快,DHT11采样间隔约1秒、DHT22约2秒,频繁读会卡住返回错误,循环里加个延时或限制读取频率。二是先确认模块型号和引脚下拉对不对,很多“读数全是NaN”的问题就出在DATA引脚接错或没加该加的上拉。配套之前讲过的OLED屏幕,把温湿度实时打上去,就是一套完整的环境监测小站。







要记录数据做分析就上DHT22,误差小好多,也就贵一点点
配前面那篇的OLED把温湿度实时打上去,一个监测小站就成了
读太频繁会出NaN,DHT11憋住1秒读一次、DHT22两秒一次就稳了
四脚裸传感器的第三脚是空的别接,VCC DATA GND三根就够