Arduino 温湿度传感器DHT11模块实验

合集下载

数字温湿度传感器DHT11详解及例程利用串口显示

数字温湿度传感器DHT11详解及例程利用串口显示

数字温湿度传感器DHT111、概述DHTxx 系列数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。

传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

因此,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

每个DHTxx传感器都在极为精确的湿度校验室中进行校准。

校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行输出接口,使系统集成变得简易快捷。

超小的体积、极低的功耗,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

本产品为 4 针单排引脚封装,特殊封装形式可根据用户需求而提供。

2、产品特性湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量。

数字信号输出,从而减少用户信号的预处理负担。

单总线结构输出有效的节省用户控制器的I/O口资源。

并且,不需要额外电器元件。

独特的单总数据传输线协议使得读取传感器的数据更加便捷。

全部校准。

编码方式为8位二进制数。

40bit 二进制数据输出。

其中湿度整数部分占1Byte,小数部分1Byte;温度整数部分1Byte,小数部分1Byte。

其中,湿度为高16位。

最后1Byte为校验和。

卓越的长期稳定性,超低功耗。

4引脚安装,超小尺寸。

各型号管脚完全可以互换。

测量湿度范围从20%RH到90%RH;测量温度范围从0℃到50℃。

适用范围包括恒湿控制,消费家电类产品,温湿度计等领域。

3、外型与引脚排列引脚说明:Vcc 正电源Dout 输出NC 空脚GND 地- 1 -图3.0 DHT外型及管脚4、详细引脚说明:传感器管脚方向识别:正面(有通气孔的一面)看过去,从左到右依次为1、2、3、4脚。

电源引脚,DHTxx的供电电压为 3.5~5.5V。

传感器上电后,要等待1s 以越过不稳定状态在此期间不要发送任何指令。

温湿度测量实验报告

温湿度测量实验报告

温湿度测量实验报告引言温湿度是日常生活中非常重要的气象参数,对于环境舒适度、农业生产、工业生产等都有着重要的影响。

因此,准确测量温湿度成为了科研和工程领域的重要任务。

本实验旨在通过使用一种温湿度传感器来测量环境的温湿度,并分析其测量结果的准确性。

实验装置1.Arduino开发板2.DHT11温湿度传感器3.杜邦线若干4.计算机实验步骤1.连接电路:将DHT11传感器通过杜邦线连接到Arduino开发板上。

确保连接正确且稳固。

2.编写代码:使用Arduino开发环境编写代码,将DHT11传感器与Arduino开发板进行通信。

在代码中实现温湿度测量的功能。

3.上传代码:将编写好的代码上传到Arduino开发板上,确保代码能够正确运行。

4.测试测量:将Arduino开发板连接到计算机,并打开串口监视器。

通过串口监视器可以实时查看DHT11传感器测量得到的温湿度值。

5.对比验证:测量环境中的温湿度,并使用其他准确的温湿度测量仪器进行对比,验证DHT11传感器的测量准确性。

6.记录测量结果:将DHT11传感器测量得到的温湿度值以及其他准确测量仪器的测量结果记录下来,方便后续分析和比较。

7.数据分析:将DHT11传感器测量得到的温湿度值与其他准确测量仪器的测量结果进行比较和分析,探究DHT11传感器的测量误差范围和稳定性。

8.结果讨论:根据数据分析的结果,讨论DHT11传感器的测量准确性以及在实际应用中的可靠性。

9.结论总结:总结实验结果,提出改进传感器测量准确性的建议,并展望未来温湿度测量技术的发展方向。

结果与讨论通过对DHT11传感器的实际测量以及与其他准确测量仪器的对比验证,我们得到了以下结果和结论: 1. DHT11传感器在一定范围内的温湿度测量结果与其他准确测量仪器基本吻合,具有较高的测量准确性。

2. 随着测量温度和湿度的增加,DHT11传感器的测量误差会逐渐增大,尤其是在极端的高温高湿环境中。

动手做个温度指示器

动手做个温度指示器

动手做个温度指示器作者:大姚来源:《中学科技》2016年第11期Arduino是创客们DIY的必备法宝。

借助Arduino 开发板,创客们通过简单的代码程序就可以实现一些常用电子设备的运行功能。

本期我们介绍如何利用Arduino来制作家里的常用物品之一——温度指示器。

一起动手试做一下吧!材料准备Arduino控制器,温湿度传感器 DHT11,舵机 DSS M15,杜邦线若干。

温湿度传感器是温度指示器的感应元件。

因为笔者地处南方地区,本次制作采用DHT11温湿度传感器,它包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

