課程目標
相關知識
**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 DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();//獲取濕度
float t = 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"
#define DHTPIN 2
#define DHTTYPE DHT11
//iic驅動方式
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
u8g2.begin();
dht.begin();
}
float h;
float t;
void loop() {
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);
}
演示圖片:
-
NTC
+關注
關注
7文章
441瀏覽量
52221 -
測量儀
+關注
關注
1文章
680瀏覽量
33150 -
OLED屏
+關注
關注
0文章
162瀏覽量
20912 -
溫濕度傳感器
+關注
關注
5文章
581瀏覽量
35865 -
DHT11
+關注
關注
19文章
277瀏覽量
57716
發布評論請先 登錄
相關推薦
評論