DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中、在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。其封装、管脚定义及典型应用如图5.7所示。
图5.7 DHT11封装、管脚定义及典型应用图
1.芯片参数
工作电压范围:3.3V~5.5V。
工作电流:平均0.5mA。
输出:单总线数字信号。
测量范围:湿度20%~90%RH,温度0~50℃。
精度:湿度±5%,温度±2℃。
分辨率:湿度1%,温度1℃。
2.工作原理
传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应该分开处理。例如,某次从DHT11读到的数据如图5.8所示。
图5.8 DHT11输出数据格式
由以上数据就可得到湿度和温度的值,计算方法如下。
湿度=byte4.byte3=45.0(%RH)
温度=byte2.byte1=28.0(℃)
校验=byte4+byte3+byte2+byte1=73(校验正确)
3.DHT11温湿度传感器时序图
数据发送流程如图5.9所示。
图5.9 DHT11数据发送流程
首先主机发送开始信号,即拉低数据线,保持t1(至少18ms)时间;然后拉高数据线t2(20~40μs)时间,读取DHT11的响应,正常的话,DHT11会拉低数据线,保持t3(40~50μs)时间,作为响应信号;最后,DHT11拉高数据线,保持t4(40~50μs)时间后,开始输出数据。
DHT11输出数字“0”的时序如图5.10所示。
图5.10 DHT11输出数字“0”时序(www.daowen.com)
DHT11输出数字“1”的时序如图5.11所示。
图5.11 DHT11输出数字“1”时序
4.DHT11温湿度采集编程
DHT11温湿度采集主要根据上述工作原理和时序来编程,具体实现时一般有两种方式。
①严格根据时序图编程,要求有一定编程经验,比较费时。
②根据厂家或网上共享的程序进行必要的处理,省事,但必须要进过严格的验证。
【例5.4】将DHT11温湿度数据通过串口发送到PC机,若DHT11没连接或断了,则输出错误信息。DHT11的DATA引脚连接STM32的PA1引脚。
编程要点如下。
(1)根据芯片手册编写DHT11复位程序。
(2)判读DHT11是否存在,不存在则报错,返回。
(3)根据芯片手册时序图编写读一位数据函数。
(4)编写读一字节数据函数。
(5)编写读取温湿度和校验程序。
(6)串口发送DHT11信息函数。
(7)根据学过的内容,编写GPIO初始化、串口初始化、头文件、主函数等,完成要求的功能。
温湿度检测程序头文件dht11.h
重要提示
在阅读分析程序时一定要对照时序图和芯片手册相关说明。这样,对有些没有例程的芯片,也可以通过这样的方法编写芯片的使用程序。
主程序如下。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。