传感器可通过3P数字线直插Arduino控制器,Arduino控制器可以通过屏幕实时显示该传感器的读数变化,其温度感应范围为0~50℃。

北方地区的读者可以采用探测范围更大的DHT22温湿度传感器,其温度感应范围为-40~80℃。

温度指示器选用 DSS M15舵机作为指示部件,它的舵盘的旋转角度可达180°。

制作过程1. 首先,我们要为温度指示器制作一个外壳。

可以选用一些小型的废弃包装盒作为外壳,然后用画笔在盒子上画出温度指示范围。

根据舵盘的旋转角度范围,温度指示范围设计为一个半圆,均分成6等分,指示范围标注为-10~50℃。

2. 设计好外壳后,要把舵机装在外壳里面。

安装前在半圆的圆心处开一个小孔,把舵机上的舵盘拆下,将舵机的传动轴从小孔中穿过去。

由于舵机的传动轴较短,所以选取的外壳不宜太厚,以免影响舵机的正常运行。

3. 接下来我们要完成的就是整个温度指示器的核心部分。

将温湿度传感器和舵机用杜邦线连接到Arduino控制器上,电路连接图如图3- 1、图3- 2所示。

4. 用硬纸板剪一枚指针,用双面胶固定到舵盘上。

最后将Arduino控制器封到盒子里,将温湿度传感器DHT11用双面胶固定在外壳上方,给Arduino控制器接上电源(电压范围为5~12V的直流电源适配器)。

温湿度传感器课程设计单元电路设计

温湿度传感器课程设计单元电路设计

温湿度传感器课程设计单元电路设计温湿度传感器是一种用于测量环境中温度和湿度的传感器。

在课程设计中,我们将设计一个基于电路的温湿度传感器。

在本课程设计中,我们将使用DHT11传感器模块来测量温度和湿度。

DHT11是一款低成本、易于使用的数字温湿度传感器,具有4个引脚的封装。

它通过一根单线串行数据线与主控设备通信,提供可靠的温度和湿度测量。

为了设计一个可靠的温湿度传感器电路,我们将使用以下元件和组件:1. DHT11传感器模块:用于测量温度和湿度,提供数值输出。

2. Arduino开发板:作为主控设备,用于接收传感器的数据并进行处理。

3.聚合器:用于整合传感器和主控设备之间的连接,并提供电源。

4.面包板:用于连接电子元件,方便原型搭建和调试。

5.连接线:用于连接各个元件。

该电路的设计可以分为以下几个步骤:1.连接DHT11传感器模块:将DHT11传感器模块插入面包板,并使用连接线将其与聚合器相连。

连接线的一端插入DHT11传感器模块的引脚孔中,另一端插入聚合器的相应引脚孔中。

确保连接的稳固和可靠。

2.连接Arduino开发板:使用连接线将Arduino开发板与聚合器相连。

将连接线的一端插入Arduino开发板的引脚孔中,将另一端插入聚合器的相应引脚孔中。

确保连接的稳固和可靠。

3.供电和调试:将电源线插入聚合器的电源接口中,并将另一端插入电源插座中。

通过调试电路,确保传感器模块和Arduino开发板的连接正常。

4.编程:使用Arduino编程软件,编写代码以读取DHT11传感器模块的数据。

代码将包括初始化传感器模块、读取温度和湿度数据、将数据传输至主控设备等功能。

5.测试和验证:完成上述步骤后,进行电路的测试和验证。

将传感器放置在不同的环境中,记录传感器读取到的温度和湿度数据,与实际情况进行对比,验证传感器的准确性和稳定性。

总结:通过本次课程设计,我们实现了基于电路的温湿度传感器的设计。

该设计利用DHT11传感器模块和Arduino开发板,实现了对环境温度和湿度的测量,同时通过编程将数据传输到主控设备。

DHT11 温湿度传感器说明书

DHT11 温湿度传感器说明书

DHT11说明书温湿度传感器●具有抗冲击性及电气性能优良●完全标定●数字输出,单总线通讯●优异的长期稳定性●响应迅速、恢复时间快、抗干扰能力强产品简述DHT11是一款含有已校准数字信号输出的温湿度复合传感器,采用了自主研发的集成式数字温湿度元件,应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。

DHT11传感器内包含一个温湿度测量元件和一个高性能MCU。

应用范围DHT11温湿度传感器可以应用于农业、家电、汽车、气象、医疗等领域,如暖通空调、除湿机、冷链仓储、测试及检测设备、数据记录仪、湿度调节系统、医疗等。

