溫濕度傳感器的應用和使用案例教程-全球今日訊

2023-04-12 14:15:28 來源:柴火創客空間

什么是溫濕度傳感器?應用領域有哪些?


【資料圖】

溫濕度傳感器是一種用于測量環境中溫度和相對濕度的傳感器。它可以通過電子機械方式測量溫度和濕度,并將其轉換成數字信號以便于處理和記錄。

溫濕度傳感器可以廣泛應用于很多領域,例如:

1、室內環境監測:溫濕度傳感器可以用于監測室內溫度和濕度,以確保室內環境的舒適度和健康性。

2、農業:溫濕度傳感器可以用于農業生產,監測溫度和濕度以優化作物生長條件,預測天氣變化等。

3、工業控制:溫濕度傳感器可以用于工業控制,例如在制造工藝中監測溫度和濕度,以控制產品質量和生產效率。

4、醫療保健:溫濕度傳感器可以用于監測醫療保健設施中的環境條件,以確保患者和醫務人員的健康和安全。

5、物流和運輸:溫濕度傳感器可以用于監測貨物的溫濕度,以確保貨物質量和安全運輸。

總之,溫濕度傳感器在許多領域都具有重要的應用價值,可以幫助我們更好地了解環境條件,并做出相應的調整和控制。

應用領域

溫濕度傳感器物聯網應用

溫濕度傳感器是一種用于測量環境溫度和濕度的設備,它可以通過物聯網技術與其他設備或系統進行連接,實現自動化控制和數據采集。以下是幾個溫濕度傳感器在物聯網應用中的案例:

1、農業領域:溫濕度傳感器可以用于農業領域中的溫室控制系統,監測溫室內的溫度和濕度,以確保作物生長的最佳環境條件。傳感器可以與灌溉系統和通風設備等其他設備連接,自動調整環境條件。

2、建筑物管理:溫濕度傳感器可以用于建筑物的溫度和濕度監測,以優化空調和加濕設備的控制,提高能源效率。傳感器可以將數據發送到云端,通過分析數據來確定優化措施,并向設備發送指令進行控制。

3、食品儲存和運輸:溫濕度傳感器可以用于監測食品的溫度和濕度,以確保食品在儲存和運輸過程中的安全性和質量。傳感器可以與智能冷鏈設備和物流管理系統連接,提供實時監控和報警功能。

4、醫療保健:溫濕度傳感器可以用于醫院和實驗室中的溫度和濕度監測,以確保藥品和生物樣本的質量和安全。傳感器可以將數據發送到云端,并與智能制藥和倉庫管理系統等其他設備連接。

5、家庭自動化:溫濕度傳感器可以用于家庭自動化系統,監測室內溫度和濕度,以自動控制空調和加濕設備。傳感器可以與智能家居中心和智能手機等其他設備連接,提供遠程控制和監測功能。

總之,溫濕度傳感器在物聯網應用中可以用于許多不同的領域,包括農業、建筑物管理、食品儲存和運輸、醫療保健和家庭自動化等。

應用案例

下面以Seeeduino Grove-DHT11溫濕度傳感器為例,介紹其Arduino平臺的使用教程

Grove - DHT11溫濕度傳感器

DHT11 溫濕度傳感器常用于室內環境監測,它可監測的相對溫度范圍為“0 至 50 °C”,相對濕度范圍“20% 到 90% RH”,通信方式為使用預先校準的數字輸出方式,使用電容元件測量濕度,使用熱敏電阻測量溫度,具有出色的可靠性和穩定性(注意:此傳感器不能用于室外低于0 度的溫度環境),采用Grove接口方便安裝,支持Arduino和樹莓派等平臺。

Arduino平臺下的應用方法

第1步:硬件部分,使用Grove Beginner Kit 可以快速進行硬件學習,我們選擇中間的主控板和右邊的DHT11溫濕度傳感器,將DHT11連接到D3數字接口上,如下圖所示。

第2步:打開庫管理器,在搜索框中輸入【Grove Temperature and Humidity Sensor(DHT11)】,選擇版本,單擊“安裝”安裝庫文件,安裝完成后,點擊右上角的X關閉此窗口,注意:安裝庫文件需要有網絡連接才行,因為要下載庫文件,如下圖所示:

第3步,編寫代碼并將溫度和濕度串口輸出,如下圖所示:

具體介紹一下代碼:

