chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32+DHT11監(jiān)測(cè)環(huán)境的溫濕度

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-05-17 09:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【1】DHT11傳感器

DHT11是一種數(shù)字溫濕度傳感器,能夠通過數(shù)字信號(hào)輸出當(dāng)前環(huán)境的溫度和濕度值。DHT11可以通過一條數(shù)據(jù)信號(hào)線連接到微控制器或其他外設(shè),從而實(shí)現(xiàn)溫濕度的實(shí)時(shí)測(cè)量和數(shù)據(jù)讀取。

DHT11采用單總線通信協(xié)議,只需要連接一個(gè)數(shù)字信號(hào)線和兩個(gè)電源線,即可實(shí)現(xiàn)傳感器的數(shù)據(jù)讀取。傳感器本身具有一定的溫度和濕度校準(zhǔn)能力,因此輸出的數(shù)據(jù)比較可靠。

DHT11傳感器的測(cè)量范圍為0~50°C的溫度和20%~90%的相對(duì)濕度,測(cè)量精度為±2°C和±5%RH。

【2】通信協(xié)議

DHT11采用單總線通信協(xié)議,使用一條數(shù)據(jù)信號(hào)線來傳輸數(shù)據(jù),其中包括起始信號(hào)、數(shù)據(jù)位和校驗(yàn)位。通信協(xié)議如下:

  1. 主機(jī)發(fā)送一個(gè)開始信號(hào)給DHT11,即將數(shù)據(jù)信號(hào)線拉低至少18ms以上。
  2. 主機(jī)發(fā)出啟動(dòng)信號(hào)之后,拉低數(shù)據(jù)線至少80us,在這個(gè)過程中,DHT11將會(huì)檢測(cè)到主機(jī)發(fā)送的啟動(dòng)信號(hào),并做出回應(yīng)。
  3. DHT11響應(yīng)主機(jī)發(fā)出的啟動(dòng)信號(hào)后,會(huì)拉高數(shù)據(jù)信號(hào)線至少80us,表示傳輸數(shù)據(jù)前的“準(zhǔn)備工作”已經(jīng)完成。
  4. DHT11開始向主機(jī)發(fā)送數(shù)據(jù),每個(gè)數(shù)據(jù)包包含40個(gè)位,高位先傳輸。在數(shù)據(jù)傳輸?shù)倪^程中,DHT11會(huì)將數(shù)據(jù)信號(hào)線從低電平轉(zhuǎn)換為高電平,表示1的開始,持續(xù)時(shí)間2628us,然后將數(shù)據(jù)線拉低,表示0的開始,持續(xù)時(shí)間70us。
  5. 在發(fā)送完40位數(shù)據(jù)后,DHT11會(huì)發(fā)送一個(gè)校驗(yàn)位。校驗(yàn)位的計(jì)算方法是將前四個(gè)字節(jié)數(shù)據(jù)相加,求出一個(gè)8位校驗(yàn)碼,將此校驗(yàn)碼與第五個(gè)字節(jié)進(jìn)行比較,如果相等,則數(shù)據(jù)傳輸成功,否則需要重傳數(shù)據(jù)。
  6. 主機(jī)接收到數(shù)據(jù)后,需要將數(shù)據(jù)信號(hào)線拉高,以結(jié)束傳輸。

【3】讀取DHT11溫濕度數(shù)據(jù)

以下是一個(gè)讀取DHT11傳感器的溫度和濕度示例代碼:

Copy Code#include "stm32f10x.h"
#include "dht11.h"
?
#define DHT11_GPIO_PORT GPIOB
#define DHT11_GPIO_PIN GPIO_Pin_12
?
void delay_us(uint32_t us)
{
  us *= (SystemCoreClock / 1000000) / 5;
  while (--us);
}
?
void dht11_start(void)
{
  GPIO_InitTypeDef GPIO_InitStruct;
?
  GPIO_InitStruct.GPIO_Pin = DHT11_GPIO_PIN;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
?
  GPIO_Init(DHT11_GPIO_PORT, &GPIO_InitStruct);
?
  /* 發(fā)送開始信號(hào) */
  GPIO_ResetBits(DHT11_GPIO_PORT, DHT11_GPIO_PIN);
  delay_us(18000);
?
  GPIO_SetBits(DHT11_GPIO_PORT, DHT11_GPIO_PIN);
  delay_us(40);
?
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
?
  GPIO_Init(DHT11_GPIO_PORT, &GPIO_InitStruct);
}
?
uint16_t dht11_read_bit(void)
{
  uint16_t retry = 0;
?
  while (GPIO_ReadInputDataBit(DHT11_GPIO_PORT, DHT11_GPIO_PIN) == RESET) {
    retry++;
    if (retry > 1000) {
      return 0;
     }
    delay_us(1);
   }
?
  retry = 0;
?
  while (GPIO_ReadInputDataBit(DHT11_GPIO_PORT, DHT11_GPIO_PIN) == SET) {
    retry++;
    if (retry > 1000) {
      return 0;
     }
    delay_us(1);
   }
?
  if (retry < 30) {
? ? ? ? ?return 0;
? ?  } else {
? ? ? ? ?return 1;
? ?  }
?}
??
?uint8_t dht11_read_byte(void)
?{
? ? ?uint8_t i;
? ? ?uint8_t data = 0;
??
? ? ?for (i = 0; i < 8; i++) {
? ? ? ? ?data <<= 1;
? ? ? ? ?if (dht11_read_bit()) {
? ? ? ? ? ? ?data |= 0x01;
? ? ? ?  }
? ?  }
??
? ? ?return data;
?}
??
?uint8_t dht11_read_data(dht11_data_t *data)
?{
? ? ?uint8_t i;
? ? ?uint8_t buf[5];
? ? ?uint8_t checksum = 0;
??
? ? ?dht11_start();
??
? ? ?if (GPIO_ReadInputDataBit(DHT11_GPIO_PORT, DHT11_GPIO_PIN) == RESET) {
? ? ? ? ?/* 等待DHT11響應(yīng) */
? ? ? ? ?while (GPIO_ReadInputDataBit(DHT11_GPIO_PORT, DHT11_GPIO_PIN) == RESET);
??
? ? ? ? ?/* 等待DHT11發(fā)射數(shù)據(jù) */
? ? ? ? ?while (GPIO_ReadInputDataBit(DHT11_GPIO_PORT, DHT11_GPIO_PIN) == SET);
??
? ? ? ? ?/* 接收數(shù)據(jù) */
? ? ? ? ?for (i = 0; i < 5; i++) {
? ? ? ? ? ? ?buf[i] = dht11_read_byte();
? ? ? ?  }
??
? ? ? ? ?/* 校驗(yàn)和 */
? ? ? ? ?checksum = buf[0] + buf[1] + buf[2] + buf[3];
??
? ? ? ? ?if (checksum == buf[4]) {
? ? ? ? ? ? ?data->humidity = buf[0];
      data->temperature = buf[2];
      return 1;
     }
   }
?
  return 0;
}
?
int main(void)
{
  dht11_data_t data;
?
  GPIO_InitTypeDef GPIO_InitStruct;
?
  /* 使能GPIOB時(shí)鐘 */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
?
  /* 配置DHT11引腳為輸入模式 */
  GPIO_InitStruct.GPIO_Pin = DHT11_GPIO_PIN;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
?
  GPIO_Init(DHT11_GPIO_PORT, &GPIO_InitStruct);
?
  while (1) {
    if (dht11_read_data(&data)) {
      printf("Temperature: %d°C   Humidity: %d%%n", data.temperature, data.humidity);
     } else {
      printf("Error reading data from DHT11.n");
     }
    delay_us(2000000);
   }
}

在這個(gè)示例代碼中,首先定義了一個(gè)dht11_data_t結(jié)構(gòu)體,用于保存讀取的溫度和濕度數(shù)據(jù)。然后,編寫了一些函數(shù)來執(zhí)行DHT11讀取操作。

delay_us()函數(shù)是一個(gè)簡(jiǎn)單的延遲函數(shù),用于等待一定量的時(shí)間。需要精確地計(jì)算一個(gè)微秒的延遲,并在循環(huán)中使用該延遲來等待一段時(shí)間。

dht11_start()函數(shù)用于發(fā)送DHT11的開始信號(hào)。將DHT11引腳配置為輸出模式,并發(fā)送18毫秒的低電平信號(hào),然后再發(fā)送40微秒的高電平信號(hào)。

