最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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顯示溫濕度的評論 (共 條)

分享到微博請遵守國家法律
卢氏县| 隆林| 江西省| 富平县| 井冈山市| 喀喇| 牡丹江市| 兴文县| 浦县| 湛江市| 察雅县| 江达县| 磐石市| 宝山区| 昌平区| 崇仁县| 香河县| 六安市| 化德县| 泽州县| 博兴县| 罗江县| 黎城县| 蛟河市| 桦川县| 乌苏市| 治多县| 吉安市| 剑阁县| 秦安县| 华坪县| 漠河县| 文成县| 衡阳市| 克东县| 呼伦贝尔市| 民乐县| 弥勒县| 仲巴县| 岳普湖县| 西充县|