These sensors contain a chip that does analog to digital conversion and spit out a digital signal with the temperature and humidity.
草稿碼 > 匯入程式庫 > 管理程式庫
搜尋 DHT11,選最新版本,安裝
一併安裝 Adafruit Unified Sensor Driver
完成
安裝之函式庫可由 草稿碼 > 匯入程式庫確認
Various > DHT temperature...: DHT 測溫度
Various > DHT humidity...: DHT 測濕度
#include "DHT.h"
DHT dht5(5,DHT11);
===========================================
void loop()
{
dht11Temp = (dht5.readTemperature( ));
}
這積木程式碼,在 setup() 函式內少了
dht??.begin();
導致運作錯誤,須自行用 Arduino Code 積木補上
DHT 接 GPIO4,dht4.begin(); DHT 接 GPIO5,dht5.begin(); ...
完成之積木程式
dht4.begin();
Arduino IDE Ctrl+A、Ctrl+V 貼上程式碼(.ino),選擇正確控制板,選擇正確連接埠,上傳燒錄。開啟序列埠視窗,baudrate 9600
#include "DHT.h"
...
define DHTPIN 4 // 定義接腳
...
#define DHTTYPE DHT11 // DHT 11
或
#define DHTTYPE DHT22 // DHT 22 (AM2302)
或
#define DHTTYPE DHT21 // DHT 21 (AM2301)
...
DHT dht(DHTPIN, DHTTYPE);
dht.begin();
float h = dht.readHumidity(); // 讀取攝氏溫度
float t = dht.readTemperature(); // 讀取華氏溫度
float f = dht.readTemperature(true); // 讀取濕度
float hic = dht.computeHeatIndex(t, h, false); // 計算 Heat Index (攝氏)
float hif = dht.computeHeatIndex(f, h); // 計算 Heat Index (華氏)
// 讀取感測器資料失敗,輸出訊息
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Fail to read!!");
return;
}
檔案 > 範例 > DHT Sensor library > DHTtester
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
#include "DHT.h"
#define DHTPIN 2 // what pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Initialize DHT sensor for normal 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
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
float t = dht.readTemperature();
// Read temperature as Fahrenheit
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("Failed to read from DHT sensor!");
return;
}
// Compute heat index
// Must send in temp in Fahrenheit!
float hi = dht.computeHeatIndex(f, h);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hi);
Serial.println(" *F");
}
積木 + arduino code
完成之積木程式
完成之積木程式
Arduino IDE Ctrl+A、Ctrl+V 貼上程式碼(.ino),選擇正確控制板,選擇正確連接埠,上傳燒錄。開啟序列埠視窗,baudrate 9600。
自訂欄位名:日期、時間、溫度、濕度、光敏類比、光敏數位
Plot 繪圖工作表