使用Arduino獲取溫度和溼度感測器資料
在本教程中,我們將連線 Arduino DHT-22 溫度和溼度感測器,並在序列埠監視器上列印獲取的溫度和溼度值。
電路圖

當 DHT-22 面朝您時,從左側數第一個引腳是 VCC 引腳,連線到 5V;下一個引腳是 DATA 引腳,連線到 Arduino Uno 的 2 號引腳。第三個引腳不連線。第四個引腳 GND 連線到 Arduino 的 GND。一個 10K 電阻需要連線在 DHT22 的 DATA 引腳和 Vcc 引腳之間,如上圖所示。
所需庫
Adafruit 的 DHT 感測器庫將需要用於連線 Arduino Uno 和 OLED 顯示屏 -
轉到工具 → 管理庫,搜尋此庫,然後單擊安裝。

程式碼演練
我們將演練 DHT 感測器庫附帶的一個示例程式碼。轉到檔案 → 示例 → DHT 感測器庫 → DHTtester

或者,可以在 GitHub 上訪問此程式碼:https://github.com/adafruit/DHTsensor-library/blob/master/examples/DHTtester/DHTtester.ino
如您所見,我們首先包含 DHT 庫。
#include "DHT.h"
接下來,我們定義連線到 DHT 感測器的數字引腳(在本例中為 Arduino 的 2 號引腳)。我們還定義了我們正在使用的 DHT 感測器型別(DHT22)
#define DHTPIN 2 #define DHTTYPE DHT22
接下來,我們使用之前定義的 DHTPIN 和 DHTTYPE 定義 DHT 物件
DHT dht(DHTPIN, DHTTYPE);
在 setup 中,我們初始化 Serial 和 dht,使用 dht.begin()。
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}在迴圈中,我們首先新增 2 秒的延遲。這使得兩次讀取之間有一定的時間間隔。接下來,我們使用 .readHumidity() 和 .readTemperature() 函式讀取溼度和溫度。.readTemperature() 函式接收一個布林引數,當設定為 true 時,返回華氏溫度(預設情況下返回攝氏溫度)。
如果 3 次讀取中的任何一次為 NaN,我們將返回(您也可以在這裡編寫 continue)。最後,我們使用讀取的溫度和溼度值計算體感溫度。您可以此處閱讀更多關於體感溫度的資訊。
最後,我們列印所有讀取/計算的值。
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}將此程式碼上傳到您的 Arduino,您將能夠在序列埠監視器上觀察溫度和溼度值。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP