electronics-components-dht11-temperature-sensor

#電子元件:DHT11溫濕度傳感器 這個傳感器是你學習使用的第一個傳感器之一,因為每個人都有一個很好的應用:建立室內或室外溫度計。 在這裡,你可以看到它安裝在一個分輔板上: ! ! ! 請注意,該傳感器有4個輸出引腳,但我得到的分輔板只有3個(原因是DHT11的引腳3未連接到任何地方 - 別問我為什麼)。 從左邊開始,保持底部的引腳,我們有: Vdd,正輸入(+) Vss,負輸入(-) 輸出信號 輸出是一個持續4ms的40位序列化信號。 這意味著每4ms傳感器發送一次溫度信息,為了讀取它,我們必須獲取值並將其反序列化。 在Arduino程序中,我們使用由Adafruit維護的DHT Sensor Library(這是存儲庫的鏈接),它使我們可以非常簡單地讀取溫度: ! 你可以使用#include <DHT.h>將其包含,然後通過傳遞傳感器信號引腳和類型(在這種情況下使用常量DHT11)初始化DHT類的對象。 該庫還可以與其他傳感器一起使用,如更精確的DHT22和`DHT21。 然後,你可以調用readHumidity()和readTemperature()方法以``float`變量的方式獲取值。 readTemperature()以攝氏度表示該值,但該庫還提供convertCtoF()方法來獲取華氏值。 該庫還提供了其他方法,例如computeHeatIndex()。我建議你查看GitHub上的DHT.h頭文件源代碼(https://github.com/adafruit/DHT-sensor-library/blob/master/DHT.h)。 這個簡單的Arduino程序從DHT11上的信號引腳連接到數字引腳#2,並將其打印到串行監視器上: #include <DHT.h> DHT dht(2, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("無法讀取數值"); return; } Serial.println((String)"濕度:" + h + "%,溫度:" + t + "C"); } ! ! 濕度:56.00%,溫度:20.20C 濕度:56....