原创 【雕爷学编程】Arduino动手做(55)--DHT11温湿度传感器

2020-1-4 11:47 3930 17 4 分类: MCU/ 嵌入式 文集: 雕爷学编程

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传感器扩展板上。

  1. /*
  2. 【Arduino】168种传感器模块系列实验(55)
  3. 实验五十五:DHT11 温湿度复合传感器模块(数字型单总线通信)
  4. */
  5. #include "DHT.h"
  6. #define DHTPIN 8
  7. #define DHTTYPE DHT11
  8. DHT dht(DHTPIN, DHTTYPE);
  9. void setup() {
  10. Serial.begin(9600);
  11. dht.begin();
  12. }
  13. void loop() {
  14. delay(2000);
  15. float h = dht.readHumidity();
  16. float t = dht.readTemperature();
  17. Serial.print("Humidity: ");
  18. Serial.println(h);
  19. Serial.print("Temperature: ");
  20. Serial.print(t);
  21. Serial.println(" ℃ ");
  22. }


  1. /*
  2. 【Arduino】168种传感器模块系列实验(55)
  3. 实验五十五:DHT11 温湿度复合传感器模块(数字型单总线通信)
  4. 实验程序之二
  5. */
  6. #include "DHT.h"
  7. #define DHTPIN 2
  8. #define DHTTYPE DHT11
  9. DHT dht(DHTPIN, DHTTYPE);
  10. void setup() {
  11. Serial.begin(9600);
  12. Serial.println("DHTxx test!");
  13. dht.begin();
  14. }
  15. void loop() {
  16. delay(2000);
  17. floath = dht.readHumidity();
  18. floatt = dht.readTemperature();
  19. floatf = dht.readTemperature(true);
  20. if(isnan(h) || isnan(t) || isnan(f)) {
  21. Serial.println("Failed to read from DHT sensor!");
  22. return;
  23. }
  24. floathi = dht.computeHeatIndex(f, h);
  25. Serial.print("Humidity: ");
  26. Serial.print(h);
  27. Serial.print(" %");
  28. Serial.print("\t");
  29. Serial.print("Temperature: ");
  30. Serial.print(t);
  31. Serial.println(" *C ");
  32. }


作者: 雕爷学编程, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3894459.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条