#include // 安裝完庫文件后,可以直接添加庫文件注意沒有分號符。#define DHTPIN  3  // 自定義一個常量,名字是DHTPIN   值是:3  就是設置3號數字針腳為DHT11針腳號#define DHTTYPE DHT11  // 自定義一個常量,名字叫DHTTYPE  定義傳感器的類型,值是:DHT11  或者DHT22DHT dht ( DHTPIN ,DHTTYPE ) ;  // 聲明 dht函數(針腳號, 類型 )void setup() {  Serial.begin ( 9600 );   //設置串口波特率  dht.begin();          // 初始化dht函數}void loop() {  float  tempC , humi ;   //定義浮點型變量  tempC表示溫度   humi表示濕度  tempC = dht.readTemperature();  // 讀取傳感器溫度值,并賦值給變量tempC  humi = dht.readHumidity();  //讀取傳感器濕度值,并賦值給變量humi      // 下面代碼是串口輸出溫度和濕度值及相應的文本內容  Serial.print ( "溫度:");  Serial.print ( tempC );  Serial.print (" ^C ");  Serial.print ("" );  Serial.print ( "濕度:"  );  Serial.print ( humi );  Serial.println (" %RH" );  delay ( 200 );
}

第4步:在Arduino IDE軟件中,先保存文件然后單擊“驗證”,先驗證下程序是否有錯誤,如果沒有錯誤單擊“上傳”按鈕,上傳到Arduino控制板上。

第5步:上傳成功后,單擊右上角的“串口監視器”圖標,打開串口監視器窗口,波特率設置為9600,這時串口監視器窗口會顯示出當前的溫度和濕度值并每隔200毫秒更新一次,如下圖所示。

案例2 在OLED顯示屏上顯示溫濕度

下面在介紹一個案例,在Grove Beginner Kit 上利用oled顯示屏顯示溫濕度值。

默認DHT11溫濕度傳感器連到D3接口上,OLED顯示屏連接到IIC接口上,如下圖所示。

第1步:添加OLED庫文件,打開Arduino IDE 軟件,點擊:項目->加載庫->管理庫選項,如下圖所示。

第2步:打開庫管理器,在搜索框中輸入“U8g2”,可以看到U8g2庫介紹文本,選擇版本號,點擊“安裝”按鈕,這樣就安裝好庫文件了,如下圖所示。

第3步:編寫程序,將DHT11溫濕度值顯示到Oled顯示器上,代碼如下所示:

#include "DHT.h"#include #define DHTPIN 3#define DHTTYPE DHT11  DHT dht( DHTPIN ,DHTTYPE );  U8X8_SSD1306_128X64_NONAME_HW_I2Cu8x8(U8X8_PIN_NONE);void setup() {  dht.begin();  u8x8.begin();  u8x8.setPowerSave (0);  u8x8.setFlipMode ( 1);} void loop() {  float  temp , humi;  temp = dht.readTemperature();  humi = dht.readHumidity();    u8x8.setFont(u8x8_font_chroma48medium8_r);  u8x8.setCursor(0, 33);  u8x8.print("Temp:");  u8x8.print(temp);  u8x8.print("^C");  u8x8.setCursor(0,50);  u8x8.print("Humidity:");  u8x8.print(humi);  u8x8.print("%");  u8x8.refreshDisplay();  delay(200);}

下面說明一下代碼

#include "DHT.h"  // 添加庫文件,結尾不需要分號結束U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);//聲明對象后,即可使用庫中的函數u8x8.begin();  // 初始化u8g2庫u8x8.setPowerSave (0);  // 將顯示屏旋轉180度,值:0 和 1u8x8.setFlipMode ( 1);  // 設置顯示字體u8x8.setFont(u8x8_font_chroma48medium8_r);u8x8.setCursor(0, 33);u8x8.print("Temp:");u8x8.print(temp);u8x8.print("^C");u8x8.setCursor(0,50);u8x8.print("Humidity:");u8x8.print(humi);u8x8.print("%");u8x8.refreshDisplay();delay(200);//此區域是在OLED顯示屏上,輸出溫度值和濕度值,最后延時200毫秒,再次監測溫濕度值

相關功能函數

u8x8.setCursor(x, y) ;

x, y: 打印函數光標的列/行位置

u8x8.print(); 打印文本到OLED顯示屏

以上兩個語句,可以使用一條u8x8.drawString ();代替

u8x8.drawString ( 列數 , 行數 , “打印文本” );

坐標值從0開始計算,比如:

u8x8.drawString ( 1 ,0 , "Grove" );

OLED屏一行可以顯示16個字符,可以顯示6行都是從0開始

比如:0列,0行 列:0到15 行:0到5

u8x8.clear(); 此語句的功能的清屏

審核編輯:湯梓紅

標簽:

上一篇:
下一篇: