【雕爷学编程】Arduino动手做(55)--DHT11温湿度传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
实验五十五:DHT11 温湿度复合传感器模块(数字型单总线通信)
温度
度量物体冷热的物理量,是国际单位制中7个基本物理量之一。温度是物体内分子间平动动能的一种表现形式。分子运动愈快,即温度愈高,物体愈热;分子运动愈慢,即温度愈低,物体愈冷。从分子运动论观点看,温度是物体分子运动平均动能的标志,温度是分子热运动的集体表现,含有统计意义。在生产和科学研究中,许多物理现象和化学过程都是在一定的温度下进行的,人们的生活也和它密切相关。
湿度
湿度很久以前就与生活存在着密切的关系,但用数量来进行表示较为困难。对湿度的表示方法有绝对湿度、相对湿度、露点、湿气与干气的比值(重量或体积)等等。日常生活中最常用的表示湿度的物理量使空气的相对湿度。用%RH表示。在物理量的导出上相对湿度与温度有着密切的关系。一定体积的密闭气体,其温度越高相对湿度越低,温度越低,其相对湿度越高。其中涉及到复杂的热力工程学知识。
温湿度与人们生活的关系
如:冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。在此范围内感到舒适的人占95%以上。在装有空调的室内,室温为19至24℃,湿度为40%至50%时,人会感到最舒适。如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。18℃,湿度应是40%至60%,此时,人的精神状态好,思维最敏捷。
DHT11
是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。
模块参数
供电电压: 3.3~5.5V DC
输 出: 单总线数字信号
测量范围: 湿度 20-90%RH, 温度 0~50℃
测量精度: 湿度+-5%RH, 温度+-2℃
分 辨 率: 湿度 1%RH, 温度 1℃
长期稳定性: <±1%RH/年
注意事项
1、避免在结露情况下使用
2、长期保存温度 10-40℃,湿度 60%以下
3、使用时电源和地接法要正确,以免损坏传感器
模块电原理图
模块描述
1、可以检测周围环境的湿度和温度
2、传感器采用DHT11
3、湿度测量范围:20%-95%(0度-50度范围)湿度测量误差:+-5%
4、温度测量范围:0度-50度 温度测量误差:+-2度
5、工作电压3.3V-5V
6、输出形式 数字输出
7、设有固定螺栓孔,方便安装
8、小板PCB尺寸:3.2cm*1.4cm
9、电源指示灯(红色)
10、每套重量约为8g
模块接口说明(3线制)
1 VCC 外接3.3V-5V
2 GND 外接GND
3 DO 小板开关数字量输出接口 接单片机IO口
模块使用事项
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品连接方便,可直接插接到Arduino传感器扩展板上。
/* 【Arduino】168种传感器模块系列实验(55) 实验五十五:DHT11 温湿度复合传感器模块(数字型单总线通信) */ #include "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("Humidity: "); Serial.println(h); Serial.print("Temperature: "); Serial.print(t); Serial.println(" ℃ "); }
/* 【Arduino】168种传感器模块系列实验(55) 实验五十五:DHT11 温湿度复合传感器模块(数字型单总线通信) 实验程序之二 */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } void loop() { delay(2000); floath = dht.readHumidity(); floatt = dht.readTemperature(); floatf = dht.readTemperature(true); if(isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } floathi = dht.computeHeatIndex(f, h); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %"); Serial.print("\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C "); }