简介
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
传感器通过3P数字线直插Arduino。单线制串行接口,使系统集成变得简易快捷。再配合我们提供的代码,你可以快速搭建。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为3脚PH2.0封装,连接方便。
产品参数
- 供电电压:+5V
- 接口类型:数字
- 温度范围:0-50℃ 误差±2℃
- 湿度范围:20-90%RH 误差±5%RH
使用教程
连接图
样例代码
在编译和上传样例程序前,还请通过该链接下载样例程序和库文件,并安装到Arduino IDE下的libraries对应文件夹下。
/*
# 描述:
# 以下这段代码可检测当下环境的湿度及温度
*/
//
// FILE: dht11_test1.pde
// PURPOSE: DHT11 library test sketch for Arduino
//
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4
void setup(){
Serial.begin(9600);
Serial.println("DHT TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}
void loop(){
int chk;
Serial.print("DHT11, \t");
chk = DHT.read(DHT11_PIN); // READ DATA
switch (chk){
case DHTLIB_OK:
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error,\t");
break;
default:
Serial.print("Unknown error,\t");
break;
}
// DISPLAT DATA
Serial.print(DHT.humidity,1);
Serial.print(",\t");
Serial.println(DHT.temperature,1);
delay(2000);
}
Mind+ 上传模式编程(图形化)
1、下载及安装软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装
2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程
3、“扩展”中选择“主控板”中的“Arduino Uno”,“传感器”中选择“DHT11/22温湿度传感器”。 详细教程:Mind+基础wiki教程-加载扩展库流程
4、进行编程,程序如下图:
5、菜单“连接设备”,“上传到设备”
6、程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印
Mind+ Python模式编程(行空板)
Mind+Python模式为完整Python编程,因此需要能运行完整Python的主控板,此处以行空板为例说明
连接图
操作步骤
1、下载及安装官网最新软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装
2、切换到“Python模式”。“扩展”中选择“pinpong库”中的“pinpong初始化”和“DHT11/22温湿度传感器”。切换模式和加载库的详细操作链接
3、进行编程
4、连接行空板,程序点击运行后,可在终端查看数据。行空板官方文档-行空板快速上手教程 (unihiker.com)
代码编程
以pinpong库为例,行空板官方文档-行空板快速上手教程 (unihiker.com)
# -*- coding: utf-8 -*-
#实验效果:读取dht温湿度传感器
#接线:使用电脑连接一块UNIHIKER主控板,dht11连接P21
import time
from pinpong.board import Board,Pin,DHT11
Board("UNIHIKER").begin() #初始化,选择板型,不输入板型则进行自动识别
dht11 = DHT11(Pin(Pin.P21))
while True:
temp = dht11.temp_c() #读取摄氏温度
humi = dht11.humidity() #读取湿度
print("dht11 temperature=",temp," humidity=",humi)
time.sleep(1)
疑难解答
更多问题及有趣的应用,请访问论坛