<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

將DHT11溫度和濕度傳感器與STM32F103C8連接的方法

科技觀察員 ? 來源:circuitdigest ? 作者:Pramoth Thangavel ? 2022-08-31 15:59 ? 次閱讀

DHT11是一款溫濕度傳感器,顧名思義,用于測量特定環境或密閉空間內的大氣溫濕度。該傳感器通常用于監測農業、食品工業、醫院、汽車、氣象站等許多應用中的環境參數。

該傳感器可以測量從 0°C 到 50°C 的溫度,精度為 1°C。它通常用于受控環境中,例如熱通風系統、恒溫室等,以監測溫度并采取糾正措施。濕度測量范圍為 20% 至 90%,精度為 1%。濕度表示空氣中存在的水蒸氣量。在許多情況下,例如在制造和儲存茶粉時,濕度值必須保持在受控范圍內,必須在房間內保持正確的濕度,否則茶會失去味道和氣味??蛷d的濕度水平也應保持在舒適的范圍內。獲得最大舒適度的理想濕度值在 50% 到 65% 之間。

今天在本教程中,我們將學習如何將流行的 DHT11 溫度和濕度傳感器與 STM32 微控制器連接。

DHT11溫濕度傳感器

在繼續界面程序之前,讓我們了解一些有關 DHT11 傳感器的信息。如前所述, DHT11 傳感器用于測量 溫度和濕度。 該傳感器帶有一個專用的內置 NTC來測量溫度。它有一個板載 8 位微控制器,可通過單線協議將溫度和濕度值作為串行數據輸出。意思是,傳感器只有一個數據引腳,通過它可以讀取溫度和濕度值,從而節省了微控制器端的引腳。該傳感器還經過工廠校準,因此易于與其他微控制器連接。

DHT11 規格

工作電壓:3.5V 至 5.5V

工作電流:0.3mA(測量)60uA(待機)

輸出:串行數據

溫度范圍:0°C 至 50°C

濕度范圍:20% 至 90%

分辨率:溫度和濕度均為 16 位

準確度:±1°C 和 ±1%

pYYBAGMPFH-ATPzGAAH28yCmA7g721.png

所需組件

STM32F103C8

DHT11溫濕度傳感器

16x2 液晶顯示器

IIC/I2C 串行接口適配器模塊

面包板

連接電線

電路原理

將 DHT11 與 STM32 微控制器連接的完整電路圖如下所示。電路是使用 Fritzing 軟件繪制的。

poYBAGMPFHqAOMCBAAGVMQda9CM327.png

如您所見,我們使用I2C 接口模塊將 LCD 模塊連接到 STM32。這使連接變得簡單,并進一步減少了控制器端使用的引腳數量。但是,如果您沒有此模塊,您也可以通過以下鏈接直接連接 LCD STM32 。

如果您有接口模塊,那么 I2C 串行接口模塊(固定 16X2 LCD 顯示器)和 STM32F103C8 之間的電路連接如下表所示:

pYYBAGMPFHeAdYVfAAALJRrJSx4757.png

同樣,STM32F103C8 和 DHT11 傳感器之間的電路連接如下表所示。

pYYBAGMPFHOAAcbpAAAIjZQPwwA950.png

連接完成后,我的硬件如下所示。

pYYBAGMPFHCAHM7OAAUAObCGTxA865.png

整個設置由我筆記本電腦的 STM32 的 USB 端口供電?,F在我們的硬件已經準備好了,讓我們進入編碼部分。

為 STM32F103C8 準備 Arduino IDE

我們必須編寫一個程序來從 DHT11 傳感器中讀取溫度和濕度值并將其顯示在 LCD 模塊上。這里液晶顯示器是通過I2C適配器連接的,因此我們首先要找到這個適配器的I2C地址來與LCD通信。

將 I2C 串行 LCD 接口適配器模塊與 STM32F103C8 連接:

從電路圖中我們可以注意到 STM32F103C8 I2C 引腳 PB6 和 PB7 與 I2C 串行接口模塊的 SCL 和 SDA 引腳相連。要查找 I2C 串行接口模塊的地址,我們必須掃描可用地址。

掃描 I2C 串行接口模塊的地址:

按照以下步驟查找 LCD I2C 接口模塊的 I2C 地址。

1.首先檢查Arduino IDE的STM32包是否安裝。

2. 通過上述鏈接使用 Arduino IDE 安裝用于編程 STM32 的軟件包時,默認安裝了線庫。

3. 示例中提供了用于掃描連接的 I2C 設備的程序(在 Arduino IDE 中:Files-》Examples-》Wire-》I2C 掃描儀線)。在此之前,在 Tools-》Board-》Generic STM32F103C8 Series 中選擇板,如下所示。

poYBAGMPFGuANglCAAHbDdFSbew175.png

4. 然后將代碼上傳到 STM32F103C8 和打開的串行監視器。

poYBAGMPFGeAfULyAAAuOQAB9bI871.png

現在注意 I2C 16x2 LCD 顯示器的 I2C 地址為 (0x27)。

為 I2C 16x2 顯示模塊和 DHT11 傳感器安裝庫:

現在我們知道了 I2C 地址,我們需要下載一個庫,以便通過 I2C 與 LCD 顯示器進行通信。I2C LCD 顯示庫可從此鏈接下載。下載 zip 文件后,通過 sketch-》import library 在 Arduino IDE 中安裝 I2C LCD 庫。該庫也可以與 Arduino 板一起使用,用于與 I2C LCD 顯示模塊進行通信。

同樣,為了從 DHT11 傳感器讀取串行數據,我們將使用DHT11 庫。使用提供的鏈接將庫下載為 ZIP 文件,下載后,使用草圖-》導入庫在 Arduino IDE 中安裝 DHT庫。同樣的庫也可以與 Arduino 板一起使用。

編碼說明

本文的完整代碼可以在本頁底部找到,相同的解釋如下。最初包括所需的庫。包括用于在 STM32F103C8中使用 I2C 的Wire.h庫、用于使用 I2C 類型 LCD 顯示器的LiquidCrystal_I2C.h和用于使用 DHT 傳感器功能的DHT.h

#include        
#include    
#include                     

現在定義了與STM32F103C8的PA1相連的DHT11(OUT引腳)的引腳名稱

#define DHTPIN PA1

而且,DHTTYPE 被定義為 DHT11。

#define DHTTYPE DHT11

接下來初始化 I2C 地址為 0x27 和 16x2 類型 LCD 顯示器的LiquidCrystal_I2C類的對象 lcd 。

LiquidCrystal_I2C lcd(0x27, 16, 2);

此外, DHT 類的對象 dht與 STM32 和 DHT 類型為 DHT11 的 DHT 引腳被初始化

DHT dht(DHTPIN, DHTTYPE);    

接下來在void setup() 中:

首先使用以下方法初始化 LCD

液晶顯示器開始();

然后使用以下語句開始接收來自 DHT11 傳感器的溫度和濕度值。

dht.begin();         

打開黑光燈并打印歡迎信息并在三秒鐘后清除它們。

液晶背光();     
lcd.setCursor(0,0); 
lcd.print("電路文摘"); 
lcd.setCursor(0,1); 
lcd.print("DHT11 與 STM32"); 
延遲(3000);
lcd.clear();

接下來在void loop() 中:

從 DHT11 傳感器連續接收該值。為了獲得溫度和濕度的單獨值并將其存儲在變量中,使用了以下語句。

僅獲取濕度值

浮動 h = dht.readHumidity();      

僅獲取溫度值

浮動 t = dht.readTemperature();   

最后在 16X2 LCD 顯示屏上打印

  lcd.setCursor(0,0); 
  lcd.print("溫度:"); 
  lcd.print(t); 
  lcd.print("C"); 
  lcd.setCursor(0,1); 
  lcd.print("濕度:"); 
  lcd.print(h); 
  lcd.print("%");

基于STM32的溫度計的工作

一旦您的硬件和代碼準備就緒,只需將代碼寫入您的硬件,您應該會注意到您的 LCD 顯示歡迎屏幕,然后是實時溫度和濕度值,如下所示

pYYBAGMPFGKAIFlEAAXxRGw5laY477.png

如果您的顯示器沒有顯示任何內容,您可以檢查調整I2C 模塊背面的對比度電位器。我嘗試使用空調改變房間溫度,發現傳感器值也會相應變化。AC 還可以選擇測量室溫,如下圖所示,我的遙控器顯示室溫為 27°C,我們的傳感器還在 LCD 上顯示 27.3°C,這非常接近。

poYBAGMPFF6AFxbDAAUS1pp17vc655.png

#include //使用 I2C 的庫

#include //使用 I2C 類型 LCD 顯示器的

庫 #include //使用 DHT 傳感器的庫


#define DHTPIN PA1


#define DHTTYPE DHT11


LiquidCrystal_I2C lcd(0x27, 16, 2); //為LiquidCrystal_I2C類初始化對象lcd,I2C地址為0x27和16x2類型的LCD顯示


DHT dht(DHTPIN, DHTTYPE); //使用STM32的DHT引腳和DHT類型為DHT11的DHT類初始化對象dht


void setup()

{

// 初始化 LCD

lcd.begin();

dht.begin(); //開始接收溫度和濕度值。

液晶背光();// 打開黑燈并打印歡迎信息。

lcd.setCursor(0,0);

lcd.print("電路文摘");

lcd.setCursor(0,1);

lcd.print("DHT11 與 STM32");

延遲(3000);

lcd.clear();

}


無效循環()

{

浮動h = dht.readHumidity();//獲取濕度值

float t = dht.readTemperature(); //獲取溫度值

lcd.setCursor(0,0);

lcd.print("溫度:");

lcd.print(t);

lcd.print("C");

lcd.setCursor(0,1);

lcd.print("濕度:");

lcd.print(h);

lcd.print("%");

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6877

    瀏覽量

    148458
  • STM32
    +關注

    關注

    2247

    文章

    10691

    瀏覽量

    349895
  • 濕度傳感器
    +關注

    關注

    7

    文章

    291

    瀏覽量

    58367
  • DHT11
    +關注

    關注

    19

    文章

    265

    瀏覽量

    57284
  • STM32F103C8
    +關注

    關注

    1

    文章

    23

    瀏覽量

    8031
收藏 人收藏

    評論

    相關推薦

    【眾拳】基于STM8DHT11濕度傳感器實驗 附代碼

    。DHT11濕度傳感器簡介傳感器數據輸出的是未編碼的二進制數據。數據(濕度、溫度、整數、小數
    發表于 12-07 09:14

    「正點原子NANO STM32F103開發板資料連載」第二十七章 DHT11 數字溫濕度傳感器實驗

    DHT11 有 4 條腿,需要把 U2 的 4 個接口都用上, DHT11 傳感器插入到這個上面就可以通過 STM32F1 來讀取溫
    發表于 05-06 15:25

    Arduino開發板使用DHT11濕度傳感器方法 精選資料分享

    在本篇文章中,我們DHT11濕度傳感器與Arduino開發板和LCD顯示屏連接,設計一種能夠測量室溫和環境
    發表于 07-13 09:35

    Arduino開發板使用DHT11濕度傳感器方法 精選資料分享

    在本篇文章中,我們DHT11濕度傳感器與Arduino開發板和LCD顯示屏連接,設計一種能夠測量室溫和環境
    發表于 07-13 06:58

    DHT11濕度傳感器介紹

    DHT11濕度傳感器介紹,1.實物原理圖2.模塊說明2.1 DHT11產品概述DHT11數字溫濕度
    發表于 07-21 09:04

    使用STM32來讀取DHT11數字溫濕度傳感器

    原理DHT11 是一款濕溫度一體化的數字傳感器。該傳感器包括一個電阻式測濕元件和一個 NTC測溫元件,并與一個高性能 8 位單片機相
    發表于 11-10 08:58

    如何對基于STM32F103 HAL庫的DHT11溫度傳感器進行試驗

    如何對基于STM32F103 HAL庫的DHT11溫度傳感器進行試驗?如何對DHT11溫度
    發表于 12-08 07:45

    DHT11在主函數的應用方法

    只有一個口 HDQ。與PA7連接。三、DHT11初始化dht11.c#include "stm32f10x.h"#define delay_us(X)delayd(X*72/5)voi
    發表于 12-17 08:32

    STM32F103 HAL庫 DHT11溫度傳感器相關資料分享

    STM32F103 HAL庫 DHT11溫度傳感器實驗寫在前面絕對不坑人,保證有用,親測有效。作為剛剛接觸STM32的小白,我深知找不到非常
    發表于 01-05 07:01

    如何使用STM32F4來讀取DHT11數字溫濕度傳感器

    數字溫濕度傳感器實驗上一章,我們介紹了數字溫度傳感器 DS18B20 的使用,本章我們介紹數字溫濕度
    發表于 02-09 07:50

    DHT11濕度傳感器簡介

    穩定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11
    發表于 02-16 06:55

    DHT11數字溫濕度傳感器的相關資料推薦

    STM32采集DHT11濕度關于DHT11相關參數代碼篇接線和實驗結果總結關于DHT11DHT11是一款數字溫
    發表于 02-21 07:34

    使用DHT11STM32單片機進行濕度溫度監控

    測量0°C至50°C溫度,精度為1°C。 它可以測量20%至90%的濕度,精度為1%。我們將把DHT1
    發表于 03-01 06:24

    如何將DHT11濕度溫度傳感器與基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口

    值,并將其顯示在16×2 LCD顯示器上。我在這里也會做同樣的事情,但是這次我將把DHT11濕度溫度傳感器連接
    的頭像 發表于 05-14 10:47 ?1.1w次閱讀

    使用Arduino IDE在NodeMCU上使用DHT11溫度濕度傳感器

    使用Arduino IDE在NodeMCU上使用DHT11溫度濕度傳感器
    發表于 12-03 18:21 ?10次下載
    使用Arduino IDE在NodeMCU上使用<b class='flag-5'>DHT11</b><b class='flag-5'>溫度</b>和<b class='flag-5'>濕度</b><b class='flag-5'>傳感器</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>