图1.DHT11温湿度传感器1.传感器性能1.1相对湿度表1.湿度特性表参数测试条件最小典型最大单位量程范围附加说明15-95%RH精度2--±5%RH重复性--±1-%RH互换性-完全互换响应时间3τ(63%)-<6-s迟滞--±0.3-%RH漂移4典型值-<0.5-%RH/yr 1.2电气特性表2.电气特性表符号参数测试条件最小典型最大单位VCC供电电压- 3.35 5.5VI平均电流5休眠-60-µA 测量-1000-µAV OL低电平输出电压I L6=5mA0-300mVV OH高电平输出电压Rp<25kΩ0.9*VCC-VCC VV IL低电平输入电压下降0-0.3VV IH高电平输入电压上升0.7-VCC VRp上拉电阻7VCC=5V1 4.7100kΩT S采样周期-2--s实际使用中的一些特性如功耗、输入和输出的高、低电平电压等都取决于供电电压。

在使用传感器时,要使系统获得鲁棒性,请确保各参数在表2所给出的范围内。

1正常工作范围:8~85%RH,超出此范围,传感器读数会有偏差(在90%RH湿度下60小时后,漂移>3%RH)。

工作范围进一步限定在-20~60℃。

2此精度为传感器出厂检验时,在25℃、VCC=5V条件下的测试精度。

Arduino 温湿度传感器DHT11模块实验

Arduino 温湿度传感器DHT11模块实验

Arduino温湿度传感器DHT11模块实验网上有很多DHT11的测试,试了N个程序,总是不得要领,各种报错,最后终于找到一套可用的库。

首先是DHT11.h文件1.#ifndef__DHT11_H__2.#define__DHT11_H__3.#include<Arduino.h>4.//DHT11IO设置5.#define DHT11_DQ26.#define DHT11_DQ_0digitalWrite(DHT11_DQ,LOW)7.#define DHT11_DQ_1digitalWrite(DHT11_DQ,HIGH)8.9.//函数或者变量声明10.extern void DHT11_Init();11.extern unsigned char DHT11_Read_Byte();12.extern void DHT11_Read();13.14.extern unsigned char HUMI_Buffer_Int;15.extern unsigned char TEM_Buffer_Int;16.17.#endif其次是DHT11.cpp文件1.#include"DHT11.h"2.//定义变量3.unsigned char HUMI_Buffer_Int=0;4.unsigned char TEM_Buffer_Int=0;5.//****************************************************6.//初始化DHT117.//****************************************************8.void DHT11_Init()9.{10.pinMode(DHT11_DQ,OUTPUT);11.DHT11_DQ_0;//拉低总线,发开始信号;12.delay(30);//延时要大于18ms,以便DHT11能检测到开始信号;13.DHT11_DQ_1;14.delayMicroseconds(40);//等待DHT11响应;15.pinMode(DHT11_DQ,INPUT);16.while(digitalRead(DHT11_DQ)==HIGH);17.delayMicroseconds(80);//DHT11发出响应,拉低总线80us;18.if(digitalRead(DHT11_DQ)==LOW);19.delayMicroseconds(80);//DHT11拉高总线80us后开始发送数据;20.}21.22.//****************************************************23.//读一个字节DHT11数据24.//****************************************************25.unsigned char DHT11_Read_Byte()26.{27.unsigned char i,dat=0;28.unsigned int j;29.pinMode(DHT11_DQ,INPUT);30.for(i=0;i<8;i++)31.{32.if(digitalRead(DHT11_DQ)==LOW)33.{34.while(digitalRead(DHT11_DQ)==LOW);//等待50us;35.delayMicroseconds(30);//判断高电平的持续时间,以判定数据是‘0’还是‘1’;36.if(digitalRead(DHT11_DQ)==HIGH)37.dat|=(1<<(7-i));//高位在前,低位在后;38.while(digitalRead(DHT11_DQ)==HIGH);//数据‘1’,等待下一位的接收;39.}40.}41.return dat;42.}43.44.//****************************************************45.//读取温湿度值,存放在TEM_Buffer和HUMI_Buffer46.//****************************************************47.void DHT11_Read()48.{49.DHT11_Init();50.HUMI_Buffer_Int=DHT11_Read_Byte();//读取湿度的整数值51.DHT11_Read_Byte();//读取湿度的小数值52.TEM_Buffer_Int=DHT11_Read_Byte();//读取温度的整数值53.DHT11_Read_Byte();//读取温度的小数值54.DHT11_Read_Byte();//读取校验和55.delayMicroseconds(50);//DHT11拉低总线50us56.pinMode(DHT11_DQ,OUTPUT);57.DHT11_DQ_1;//释放总线58.}最后是主程序文件1.#include<Arduino.h>2.#include"DHT11.h"3.4.void setup()//Arduino程序初始化程序放在这里,只在开机时候运行一次5.{6.Serial.begin(9600);//设置通讯的波特率为96007.DHT11_Read();//读取温湿度值8.delay(200);//等待传感器稳定9.}10.11.void loop()//Arduino程序的主程序部分,循环运行内部程序12.{13.DHT11_Read();//读取温湿度值14.Serial.print("HUMI=");15.Serial.print(HUMI_Buffer_Int);16.Serial.println("%RH");17.Serial.print("TMEP=");18.Serial.print(TEM_Buffer_Int);19.Serial.println("C");20.delay(1000);//延时1s21.}三个文件保存在同一个文件夹即可。

