电子说
课程目标
相关知识
**DHT11数字温湿度传感器:**DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。
**DHT11结构:**DHT11是一款温湿度一体的数字传感器,内部包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机连接。外部只需要简单的电路连接,就能实时采集本地温湿度。
**DHT11的引脚排列:**窗孔朝上,从左到右依次为VCC、Dout、NC、GND。
DHT11在电路连接中,通常会在数据引脚外加上拉电阻,常用的DHT11模块如下:
DHT11驱动库:在Arduino IDE中点击「项目」—「加载库」—「管理库」,输入"dht11",选择第二个「DHT sensor library」进行安装。安装的时候会跳出提示,告诉你如果安装这个库文件,还需要另外的配套库文件,选择全部安装即可。
电路搭建
所需材料
ArduinoUNO * 1
DHT11温湿度传感器 *1
OLED显示屏 * 1
杜邦线若干
电路连接
OLED屏的VCC和GND分别连接开发板的5V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。DHT11模块VCC、GND分别连接到开发板的5V、GND,模块的DATA引脚连接开发板数字引脚2。
程序编写
练习一:串口读取温湿度
通过串口打印出读取导电温湿度传感器测得的值。
图形化方式:
代码方式:
/* 项目名称:串口显示温湿度 * 项目时间:2022.03.24 * 项目作者:MRX */#include "DHT.h"#define DHTPIN 2#define DHTTYPE DHT11DHT dht(DHTPIN, DHTTYPE);voidsetup() {Serial.begin(9600); dht.begin(); }voidloop() {floath = dht.readHumidity();//获取湿度floatt = dht.readTemperature();//获取温度Serial.print("Humidity:");Serial.print(h);Serial.print("% Temperature:");Serial.print(t);Serial.println("℃"); delay(2000); }
演示图片:
练习二:温湿度测量仪
将测得的温湿度值显示在OLED屏幕上。
图形化方式:
代码方式:
/* 项目名称:串口显示温湿度 * 项目时间:2022.03.24 * 项目作者:MRX */#include< U8g2lib.h >#include< Wire.h >#include"DHT.h"#defineDHTPIN 2#defineDHTTYPE DHT11//iic驱动方式U8G2_SSD1306_128X64_NONAME_1_SW_I2Cu8g2(U8G2_R0,/* clock=*/SCL,/* data=*/SDA,/* reset=*/U8X8_PIN_NONE);DHTdht(DHTPIN, DHTTYPE);voidsetup(){ u8g2.begin(); dht.begin(); }floath;floatt;voidloop(){ h = dht.readHumidity();//读湿度t = dht.readTemperature();//读温度(摄氏度)u8g2.firstPage();do{ u8g2.setFont(u8g2_font_timR10_tf); u8g2.setCursor(25,10); u8g2.print("T&H Report"); u8g2.setCursor(5,30); u8g2.print(String("Temperature:") +String(t) +String(" C")); u8g2.setCursor(5,50); u8g2.print(String("Humidity:") +String(h) +String("%")); }while( u8g2.nextPage() );delay(1000); }
演示图片:
全部0条评论
快来发表一下你的评论吧 !