DHT11温湿度传感器(上)
扫描二维码
随时随地手机看文章
DHT11是一款由Aosong Electronics推出的低成本、集成化数字温湿度传感器,凭借其接线简单、无需外围元件、操作便捷的特性,成为入门级温湿度采集场景的首选方案,广泛应用于智能家居、消费电子、农业监测、工业环境简易监控等领域。与需要复杂时序控制的DS18B20或精度要求较高的DHT22相比,DHT11以“够用就好”的设计理念,平衡了成本与实用性,其核心优势在于单总线通信的简洁性和全数字输出的便利性,无需额外的AD转换器或复杂的校准流程,仅需通过三根线(VCC、GND、DATA)即可与微控制器(MCU)实现数据交互,极大降低了硬件设计与软件开发的门槛。
从硬件结构来看,DHT11内部集成了温湿度传感元件、8位MCU、单总线接口电路及数据校准存储单元,整体封装为4针(或3针)塑料封装,体积小巧,便于嵌入各类设备。其中,温湿度传感元件采用高分子湿敏电阻和NTC热敏电阻组合,能够将环境中的相对湿度和温度转换为模拟信号;内部MCU负责对模拟信号进行AD转换、数据校准与数字编码,再通过单总线接口将处理后的数字信号传输给外部主机。值得一提的是,DHT11的校准数据已在出厂时存储于内部OTP(一次性可编程)存储器中,每次上电后会自动加载校准参数,确保测量数据的稳定性,无需用户额外进行校准操作,这一设计进一步简化了应用流程。其供电电压范围为3.3V~5.5V,兼容主流MCU的IO电平,工作电流在测量期间约为2.5mA,休眠期间仅为100μA,低功耗特性使其适合电池供电的便携设备(如小型温湿度计、智能花盆传感器)。
DHT11的核心通信方式为单总线协议,尽管与DS18B20的单总线名称相同,但时序规则与数据格式存在显著差异,且DHT11不支持多节点级联(单总线仅能挂载一个传感器),这是由其硬件设计的简化性决定的。单总线的DATA引脚兼具输入与输出功能,既用于主机向传感器发送启动信号,也用于传感器向主机返回温湿度数据,因此需要通过外部4.7kΩ~10kΩ的上拉电阻维持总线空闲状态的高电平,确保信号传输的稳定性。通信过程分为“主机启动信号”和“传感器响应与数据传输”两个阶段,时序的准确性直接决定通信成败,且DHT11的时序要求虽不及DS18B20严苛,但仍需严格遵循时长规范,否则会导致数据丢失或误读。
主机发起通信时,首先需要发送启动信号:将DATA线拉低至少18ms(通常设计为20ms),确保传感器能够检测到启动指令;随后主机释放DATA线,总线通过上拉电阻恢复高电平,主机进入等待状态,准备接收传感器的响应信号。传感器检测到启动信号后,会在20~40μs内做出应答:先将DATA线拉低80μs,再拉高80μs,这两段连续的低-高电平组合构成应答信号,告知主机“已准备就绪,可以传输数据”。主机检测到应答信号后,需立即切换DATA线为输入模式,等待接收传感器发送的40位数字数据,整个数据传输过程无需主机额外发送时钟信号,完全由传感器控制时序节奏。
DHT11传输的40位数据遵循固定的格式,按顺序依次为8位湿度整数部分、8位湿度小数部分、8位温度整数部分、8位温度小数部分、8位校验和,总计5个字节。需要注意的是,DHT11的测量精度限制了其小数部分的实用性——湿度测量范围为20%RH~90%RH,精度为±5%RH;温度测量范围为0℃~50℃,精度为±2℃,且小数部分始终为0(即仅能输出整数温湿度值),因此实际有效数据仅为湿度整数和温度整数,这也是其与高精度传感器DHT22的核心区别之一。校验和的计算规则为前四个字节(湿度整+湿度小+温度整+温度小)的累加和取低8位,主机接收数据后,通过计算校验和与传感器发送的校验和对比,若一致则说明数据传输无误,可进行解析;若不一致则判定为数据错误,需重新发起通信。例如,若接收的40位数据为“00100101 00000000 00011001 00000000 00111110”,则湿度整数为0x25(37%RH),湿度小数为0x00(0%RH),温度整数为0x19(25℃),温度小数为0x00(0℃),校验和为0x25+0x00+0x19+0x00=0x3E(与最后一字节一致),数据有效。