dht11_read_bit()函數(shù)用于讀取DHT11傳輸?shù)臄?shù)據(jù)位。等待DHT11輸出信號(hào)的變化,并根據(jù)變化的時(shí)間來判斷數(shù)據(jù)位的值。如果一個(gè)數(shù)據(jù)位的響應(yīng)時(shí)間小于30微秒,則被判定為0,否則為1。

dht11_read_byte()函數(shù)用于讀取一個(gè)字節(jié)的數(shù)據(jù)(8個(gè)數(shù)據(jù)位)。通過調(diào)用dht11_read_bit()函數(shù)8次來讀取每個(gè)數(shù)據(jù)位,并將結(jié)果組合成一個(gè)字節(jié)。

dht11_read_data()函數(shù)用于讀取整個(gè)DHT11數(shù)據(jù)包,包括溫度、濕度和校驗(yàn)和。首先調(diào)用dht11_start()函數(shù)發(fā)送開始信號(hào),然后等待DHT11發(fā)送數(shù)據(jù)。使用dht11_read_byte()函數(shù)讀取5個(gè)字節(jié)的數(shù)據(jù),并驗(yàn)證校驗(yàn)和以確保數(shù)據(jù)完整和正確。

最后,在main()函數(shù)中,初始化GPIO口和DHT11傳感器,并執(zhí)行一個(gè)循環(huán)來讀取數(shù)據(jù)。如果讀取成功,則將溫度和濕度打印到串口終端上,否則輸出錯(cuò)誤信息。


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2576

    文章

    54837

    瀏覽量

    789436
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6074

    文章

    45464

    瀏覽量

    667442
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    1084

    瀏覽量

    41961
  • STM32
    +關(guān)注

    關(guān)注

    2308

    文章

    11153

    瀏覽量

    372560
  • DHT11
    +關(guān)注

    關(guān)注

    19

    文章

    277

    瀏覽量

    59545
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)據(jù)安全優(yōu)先:以太網(wǎng)溫濕度監(jiān)測(cè)與追溯合規(guī)方案

    的關(guān)鍵參數(shù)。傳統(tǒng)人工監(jiān)測(cè)方式存在效率低、誤差大、數(shù)據(jù)不連續(xù)、無法實(shí)時(shí)預(yù)警等問題,難以滿足現(xiàn)代化管理對(duì)環(huán)境監(jiān)測(cè)的精細(xì)化、智能化要求。以太網(wǎng)溫濕度記錄儀憑借 實(shí)時(shí)傳輸、遠(yuǎn)程管理、數(shù)據(jù)可追溯、穩(wěn)定性強(qiáng) 等優(yōu)勢(shì),成為解決上述
    的頭像 發(fā)表于 12-23 14:39 ?983次閱讀

    【瑞薩RA6E2地奇星開發(fā)板試用】DHT11 測(cè)量溫濕度

    使用瑞薩 RA6E2 微控制器,實(shí)現(xiàn) DHT11 溫濕度傳感器的數(shù)據(jù)采集,并通過 I2C 接口的 OLED12864 顯示屏實(shí)時(shí)顯示數(shù)據(jù)。 硬件準(zhǔn)備? 核心板:瑞薩 RA6E2 地奇星開發(fā)板
    發(fā)表于 12-19 18:50

    宏集案例 | COMET無線溫濕度監(jiān)測(cè)系統(tǒng)助力文物展陳與長(zhǎng)期保存

    案例概況客戶:捷克皇冠珠寶展覽方應(yīng)用產(chǎn)品:宏集COMET溫濕度監(jiān)測(cè)系統(tǒng)應(yīng)用場(chǎng)景:溫濕度環(huán)境監(jiān)測(cè)&文物保護(hù)01合作背景Background捷克王冠珠寶是國家的重要?dú)v史文化象征,包括圣溫塞
    的頭像 發(fā)表于 11-13 17:40 ?519次閱讀
    宏集案例 | COMET無線<b class='flag-5'>溫濕度</b><b class='flag-5'>監(jiān)測(cè)</b>系統(tǒng)助力文物展陳與長(zhǎng)期保存

    溫濕度傳感器HTU31D在溫濕度控器中的應(yīng)用優(yōu)勢(shì)

    溫濕度控制器是一種用于監(jiān)測(cè)和調(diào)節(jié)環(huán)境溫度與濕度的設(shè)備,廣泛應(yīng)用于農(nóng)業(yè)、倉儲(chǔ)、工業(yè)生產(chǎn)、家庭等多個(gè)領(lǐng)域。其主要功能是維持特定環(huán)境條件,以確保產(chǎn)
    的頭像 發(fā)表于 11-06 14:38 ?254次閱讀
    <b class='flag-5'>溫濕度</b>傳感器HTU31D在<b class='flag-5'>溫濕度</b>控器中的應(yīng)用優(yōu)勢(shì)

    如何對(duì)電能質(zhì)量在線監(jiān)測(cè)裝置進(jìn)行溫濕度環(huán)境適應(yīng)性測(cè)試?

    對(duì)電能質(zhì)量在線監(jiān)測(cè)裝置進(jìn)行溫濕度環(huán)境適應(yīng)性測(cè)試,核心是通過 高低溫濕熱箱模擬目標(biāo)場(chǎng)景的極端溫濕度條件 ,驗(yàn)證裝置在 “低溫啟動(dòng)、高溫運(yùn)行、濕
    的頭像 發(fā)表于 10-22 17:50 ?1247次閱讀

    基于LORA無線通訊的祥控多點(diǎn)式煙葉溫濕度監(jiān)測(cè)系統(tǒng)

    XKCON祥控多點(diǎn)式煙葉溫濕度監(jiān)測(cè)系統(tǒng)基于LORA無線通訊技術(shù),無需復(fù)雜的布線工作,縮短了工期,節(jié)省了成本;系統(tǒng)可以根據(jù)煙廠的實(shí)際布局和需求進(jìn)行靈活配置,實(shí)現(xiàn)對(duì)各單點(diǎn)無線溫濕度檢測(cè)桿測(cè)量信號(hào)的采集接收,大大提升了系統(tǒng)
    的頭像 發(fā)表于 09-23 17:02 ?712次閱讀
    基于LORA無線通訊的祥控多點(diǎn)式煙葉<b class='flag-5'>溫濕度</b><b class='flag-5'>監(jiān)測(cè)</b>系統(tǒng)

    基于物聯(lián)網(wǎng)的溫濕度監(jiān)測(cè)系統(tǒng)方案:構(gòu)建全域感知的智能環(huán)境網(wǎng)絡(luò)

    儲(chǔ)備糧; -精密制造:半導(dǎo)體車間1%濕度波動(dòng)引發(fā)30%良品率下降; 基于物聯(lián)網(wǎng)的溫濕度監(jiān)測(cè)系統(tǒng)正成為破解環(huán)境管理難題的核心基礎(chǔ)設(shè)施。本方案基于“端-管-云-用”架構(gòu),實(shí)現(xiàn)從單點(diǎn)
    的頭像 發(fā)表于 07-24 18:05 ?839次閱讀

    一款適用于粉塵、易結(jié)露等惡劣環(huán)境溫濕度監(jiān)控中的溫濕度傳感芯片

    溫濕度監(jiān)控系統(tǒng)在惡劣環(huán)境中通過傳感器實(shí)時(shí)監(jiān)測(cè)溫濕度參數(shù),當(dāng)達(dá)到預(yù)設(shè)閾值時(shí)自動(dòng)觸發(fā)預(yù)警或調(diào)節(jié)機(jī)制,確保環(huán)境狀態(tài)維持在安全范圍內(nèi)。
    的頭像 發(fā)表于 07-09 09:41 ?573次閱讀
    一款適用于粉塵、易結(jié)露等惡劣<b class='flag-5'>環(huán)境</b><b class='flag-5'>溫濕度</b>監(jiān)控中的<b class='flag-5'>溫濕度</b>傳感芯片

    基于物聯(lián)網(wǎng)的溫濕度監(jiān)測(cè)系統(tǒng)

    在醫(yī)藥冷鏈、智慧農(nóng)業(yè)、智能制造等領(lǐng)域,溫濕度失控輕則導(dǎo)致品質(zhì)下降,重則引發(fā)安全事故。傳統(tǒng)人工巡檢方式滯后性強(qiáng)、誤差率高,而物聯(lián)網(wǎng)溫濕度監(jiān)測(cè)系統(tǒng)通過“端-管-云-用”架構(gòu),實(shí)現(xiàn)環(huán)境數(shù)據(jù)的
    的頭像 發(fā)表于 07-08 16:52 ?629次閱讀

    常見的溫濕度傳感器類型?

    DHT11溫濕度傳感器 DHT11是一種常見的數(shù)字溫濕度傳感器,具有價(jià)格低廉、簡(jiǎn)單易用的優(yōu)點(diǎn),但其精度和響應(yīng)速度較低。 HDC1080溫濕度
    發(fā)表于 06-24 09:24

    溫濕度變送器功能有哪些?一文詳細(xì)解析

    功能就是精準(zhǔn)測(cè)量環(huán)境中的溫度和濕度。它采用高精度的傳感器,能夠快速、準(zhǔn)確地感知環(huán)境溫濕度的變化,并將這些數(shù)據(jù)轉(zhuǎn)化為可識(shí)別的電信號(hào)。無論是在實(shí)驗(yàn)室、倉庫,還是在生產(chǎn)車間,都能為用戶提供可
    發(fā)表于 06-03 10:56

    智能倉儲(chǔ):溫濕度監(jiān)控方案應(yīng)用

    隨著倉儲(chǔ)環(huán)境要求提高,溫濕度監(jiān)控對(duì)保障貨物品質(zhì)至關(guān)重要。本文介紹一個(gè)工廠倉庫溫濕度監(jiān)控方案,利用溫濕度變送器、LoRa技術(shù)和智能監(jiān)測(cè)平臺(tái),為
    的頭像 發(fā)表于 05-29 11:35 ?683次閱讀
    智能倉儲(chǔ):<b class='flag-5'>溫濕度</b>監(jiān)控方案應(yīng)用

    用樹莓派RP2350 DIY 桌面動(dòng)態(tài)溫濕度計(jì)

    桌面動(dòng)態(tài)溫濕度計(jì)本文介紹了DFrobotBeetleRP2350開發(fā)板結(jié)合DHT11模塊、鋰電池模塊、隨機(jī)眨眼動(dòng)畫,實(shí)現(xiàn)OLED顯示的桌面動(dòng)態(tài)溫濕度計(jì)的項(xiàng)目設(shè)計(jì)。一、項(xiàng)目介紹本項(xiàng)目包括工作原理:ADC電壓采集與電量轉(zhuǎn)換工程調(diào)試:
    的頭像 發(fā)表于 05-27 08:05 ?816次閱讀
    用樹莓派RP2350 DIY 桌面動(dòng)態(tài)<b class='flag-5'>溫濕度</b>計(jì)

    LoRa無線技術(shù)的溫濕度監(jiān)測(cè)預(yù)警系統(tǒng)

    LoRa無線技術(shù)的溫濕度監(jiān)測(cè)預(yù)警系統(tǒng)采用LoRa采集器和LoRa網(wǎng)關(guān)實(shí)現(xiàn)監(jiān)控區(qū)域內(nèi)的全覆蓋,同時(shí)在倉儲(chǔ)區(qū)各個(gè)數(shù)據(jù)采集節(jié)點(diǎn)安裝溫濕度傳感器,實(shí)現(xiàn)對(duì)監(jiān)測(cè)區(qū)域的
    的頭像 發(fā)表于 05-14 16:06 ?762次閱讀
    LoRa無線技術(shù)的<b class='flag-5'>溫濕度</b><b class='flag-5'>監(jiān)測(cè)</b>預(yù)警系統(tǒng)

    工廠溫濕度監(jiān)控系統(tǒng)

    在現(xiàn)代化工業(yè)生產(chǎn)環(huán)境中,溫濕度控制是確保產(chǎn)品質(zhì)量、生產(chǎn)效率和員工健康的關(guān)鍵因素之一。隨著科技的進(jìn)步,工廠溫濕度監(jiān)控系統(tǒng)應(yīng)運(yùn)而生,通過集成傳感器技術(shù)、數(shù)據(jù)處理與通信技術(shù),對(duì)工廠內(nèi)部環(huán)境
    的頭像 發(fā)表于 02-25 17:11 ?1010次閱讀