五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

STM32外接DHT11顯示溫濕度

2022-04-05 10:42 作者:碼農(nóng)愛學習-B站  | 我要投稿

本篇介紹STM32如何外接溫濕度傳感器實現(xiàn)當前環(huán)境溫濕度的讀取,并顯示到OLED屏幕上。

1 DTH11溫濕度傳感器

DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器,包括一個電阻式感濕元件和一個NTC測溫元件。

1.1 數(shù)據(jù)讀取協(xié)議

微控制器MCU與 DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右。

用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分數(shù)據(jù)。

從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,DHT11不會主動進行溫濕度采集。采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。

1.1.1 起始信號

總線空閑狀態(tài)為高電平,MCU把總線拉低等待DHT11響應(yīng),MCU把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。

DHT11接收到主機的開始信號后,等待MCU的開始信號結(jié)束,然后發(fā)送80us低電平響應(yīng)信號

MCU發(fā)送開始信號結(jié)束后,延時等待20-40us后,讀取DHT11的響應(yīng)信號,MCU發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可,總線由上拉電阻拉高。


1.1.2 數(shù)據(jù)數(shù)字信號

總線為低電平,說明DHT11發(fā)送響應(yīng)信號,DHT11發(fā)送響應(yīng)信號后,再把總線拉高80us,準備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時隙開始,高電平的長短定了數(shù)據(jù)位是0還是1

數(shù)字0和數(shù)字1的表示,如下面圖示:

  • 數(shù)字0:50us低電平開始后,26-28us的高電平表示0

  • 數(shù)字1:50us低電平開始后,70us的高電平表示1

如果讀取響應(yīng)信號為高電平,則DHT11沒有響應(yīng),需要檢查線路是否連接正常。

當最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進入空閑狀態(tài)。

1.1.3 溫濕度數(shù)據(jù)格式

一次完整的數(shù)據(jù)傳輸為40bit,高位先出。數(shù)據(jù)分小數(shù)部分和整數(shù)部分,數(shù)據(jù)格式:

  • 8bit濕度整數(shù)數(shù)據(jù)

  • 8bit濕度小數(shù)數(shù)據(jù)

  • 8bit溫度整數(shù)數(shù)據(jù)

  • 8bit溫度小數(shù)數(shù)據(jù)

  • 8bit校驗和

數(shù)據(jù)傳送正確時校驗和數(shù)據(jù)等于“ 8bit 濕度整數(shù)數(shù)據(jù) +8bit 濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù) +8bit 溫度小數(shù)數(shù)據(jù) ”所得結(jié)果的末8位。

1.2 硬件接線

DHT11的數(shù)據(jù)讀取只需要一根線,我使用的是PB8,另外,OLED用來顯示溫濕度的值,使用IIC通信,使用的是PB6和PB7。

2 程序編寫

根據(jù)DHT11的數(shù)據(jù)讀取協(xié)議,編寫對應(yīng)的數(shù)據(jù)讀取函數(shù)。

2.1 DHT11復位和檢測響應(yīng)函數(shù)

首先是MCU向DHT11發(fā)送的起始信號,拉低20ms,再拉高30us。

2.2 數(shù)據(jù)讀取

MCU向DHT11發(fā)送起始信號后,就可以接收DHT11的數(shù)據(jù)返回了,一次讀取濕度和溫度即可。

2.3 初始化

使用DHT11之前,進行引腳的初始化和器件的初始化。

3 測試

在移植過U8g2庫的hello_world例程上進行修改,在屏幕上顯示溫濕度。注意攝氏度單位的小圓圈,不知道怎么直接以符號的形式顯示出來,我這里是單獨畫了一個小空心圓。

測試效果如下:

4 總結(jié)

本篇介紹了如何在STM32上外接溫濕度DHT11實現(xiàn)溫濕度數(shù)據(jù)的讀取,并通過OLED進行數(shù)據(jù)顯示。



STM32外接DHT11顯示溫濕度的評論 (共 條)

分享到微博請遵守國家法律
利辛县| 伊宁市| 景德镇市| 孝昌县| 祥云县| 山东省| 河间市| 阳曲县| 崇信县| 阳西县| 东山县| 怀柔区| 内江市| 黄浦区| 延安市| 孟州市| 无极县| 清远市| 泸西县| 杭州市| 石屏县| 盐津县| 建湖县| 兴义市| 图们市| 沁源县| 丰顺县| 伊宁县| 顺义区| 阿拉尔市| 宝山区| 长寿区| 轮台县| 海城市| 垦利县| 丰都县| 贡嘎县| 离岛区| 论坛| 石楼县| 彭阳县|