温湿度传感器实训报告书

温湿度传感器实训报告书

一、引言随着科技的不断发展,温湿度传感器作为一种重要的环境监测设备,在农业、工业、气象、医疗等多个领域发挥着至关重要的作用。

本次实训旨在通过实际操作,深入了解温湿度传感器的工作原理、性能特点以及在实际应用中的调试和维护方法。

二、实训目的1. 理解温湿度传感器的工作原理和结构特点。

2. 掌握温湿度传感器的安装、调试和维护方法。

3. 学会使用温湿度传感器进行环境监测和数据采集。

4. 培养实际操作能力和分析问题、解决问题的能力。

三、实训设备与材料1. 温湿度传感器:SHT40、DHT11等。

2. 单片机:STM32、Arduino等。

3. 电源模块:直流电源、锂电池等。

4. 数据采集与显示设备:串口显示屏、计算机等。

5. 连接线、电路板等辅助材料。

四、实训内容(一)SHT40温湿度传感器实训1. 传感器介绍:SHT40是一款高性能的温湿度传感器,具有高精度、低功耗、快速响应等特点。

2. 硬件连接:将SHT40传感器与STM32单片机进行连接,包括电源、数据线等。

3. 软件编程:编写STM32单片机程序,读取SHT40传感器的温湿度数据。

4. 数据采集与显示:将采集到的温湿度数据通过串口显示屏或计算机显示出来。

5. 结果分析:分析SHT40传感器的测量结果,验证其性能特点。

(二)DHT11温湿度传感器实训1. 传感器介绍:DHT11是一款低成本的温湿度传感器,具有结构简单、易于使用等特点。

2. 硬件连接:将DHT11传感器与STM32单片机进行连接,包括电源、数据线等。

3. 软件编程:编写STM32单片机程序,读取DHT11传感器的温湿度数据。

4. 数据采集与显示:将采集到的温湿度数据通过串口显示屏或计算机显示出来。

5. 结果分析:分析DHT11传感器的测量结果,验证其性能特点。

五、实训结果与分析(一)SHT40传感器1. 测量结果:在实验室环境下,SHT40传感器测量得到的温度为25.2℃,湿度为50.1%。

DHT11实验

DHT11实验

《嵌入式接口技术》实验报告班级:机电实验班12(1)姓名:任梦杰学号:2012339930023DHT11数字温湿度传感器实验1.实验装置ALIENTEK探索者STM32F407开发板2.实验原理DHT11是一款湿温度一体化的数字传感器。

该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。

DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。

传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。

DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。

DHT11的技术参数如下:● 工作电压范围:3.3V-5.5V● 工作电流:平均0.5mA● 输出:单总线数字信号● 测量范围:湿度20~90%RH,温度0~50℃● 精度:湿度±5%,温度±2℃● 分辨率:湿度1%,温度1℃DHT11的管脚排列如图36.1.1所示:虽然DHT11与DS18B20类似,都是单总线访问,但是DHT11的访问,相对DS18B20来说要简单很多。

下面我们先来看看DHT11的数据结构。

DHT11数字湿温度传感器采用单总线数据格式。

即,单个数据引脚端口完成输入输出双向传输。

其数据包由5Byte(40Bit)组成。

数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出。

DHT11的数据格式为:8bit湿度整数数据+8bit 湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。

其中校验和数据为前四个字节相加。

传感器数据输出的是未编码的二进制数据。

数据(湿度、温度、整数、小数)之间应该分开处理。

