37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實踐(動手試試)出真知的理念,以學習和交流為目的,這里準備逐一做做實驗,不管能否成功,都會記錄下來---小小的進步或是搞不掂的問題,希望能夠拋磚引玉。?
【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
實驗五十五:DHT11 溫濕度復合傳感器模塊(數字型單總線通信)
溫度
度量物體冷熱的物理量,是國際單位制中7個基本物理量之一。溫度是物體內分子間平動動能的一種表現形式。分子運動愈快,即溫度愈高,物體愈熱;分子運動愈慢,即溫度愈低,物體愈冷。從分子運動論觀點看,溫度是物體分子運動平均動能的標志,溫度是分子熱運動的集體表現,含有統計意義。在生產和科學研究中,許多物理現象和化學過程都是在一定的溫度下進行的,人們的生活也和它密切相關。
濕度
濕度很久以前就與生活存在著密切的關系,但用數量來進行表示較為困難。對濕度的表示方法有絕對濕度、相對濕度、露點、濕氣與干氣的比值(重量或體積)等等。日常生活中最常用的表示濕度的物理量使空氣的相對濕度。用%RH表示。在物理量的導出上相對濕度與溫度有著密切的關系。一定體積的密閉氣體,其溫度越高相對濕度越低,溫度越低,其相對濕度越高。其中涉及到復雜的熱力工程學知識。
溫濕度與人們生活的關系
如:冬天溫度為18至25℃,濕度為30%至80%;夏天溫度為23至28℃,濕度為30%至60%。在此范圍內感到舒適的人占95%以上。在裝有空調的室內,室溫為19至24℃,濕度為40%至50%時,人會感到最舒適。如果考慮到溫、濕度對人思維活動的影響,最適宜的室溫度應是工作效率高。18℃,濕度應是40%至60%,此時,人的精神狀態好,思維最敏捷。
DHT11
是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。
模塊參數
供電電壓: 3.3~5.5V DC
輸 出: 單總線數字信號
測量范圍: 濕度 20-90%RH, 溫度 0~50℃
測量精度: 濕度+-5%RH, 溫度+-2℃
分 辨 率: 濕度 1%RH, 溫度 1℃
長期穩定性: <±1%RH/年
注意事項
1、避免在結露情況下使用
2、長期保存溫度 10-40℃,濕度 60%以下
3、使用時電源和地接法要正確,以免損壞傳感器
模塊電原理圖
模塊描述
1、可以檢測周圍環境的濕度和溫度
2、傳感器采用DHT11
3、濕度測量范圍:20%-95%(0度-50度范圍)濕度測量誤差:+-5%
4、溫度測量范圍:0度-50度 溫度測量誤差:+-2度
5、工作電壓3.3V-5V
6、輸出形式 數字輸出? ?? ?? ?
7、設有固定螺栓孔,方便安裝
8、小板PCB尺寸:3.2cm*1.4cm
9、電源指示燈(紅色)
10、每套重量約為8g
模塊接口說明(3線制)
1 VCC 外接3.3V-5V
2 GND 外接GND
3 DO??小板開關數字量輸出接口 接單片機IO口
模塊使用事項
傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品連接方便,可直接插接到Arduino傳感器擴展板上。
/*
【Arduino】168種傳感器模塊系列實驗(55)
實驗五十五:DHT11 溫濕度復合傳感器模塊(數字型單總線通信)
*/
#include "DHT.h"??
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
??Serial.begin(9600);
??dht.begin();
}
void loop() {
??delay(2000);
??float h = dht.readHumidity();
??float t = dht.readTemperature();
??Serial.print("Humidity: ");
??Serial.println(h);
??Serial.print("Temperature: ");
??Serial.print(t);
??Serial.println(" ℃ ");
}
/*
【Arduino】168種傳感器模塊系列實驗(55)
實驗五十五:DHT11 溫濕度復合傳感器模塊(數字型單總線通信)
實驗程序之二
*/
#include "DHT.h"
#define DHTPIN 2? ???
#define DHTTYPE DHT11? ?
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
??dht.begin();
}
void loop() {
delay(2000);
floath = dht.readHumidity();
floatt = dht.readTemperature();
floatf = dht.readTemperature(true);
if(isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
??}
floathi = dht.computeHeatIndex(f, h);
Serial.print("Humidity: ");
??Serial.print(h);
Serial.print(" %");
Serial.print("\t");
Serial.print("Temperature: ");
??Serial.print(t);
Serial.println(" *C ");
}