arduino的DHT11
芯片手册:
芯系列DHT11温湿度传感器芯片库下载:
https://github.com/adafruit/DHT-sensor-library
https://github.com/adafruit/Adafruit_Sensor
(以上两个文件都要下载)
头文件加宏定义:
//这个为DHT11头文件
#include <DHT.h>
#include <DHT_U.h>
//
创建DHT对象
#define DHTPIN 4 // 设置获取数据的引脚
#define DHTTYPE DHT11 // 选择DHT11
DHT dht(DHTPIN, DHTTYPE); // 创建一个DHT对象
传感器初始化
dht.begin(); // 初始化DHT11
参数 | 数据类型 | 作用 | 选项 |
---|---|---|---|
返回值 | 无 | 无 | 无 |
读取湿度
dht.readHumidity(); // 读取湿度
参数 | 数据类型 | 作用 | 选项 |
---|---|---|---|
返回值 | float | 读取湿度 | 无 |
读取温度
dht.readTemperature(); // 读取温度
参数 | 数据类型 | 作用 | 选项 |
---|---|---|---|
返回值 | float | 读取温度 | 无 |
判断是否启动正常
if (isnan(h) || isnan(t)) {
Serial.println("DHT11数据读取失败");
return;
}
参考代码:
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN PB1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin(); // 初始化DHT11
}
void loop() {
// 暂停2秒,读取数据官方说明需要250毫秒
delay(2000);
// 读取传感器数据
float h = dht.readHumidity(); // 读取湿度
float t = dht.readTemperature(); // 读取温度
// 判断数据是否成功读取
if (isnan(h) || isnan(t)) {
Serial.println("DHT11数据读取失败");
return;
}
// 串口打印
Serial.print ("湿度: ");
Serial.print (h);
Serial.print ("% | ");
Serial.print ("温度度: ");
Serial.print (t);
Serial.println ("℃");
}