例如,某次从DHT11读到的数据如图所示:由以上数据就可得到湿度和温度的值,计算方法:湿度= byte4 . byte3=45.0 (%RH)温度= byte2 . byte1=28.0 ( ℃)校验= byte4+ byte3+ byte2+ byte1=73(=湿度+温度)(校验正确)可以看出,DHT11的数据格式是十分简单的,DHT11和MCU的一次通信最大为3ms左右,建议主机连续读取时间间隔不要小于100ms。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Arduino温湿度传感器DHT11模块实验
网上有很多DHT11的测试,试了N个程序,总是不得要领,各种报错,最后终于找到一套可用的库。

首先是DHT11.h文件
1.#ifndef__DHT11_H__
2.#define__DHT11_H__
3.#include<Arduino.h>
4.//DHT11IO设置
5.#define DHT11_DQ2
6.#define DHT11_DQ_0digitalWrite(DHT11_DQ,LOW)
7.#define DHT11_DQ_1digitalWrite(DHT11_DQ,HIGH)
8.
9.//函数或者变量声明
10.extern void DHT11_Init();
11.extern unsigned char DHT11_Read_Byte();
12.extern void DHT11_Read();
13.
14.extern unsigned char HUMI_Buffer_Int;
15.extern unsigned char TEM_Buffer_Int;
16.
17.#endif
其次是DHT11.cpp文件
1.#include"DHT11.h"
2.//定义变量
3.unsigned char HUMI_Buffer_Int=0;
4.unsigned char TEM_Buffer_Int=0;
5.//****************************************************
6.//初始化DHT11
7.//****************************************************
8.void DHT11_Init()
9.{
10.pinMode(DHT11_DQ,OUTPUT);
11.DHT11_DQ_0;//拉低总线,发开始信号;
12.delay(30);//延时要大于18ms,以便DHT11能检测到开始信号;
13.DHT11_DQ_1;
14.delayMicroseconds(40);//等待DHT11响应;
15.pinMode(DHT11_DQ,INPUT);
16.while(digitalRead(DHT11_DQ)==HIGH);
17.delayMicroseconds(80);//DHT11发出响应,拉低总线80us;
18.if(digitalRead(DHT11_DQ)==LOW);
19.delayMicroseconds(80);//DHT11拉高总线80us后开始发送数据;
20.}
21.
22.//****************************************************
23.//读一个字节DHT11数据
24.//****************************************************
25.unsigned char DHT11_Read_Byte()
26.{
27.unsigned char i,dat=0;
28.unsigned int j;
29.pinMode(DHT11_DQ,INPUT);
30.for(i=0;i<8;i++)
31.{
32.if(digitalRead(DHT11_DQ)==LOW)
33.{
34.while(digitalRead(DHT11_DQ)==LOW);//等待50us;
35.delayMicroseconds(30);//判断高电平的持续时间,以判定数据是‘0’还是‘1’;
36.if(digitalRead(DHT11_DQ)==HIGH)
37.dat|=(1<<(7-i));//高位在前,低位在后;
38.while(digitalRead(DHT11_DQ)==HIGH);//数据‘1’,等待下一位的接收;
39.}
40.}
41.return dat;
42.}
43.
44.//****************************************************
45.//读取温湿度值,存放在TEM_Buffer和HUMI_Buffer
46.//****************************************************
47.void DHT11_Read()
48.{
49.DHT11_Init();
50.HUMI_Buffer_Int=DHT11_Read_Byte();//读取湿度的整数值
51.DHT11_Read_Byte();//读取湿度的小数值
52.TEM_Buffer_Int=DHT11_Read_Byte();//读取温度的整数值
53.DHT11_Read_Byte();//读取温度的小数值
54.DHT11_Read_Byte();//读取校验和
55.delayMicroseconds(50);//DHT11拉低总线50us
56.pinMode(DHT11_DQ,OUTPUT);
57.DHT11_DQ_1;//释放总线
58.}
最后是主程序文件
1.#include<Arduino.h>
2.#include"DHT11.h"
3.
4.void setup()//Arduino程序初始化程序放在这里,只在开机时候运行一次
5.{
6.Serial.begin(9600);//设置通讯的波特率为9600
7.DHT11_Read();//读取温湿度值
8.delay(200);//等待传感器稳定
9.}
10.
11.void loop()//Arduino程序的主程序部分,循环运行内部程序
12.{
13.DHT11_Read();//读取温湿度值
14.Serial.print("HUMI=");
15.Serial.print(HUMI_Buffer_Int);
16.Serial.println("%RH");
17.Serial.print("TMEP=");
18.Serial.print(TEM_Buffer_Int);
19.Serial.println("C");
20.delay(1000);//延时1s
21.}
三个文件保存在同一个文件夹即可。

相关文档
最新文档