當(dāng)前位置: 首頁(yè) > 傳感測(cè)量產(chǎn)品 > 工業(yè)傳感器 > 溫濕度傳感器
發(fā)布日期:2022-10-09 點(diǎn)擊率:353
溫濕度傳感器:Arduino Uno 實(shí)驗(yàn)13——DHT11溫濕度傳感器 第1張" title="arduino 溫濕度傳感器:Arduino Uno 實(shí)驗(yàn)13——DHT11溫濕度傳感器 第1張-傳感器知識(shí)網(wǎng)"/>
DHT11溫濕度傳感器模塊簡(jiǎn)介
DHT11概述
數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。
傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性?xún)r(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。
單線(xiàn)制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類(lèi)應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶(hù)需求而提供。
注意:
(1)避免結(jié)露情況下使用。
(2)長(zhǎng)期保存條件:溫度10—40℃,濕度60%以下。
技術(shù)參數(shù)
供電電壓: 3.3~5.5V DC 輸 出: 單總線(xiàn)數(shù)字信號(hào)?互 換 性: 可完全互換
測(cè)量范圍: 濕度20-90%RH, 溫度0~50℃ ?測(cè)量精度: 濕度±5%RH, 溫度±2℃
分 辨 率: 濕度1%RH, 溫度1℃ ?長(zhǎng)期穩(wěn)定性: 《±1%RH/年
測(cè)量時(shí)的供電電流為1.0mA, ?待機(jī)時(shí)的供電電流為0.06mA
應(yīng)用電路
引腳說(shuō)明
溫濕度采集范圍
濕度采集范圍5%~ 95%,在環(huán)境溫度為25℃時(shí),濕度采集精度是±5%。溫度采集范圍是-20℃~60℃,在環(huán)境溫度為25℃時(shí),溫度采集精度是±2℃。
應(yīng)用信息
7.1工作與貯存條件
超出建議的工作范圍可能導(dǎo)致高達(dá)3%RH的臨時(shí)性漂移信號(hào)。返回正常工作條后,傳感器會(huì)緩慢地向校準(zhǔn)狀態(tài)恢復(fù)。要加速恢復(fù)進(jìn)程/可參閱7.3小節(jié)的“恢復(fù)處理”。在非正常工作條件下長(zhǎng)時(shí)間使用會(huì)加速產(chǎn)品的老化過(guò)程。
7.2暴露在化學(xué)物質(zhì)中
電阻式濕度傳感器的感應(yīng)層會(huì)受到化學(xué)蒸汽的干擾,化學(xué)物質(zhì)在感應(yīng)層中的擴(kuò)散可能導(dǎo)致測(cè)量值漂移和靈敏度下降。在一個(gè)純凈的環(huán)境中,污染物質(zhì)會(huì)緩慢地釋放出去。下文所述的恢復(fù)處理將加速實(shí)現(xiàn)這一過(guò)程。高濃度的化學(xué)污染會(huì)導(dǎo)致傳感器感應(yīng)層的徹底損壞。
7.3恢復(fù)處理
置于極限工作條件下或化學(xué)蒸汽中的傳感器,通過(guò)如下處理程序,可使其恢復(fù)到校準(zhǔn)時(shí)的狀態(tài)。在50-60℃和
DHT11溫濕度傳感器模塊的使用
串行接口(單線(xiàn)雙向)
DATA用于微處理器與 DHT11之間的通訊和同步,采用單總線(xiàn)數(shù)據(jù)格式,一次通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說(shuō)明,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為零.操作流程如下:
一次完整的數(shù)據(jù)傳輸為40bit,高位先出。
數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)
+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和
數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。
用戶(hù)MCU發(fā)送一次開(kāi)始信號(hào)后, DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開(kāi)始信號(hào)結(jié)束后, DHT11發(fā)送響應(yīng)信號(hào),送出40bit的數(shù)據(jù),并觸發(fā)一次信號(hào)采集,用戶(hù)可選擇讀取部分?jǐn)?shù)據(jù).從模式下, DHT11接收到開(kāi)始信號(hào)觸發(fā)一次溫濕度采集如果沒(méi)有接收到主機(jī)發(fā)送開(kāi)始信號(hào), DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。
通訊過(guò)程時(shí)序圖:
時(shí)序圖解析:
總線(xiàn)空閑狀態(tài)為高電平,主機(jī)把總線(xiàn)拉低等待DHT11響應(yīng),主機(jī)把總線(xiàn)拉低必須大于18毫秒,保證DHT11能檢測(cè)到起始信號(hào)。DHT11接收到主機(jī)的開(kāi)始信號(hào)后,等待主機(jī)開(kāi)始信號(hào)結(jié)束,然后發(fā)送80us低電平響應(yīng)信號(hào).主機(jī)發(fā)送開(kāi)始信號(hào)結(jié)束后,延時(shí)等待20-40us后,讀取DHT11的響應(yīng)信號(hào),主機(jī)發(fā)送開(kāi)始信號(hào)后,可以切換到輸入模式,或者輸出高電平均可,總線(xiàn)由上拉電阻拉高。(跟程序中是對(duì)應(yīng)的,看程序就懂)
總線(xiàn)為低電平,說(shuō)明DHT11發(fā)送響應(yīng)信號(hào), DHT11發(fā)送響應(yīng)信號(hào)后,再把總線(xiàn)拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時(shí)隙開(kāi)始,高電平的長(zhǎng)短定了數(shù)據(jù)位是0還是1.格式見(jiàn)下面圖示.如果讀取響應(yīng)信號(hào)為高電平,則DHT11沒(méi)有響應(yīng),請(qǐng)檢查線(xiàn)路是否連接正常.當(dāng)最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線(xiàn)50us,隨后總線(xiàn)由上拉電阻拉高進(jìn)入空閑狀態(tài)。
數(shù)字0信號(hào)表示方法如下圖所示:
數(shù)字1信號(hào)表示方法如下圖所示:
實(shí)驗(yàn)一:溫濕度讀取
項(xiàng)目要求:
根據(jù)時(shí)序圖直接測(cè)得溫濕度。
電路搭建
參考程序
實(shí)驗(yàn)結(jié)果
原理圖
Arduino語(yǔ)言注解Arduino語(yǔ)言是建立在C/C++基礎(chǔ)上的,其實(shí)也就是基礎(chǔ)的C語(yǔ)言,Arduino語(yǔ)言只不過(guò)把AVR單片機(jī)(微控制器)相關(guān)的一些參數(shù)設(shè)置都函數(shù)化,不用我們?nèi)チ私馑牡讓樱屛覀儾涣私釧VR單片機(jī)(微控制器)的朋友也能輕松上手。
相比Arduino,也許我們更熟悉“集成電路”這一概念。集成電路是為了實(shí)現(xiàn)某種特定功能的計(jì)算而設(shè)計(jì)的微小芯片。對(duì)于普通人來(lái)說(shuō),傳統(tǒng)的集成電路應(yīng)用比較繁瑣,一般需要具有一定電子知識(shí)基礎(chǔ),并懂得如何進(jìn)行相關(guān)的程序設(shè)計(jì)的工程師才能熟練使用。但是Arduino的出現(xiàn)讓曾經(jīng)只有專(zhuān)業(yè)人士才能使用的集成電路變?yōu)槠揭捉说碾娮釉O(shè)計(jì)工具,即使沒(méi)有程序設(shè)計(jì)基礎(chǔ),也可以通過(guò)簡(jiǎn)單的學(xué)習(xí),掌握使用Arduino的方法。為了實(shí)現(xiàn)這一目標(biāo),Arduino從兩方面進(jìn)行了努力與改進(jìn)。首先,在硬件方面,Arduino本身是一款非常容易使用的印刷電路板。電路板上裝有專(zhuān)用集成電路,并將集成電路的功能引腳引出方便我們外接使用。同時(shí),電路板還設(shè)計(jì)有USB接口方便與電腦連接。其次,在軟件方面,Arduino提供了專(zhuān)門(mén)的程序開(kāi)發(fā)環(huán)境Arduino IDE。其界面設(shè)計(jì)簡(jiǎn)潔,對(duì)于沒(méi)有接觸過(guò)程序設(shè)計(jì)的“小白”也可以輕松上手。
Arduino--UNO主板
Arduino--IDE
實(shí)驗(yàn)一 Hello world
目標(biāo)效果:打印“Hello world” 字體
硬件準(zhǔn)備:Arduino UNO 主板
軟件準(zhǔn)備:Arduino--IDE
電路連接:Arduino主板——電腦
代碼:
void setup() {
// put your setup code here, to run once:
Serial.begin();
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello world !");
delay(1000);
}
實(shí)驗(yàn)二 動(dòng)態(tài)顯示屏實(shí)驗(yàn)
目標(biāo)效果:顯示屏顯示打印的文字
硬件準(zhǔn)備:
Arduino UNO一塊
IIC1602顯示模塊一個(gè)
Arduino UNO底板一塊
杜邦線(xiàn)若干
軟件準(zhǔn)備:Arduino--IDE
電路連接:
GND——GND
VCC——5V
SDA——A4
SCL——A5
代碼:
#include
void setup() {
pinMode(DHT11PIN,OUTPUT);
lcd.begin (16,2); // for 16 x 2 LCD module 初始橫16列、豎2行
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(HIGH);
}
void loop() {
// 讀取溫濕度傳感器的數(shù)據(jù)
int chk=DHT11.read(DHT11PIN);
// LCD 顯示采集的溫濕度數(shù)據(jù)
lcd.setCursor(0, 0);
lcd.print("Tep: ");
lcd.print((float)DHT11.temperature, 2);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print((float)DHT11.humidity, 2);
lcd.print("%");
delay(200);
}
延伸--圖形編程軟件:Scratch、mBlock
Scratch是一款由麻省理工學(xué)院(MIT) 設(shè)計(jì)開(kāi)發(fā)的一款面向少年的簡(jiǎn)易編程工具,scratch已經(jīng)是少兒編程行業(yè)的基礎(chǔ)軟件。
mBlock 是一款面向 STEAM 教育領(lǐng)域的圖形化編程學(xué)習(xí)軟件,基于 Scratch 3.0 開(kāi)發(fā)。它不僅能讓用戶(hù)創(chuàng)作有趣的故事、游戲、動(dòng)畫(huà)等作品,并且支持 Makeblock 主板和其他 Arduino 硬件的編程。
語(yǔ)法常用參數(shù):
1、pinMode(接口名稱(chēng),OUTPUT或INPUT)將——接口定義為輸入或輸出接口,用在setup()函數(shù)里。
2、digitalWrite(接口名稱(chēng), HIGH或LOW)——將數(shù)字接口值至高或低。
3、digitalRead(接口名稱(chēng))——讀出數(shù)字接口的值。
4、analogWrite(接口名稱(chēng), 數(shù)值)——給一個(gè)接口寫(xiě)入模擬值(PWM波)。對(duì)于 ATmega168芯片的Arduino(包括Mini或BT),該函數(shù)可以工作于 3, 5, 6, 9, 10和 11號(hào)接口。老的 ATmega8芯片的USB和 serial Arduino僅僅支持 9, 10和1 1號(hào)接口。
5、analogRead(接口名稱(chēng))——從指定的模擬接口讀取值,Arduino對(duì)該模擬值進(jìn)行10-bit的數(shù)字轉(zhuǎn)換,這個(gè)方法將輸入的0-5電壓值轉(zhuǎn)換為 0到1023間的整數(shù)值。
6、delay()——延時(shí)一段時(shí)間,delay(1000)為一秒。
7、Serial.begin(波特率)——設(shè)置串行每秒傳輸數(shù)據(jù)的速率(波特率)。在同計(jì)算機(jī)通訊時(shí),使用下面這些值:300, 1200, 2400, 4800, 9600, , , , , 或 。你也可以在任何時(shí)候使用其它的值,比如,與0號(hào)或1號(hào)插口通信就要求特殊的波特率。用在setup()函數(shù)里
8、Serial.read()——讀取持續(xù)輸入的數(shù)據(jù)。
溫濕度傳感器評(píng)測(cè)
DS18B20 數(shù)字溫度防水傳感器
防水,長(zhǎng)距離,廉價(jià)。
TMP100溫度傳感器(Gadegeteer兼容)
中端價(jià)格,優(yōu)秀性能,適合多種場(chǎng)合,IIC數(shù)字輸出
MLX9061紅外線(xiàn)溫度計(jì)評(píng)估板
昂貴,大量程,曲線(xiàn)光滑,非接觸測(cè)溫
高精度DHT22溫濕度傳感器
中端價(jià)格,溫濕度傳感器,長(zhǎng)距離,性?xún)r(jià)比高,應(yīng)用范圍廣
水分傳感器(Water Sensor)
簡(jiǎn)單易用的水分檢測(cè)工具
土壤濕度傳感器(Arduino兼容)
簡(jiǎn)單的土壤水分傳感器,可插入土壤
紅外非接觸測(cè)溫傳感器
性?xún)r(jià)比高,高靈敏,長(zhǎng)距離,方便嵌入硬件,非接觸
SHT1x溫濕度傳感器(Arduino兼容)
高端溫濕度傳感器,快速響應(yīng),極高可靠性和長(zhǎng)期穩(wěn)定性,自動(dòng)休眠,低功耗
DHT11溫濕度傳感器(Arduino兼容)
價(jià)格低廉,適用低要求場(chǎng)景
模擬LM35線(xiàn)性溫度傳感器(Arduino兼容)
價(jià)格低廉,適用低要求場(chǎng)景,模擬溫度傳感器
DS18B20數(shù)字溫度傳感器
價(jià)格低廉,性能優(yōu)秀,數(shù)字溫度傳感器
注:其中*項(xiàng)由于應(yīng)用范圍明確,就偷懶不比較了。(第一個(gè)和最后一個(gè)的用的傳感器不是一樣的嘛!之后會(huì)告訴大家這個(gè)傳感器有多么適合屌絲)
第一部分:基本參數(shù)
這部分列出使用時(shí)需要的接口,傳感器尺寸,工作電壓和是否需要焊接,以及預(yù)算。
目的:如果已設(shè)計(jì)好其他元器件,可從剩余物理空間和接口以及剩余的預(yù)算中做出最初篩選。
至于那些完全不知道要做什么的人……恭喜你,和我現(xiàn)在站在了同一起跑線(xiàn)上了。
注:焊接指的是在接口處焊接排針。不推薦用熱熔膠和雙面膠……
第二部分:量程精度
假如你要和我一樣把你的傳感器放在火上烤的話(huà)……一定鮮嫩多汁。所以請(qǐng)工作在官方提示的工作范圍內(nèi)。
首先要確定測(cè)量范圍,接著測(cè)量精度,精度是指在某一指定溫度下的值,分段的精度不同,具體參照Datasheet,
若使用場(chǎng)合難以恒溫,提出過(guò)高測(cè)量精度也不合適的,因?yàn)闀?huì)隨著溫度變化產(chǎn)生濕度或溫度漂移。
第三部分:響應(yīng)時(shí)間比較
這部分比較的是MCU發(fā)出請(qǐng)求后收到不同傳感器的溫度的時(shí)間,網(wǎng)絡(luò)中就是RTT。這個(gè)數(shù)值和寫(xiě)的程序(比如delay)以及通訊方式有很大關(guān)系。
最快的是輸出電壓與溫度成正比的LM35,總線(xiàn)通訊的與通訊協(xié)議有關(guān),1-Wire相較IIC耗時(shí)久一些,同時(shí)由于單總線(xiàn)由多個(gè)功能部件共用,只能時(shí)分復(fù)用,可能導(dǎo)致很大的時(shí)間延遲,因此不推薦多個(gè)設(shè)備掛在同一條單總線(xiàn)上。
第四部分:性能(對(duì)溫度的追蹤能力)
基本上是采用一個(gè)很不科學(xué)的方法,拿到室外等穩(wěn)定后再取回室內(nèi)。以此觀察在溫度驟變的情況下多久達(dá)到穩(wěn)定。
如果有條件的話(huà),可以嘗試下開(kāi)個(gè)空調(diào)到25°然后拿個(gè)冰水混合物,把傳感器溫柔的帶著套的浸入冰水中再取出到室溫。
首先是怎么看都高大上的兩款紅外測(cè)溫傳感器,由于測(cè)試時(shí)間不在同一時(shí)間,大家感受下走向和溫度變化的速度就好了。紅外測(cè)溫分辨率很高,又由于與被測(cè)對(duì)象互不接觸,可用于測(cè)量運(yùn)動(dòng)物體、小目標(biāo)和熱容量小或溫度變化迅速(瞬變)對(duì)象的表面溫度,也可用于測(cè)量溫度場(chǎng)的溫度分布。
總體看,兩款紅外溫度傳感器對(duì)溫度都很敏感,都可以在短時(shí)間升高到環(huán)境溫度。相比較MLX的溫度曲線(xiàn)更平穩(wěn),抖動(dòng)更少。
MLX紅外線(xiàn)溫度傳感器
推薦度:★★☆☆☆
優(yōu)點(diǎn):
溫度曲線(xiàn)平緩,測(cè)量溫度和工作溫度范圍大。
有節(jié)能模式,可非接觸測(cè)溫。
IIC連接,溫度返回快,一條總線(xiàn)可掛多個(gè)溫度傳感器。
缺點(diǎn):
價(jià)格太高。
庫(kù)很難找,因?yàn)槭茿rduino代理的產(chǎn)品,雖然內(nèi)置Arduino引導(dǎo)程序可以使用Arduino環(huán)境,但是IIC協(xié)議不支持用Arduino內(nèi)置的Wire庫(kù)所以很蛋疼!
很難用,要自己焊接。
關(guān)于這個(gè)產(chǎn)品的相關(guān)網(wǎng)頁(yè)
這個(gè)產(chǎn)品的原生網(wǎng)頁(yè)
關(guān)于如何在arduino環(huán)境下用MLX的教程 含庫(kù)文件
應(yīng)用范圍:
醫(yī)療器具比如體溫測(cè)量,運(yùn)動(dòng)測(cè)量,打印機(jī)掃描儀等辦公設(shè)備的溫度控制。
數(shù)據(jù)傳輸20米以上。而且測(cè)量溫度比較極限的地方。(注意工作溫度和測(cè)量溫度有差別)
紅外非接觸測(cè)溫傳感器
推薦度:★★★★☆
優(yōu)點(diǎn):
價(jià)格合適。
而且瘦長(zhǎng)的外觀相比剛剛的平板身材更適合做溫度測(cè)試筆。
溫度曲線(xiàn)也不錯(cuò),靈敏度很高,內(nèi)含溫度補(bǔ)償。
可以選擇分辨率,最高可達(dá)1/16°C,精度比較高。
還不要庫(kù)。
數(shù)字量,衰減小。
缺點(diǎn):
需要自己焊接下排針。
測(cè)量范圍不是特別高。
需要3個(gè)數(shù)字口。
應(yīng)用范圍:同上。
接下來(lái)有三款傳感器都是可以同時(shí)返回溫度濕度的,放一起比較了。
可以看出來(lái)溫度有所變化后
SHT1x比較敏感,較早的達(dá)到穩(wěn)定。
DHT11——實(shí)在不忍直視這濕度誤差。
SHT1x傳感器由1個(gè)電容式聚合體測(cè)濕元件和1個(gè)能隙式測(cè)溫元件組成,同樣,DHT22也是電容感濕原件,測(cè)溫元件采用NTC測(cè)溫元件,而DHT11是電阻式感濕元件盒NTC測(cè)溫元件組成的。(NTC為熱敏電阻)
DHT11溫濕度傳感器
推薦度:★★☆☆☆
優(yōu)點(diǎn):
不需要焊接,價(jià)格在三者中是最便宜的。
達(dá)到穩(wěn)定值也比較快。(畢竟電阻元件)。
數(shù)據(jù)可傳輸20米以上,抗干擾強(qiáng)。
缺點(diǎn):
需要下載庫(kù)!雖然這個(gè)庫(kù)DHT22也可以共用。曲線(xiàn)和誤差也不能忍吧。
不能選擇精度。溫度誤差+/-2°C,濕度誤差+/-5%RH。測(cè)量范圍也比較小。溫度0-50°C。
應(yīng)用范圍:農(nóng)業(yè)園藝類(lèi),有地理位置的分布,但對(duì)濕度溫度感應(yīng)精度要求不需要太高的場(chǎng)景(但假如冬天溫度到零下了,還是算了)。
DHT22溫濕度傳感器
推薦度:★★★★☆
優(yōu)點(diǎn):
不需要焊接,和DHT22相差不了多少錢(qián)。
曲線(xiàn)平滑。濕度和濕度誤差為三個(gè)傳感器中最小的。濕度誤差很小。
工作溫度濕度范圍最大。
信號(hào)傳輸距離也可達(dá)到20米以上。
抗干擾能力強(qiáng)。
缺點(diǎn):
不夠敏感,對(duì)溫度追蹤反應(yīng)慢。
需要下載庫(kù)。
應(yīng)用范圍:對(duì)環(huán)境溫度與濕度測(cè)量精度要求較高的情況。比如環(huán)境監(jiān)測(cè)。
SHT1x溫濕度傳感器(Arduino兼容)
推薦度:★★★★☆
優(yōu)點(diǎn):
不需要焊接,曲線(xiàn)平滑。
溫度誤差很小。
反應(yīng)迅速。較快達(dá)到穩(wěn)定。
超低功耗,自動(dòng)休眠,出色的長(zhǎng)期穩(wěn)定性。
缺點(diǎn):
需要兩個(gè)數(shù)字口。
濕度誤差比較大。
測(cè)量范圍和DHT11一樣。
也需要下載庫(kù)。
應(yīng)用范圍:對(duì)跟蹤溫度濕度的反應(yīng)要求較高的場(chǎng)景,精度也能保證。適合長(zhǎng)期工作。
接下來(lái)是比較三款比較低端(但是有內(nèi)涵)的溫度傳感器
由于DS18B20分辨率默認(rèn)為12,所以看上去那么光滑。而TMP100由于默認(rèn)為9,所以劣勢(shì)就看上去比較明顯。所以,調(diào)整分辨率結(jié)果會(huì)有不同
從這張圖可以看出來(lái)。
模擬LM0035線(xiàn)性溫度傳感器
推薦度:★★★☆☆
優(yōu)點(diǎn):
使用簡(jiǎn)單,一條模擬線(xiàn)就搞定。
不需要外加庫(kù)。
由于采用半導(dǎo)體測(cè)溫芯片,輸出電壓與溫度成正比所以速度感應(yīng)和處理很快。
溫度測(cè)量范圍比較大。
價(jià)格非常低廉。
缺點(diǎn):
沒(méi)分辨率可調(diào),精確度不高,誤差看上去大了點(diǎn),毛刺多了點(diǎn)。
應(yīng)用范圍:精度要求不高的一般場(chǎng)景都可以用。17元你買(mǎi)不了上當(dāng)買(mǎi)不了吃虧。
另外比較了下我認(rèn)為比較高性能的溫度傳感器。分別有看上去特別好的DS18B20,被迫害的TMP100,和在溫濕度測(cè)試中表現(xiàn)出色的SHT1x和DHT22。
TMP100溫度傳感器(Gadegeteer兼容)
推薦度:★★★★☆
優(yōu)點(diǎn):
可選分辨率,9~12bit。
IIC協(xié)議(可用系統(tǒng)自帶庫(kù)),可在總線(xiàn)上同時(shí)連接多個(gè)(最多8個(gè))傳感器(不過(guò)要用跳線(xiàn)設(shè)置地址),支持IDC10接口。
第一張圖分辨率是默認(rèn)的9,第二張我設(shè)置為10,可以看出平滑了很多。
相比其他傳感器較快達(dá)到穩(wěn)定值,是神器。
缺點(diǎn):
需要焊接。
需要手動(dòng)設(shè)置跳線(xiàn)。
要注意改程序里的地址代碼,這個(gè)要特別注意的。
官方給出的誤差很大。
需要下載庫(kù)。
應(yīng)用范圍:供電溫度檢測(cè),計(jì)算機(jī)相關(guān)熱防護(hù),熱力控制系統(tǒng)等。
DS18B20數(shù)字溫度傳感器
推薦度:★★★★★
優(yōu)點(diǎn):
價(jià)格低廉。
分辨率可選擇,同樣也是9-12bit,默認(rèn)就為12bit。
不需要焊接,連接容易。
測(cè)量范圍很大。
缺點(diǎn):
需要庫(kù)。
案例代碼中沒(méi)有修改分辨率的語(yǔ)句。
單總線(xiàn)連接,影響效率。
達(dá)到最后穩(wěn)定需要時(shí)間比較久。
應(yīng)用范圍:應(yīng)用范圍比較廣,如家用電器,汽車(chē)電子,測(cè)量?jī)x器,醫(yī)療器具,工業(yè)生產(chǎn)。
本文整理于DFRobot wiki By 毫無(wú)愧疚感的小白
double Fahrenheit(double celsius)
{
return 1.8 * celsius + 32;
}
double Kelvin(double celsius)
{
return celsius + 273.15;
}
double dewPoint(double celsius, double humidity)
{
double A0=373.15/(273.15 + celsius);
double SUM=-7. * (A0-1);
SUM +=5. * log10(A0);
SUM +=-1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
SUM +=8.1328e-3 * (pow(10,(-3.*(A0-1)))-1) ;
SUM +=log10(1013.246);
double VP=pow(10, SUM-3) * humidity;
double T=log(VP/0.); // temp var
return (241.88 * T) / (17.558-T);
}
double dewPointFast(double celsius, double humidity)
{
double a=17.271;
double b=237.7;
double temp=(a * celsius) / (b + celsius) + log(humidity/ 100);
double Td=(b * temp) / (a - temp);
return Td;
}
#include
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線(xiàn)路圖控制原