0、结果
说明:先来看看串口调试助手显示的结果,如果是你想要的,可以接着往下看。
1、外观
说明:虽然dht11温湿度模块形态各异,但是代码都是适用的,因为它们的模块都是一样的。
2、连线
说明:只需要连接三根线。
uno————dht11
5V--------------VCC
GND--------------GND
D7--------------DATA
3、源程序
说明:采用非阻塞方式编写,一定时间检测一次温湿度数据,并将对应功能进行函数化,方便移植。
/****************************************dht11 part****************************************/
#include <dht11.h> //include library
#define dht11Pin 7 //Define DHT11 sensor connection pins
#define dht11TimeInterval 1000 //Detect the time interval of a trip
dht11 DHT11; //Instantiate an object
unsigned long dht11Times = 0; //Record the device running time
int dhtTemp = 0, dht11Humi = 0; //Storage temperature //Storage humidity
/****************************************set up and loop part****************************************/
void setup()
{
Serial.begin(9600); //Example Set the baud rate of the serial port to 9600
}
void loop()
{
getTempData(); //Obtain the temperature and humidity values
}
/****************************************dht11 part****************************************/
/*Obtain the temperature and humidity values*/
void getTempData() {
if (millis() - dht11Times >= dht11TimeInterval) {
dht11Times = millis();
DHT11.read(dht11Pin); //Update all sensor information
dhtTemp = DHT11.temperature;
dht11Humi = DHT11.humidity;
Serial.print("Temperature: ");
Serial.print(dhtTemp);
Serial.print(" (C), ");
Serial.print("Humidity: ");
Serial.print(dht11Humi);
Serial.println(" (%).");
}
}
4、注意事项
说明:需要在线下载<dht11.h>库文件。
5、基本原理
DHT11温湿度传感器是一款数字式温湿度传感器,其工作原理基于热电偶和电容式测量技术。整个传感器由一个电容式湿度传感器和一个NTC测温传感器组成,两者都连接到一个8位单片机芯片上,由芯片完成数据的处理和封装输出。具体的工作过程如下:
- 通过传感器的针脚向机器发出“起始信号”;
- 传感器内部的电容式湿度传感器和NTC测温传感器同时开始工作;
- 传感器首先会对空气中的湿度进行测量,并将湿度值转换为数字信号;
- 接着,传感器测量空气中的温度,并将温度值转换为数字信号;
- 单片机对测得的湿度和温度进行处理,并将结果以数字信号的形式输出。