本實驗中,演示Arduino Uno如何使用溫溼度傳感器DHT11(DHT22也是一樣的代碼,只是加載的傳感器類型不一樣)。
實驗效果使用電風吹增加溫溼度傳感器DHT11周圍的溫度,使其感受的溫度提升。
片刻之後,停止熱風加溫,使其感受的溫度下降。
觀察串口監視器所輸出的溫度值,會發生對應的溫度變化。
元件說明DHT11特點相對溼度和溫度測量
全部校準,數字輸出
卓越的長期穩定性
無需額外部件
超長的信號傳輸距離
超低能耗
4引腳安裝
完全互換
DHT11數字溫溼度傳感器是一款含有已校準數位訊號輸出的溫溼度複合傳感器。它應用專用的數字模塊採集技術和溫溼度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感溼元件和一個NTC測溫元件,並與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗幹擾能力強、性價比極高等優點。每個DHT11傳感器都在極為精確的溼度校驗室中進行校準。校準係數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準係數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選擇。產品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。
引腳說明VCC 為供電(需要供電5V)
DATA 為信號輸出
GND 為接地
在代碼編寫之前,需要在添加DHT11的庫,
從菜單欄中,依次打開:「項目」->「加載庫」->「管理庫」
在彈出的對話框的搜素欄裡,輸入:「dht」 查找相關的庫
我使用的是名為「Grove Temperature And_Humidity Sensor」的庫
點擊安裝後,等待安裝完成即可關閉對話框,進行代碼的編寫
在視頻中有詳細的添加步驟,如有不懂可再參考視頻。
#include "DHT.h" // 加載DHT庫
#define DHTPIN 2 // 定義DHT的輸入引腳
#define DHTTYPE DHT11 // 定義DHT的型號類型
DHT dht(DHTPIN, DHTTYPE); // 創建一個為dht的DHT實例
void setup() {
Serial.begin(115200); // 設置波特率
Serial.println("DHT11 test!"); // 串口輸出信息
dht.begin(); // 啟動dht
}
void loop() {
float temp_hum_val[2] = {0}; // 定義一個浮點類型的數組
if(!dht.readTempAndHumidity(temp_hum_val)){ // 判斷是否可以讀到溫溼度傳感器的數據,可以則輸出相關數據
Serial.print("Humidity: ");
Serial.print(temp_hum_val[0]);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temp_hum_val[1]);
Serial.println(" *C");
} else { // 否則,提醒數據獲取失敗
Serial.println("Failed to get temprature and humidity value.");
}
delay(10);
}
除了以上我簡化了的程序外,還可以查看完整的庫示例代碼,
如下圖,依次打開,就可以看到。
如果這文章能給你帶來幫助我會感到非常開心。
若是能點讚,關注,分享三連那就更高興了。
有錢出錢,有力點讚。