實(shí)驗器材
- CW32飯盒派開(kāi)發(fā)板
- DHT11溫濕度傳感器
接線(xiàn)
開(kāi)發(fā)板 | DHT11 |
---|---|
VCC | + |
GND | GND |
PB1 | OUT |
程序
- dht11.c
#include "dht11.h"
//復位DHT11
void DHT11_Rst(void)
{
PB01_DIR_OUTPUT(); //PB12配置成輸出
PB01_SETLOW(); //拉低DQ
delay1ms(20);
PB01_SETHIGH(); //DQ=1
delay10us(3);
}
//等待DHT11的回應
//返回1:未檢測到DHT11的存在
//返回0:存在
uint8_t DHT11_Check(void)
{
uint8_t retry=0;
PB01_DIR_INPUT(); //PB12配置成輸入
while (PB01_GETVALUE()&&retry<10)//DHT11會(huì )拉低40~80us
{
retry++;
delay10us(1);
};
if(retry>=10)return 1;
else retry=0;
while (!PB01_GETVALUE()&&retry<10)//DHT11拉低后會(huì )再次拉高40~80us
{
retry++;
delay10us(1);
};
if(retry>=10)return 1;
return 0;
}
//從DHT11讀取一個(gè)位
//返回值:1/0
uint8_t DHT11_Read_Bit(void)
{
uint8_t retry=0;
while(PB01_GETVALUE()&&retry<10)//等待變?yōu)榈碗娖?/span>
{
retry++;
delay10us(1);
}
retry=0;
while(!PB01_GETVALUE()&&retry<10)//等待變高電平
{
retry++;
delay10us(1);
}
delay10us(4);//等待40us
if(PB01_GETVALUE())return 1;
else return 0;
}
//從DHT11讀取一個(gè)字節
//返回值:讀到的數據
uint8_t DHT11_Read_Byte(void)
{
uint8_t i,dat;
dat=0;
for (i=0;i<8;i++)
{
dat<<=1;
dat|=DHT11_Read_Bit();
}
return dat;
}
//從DHT11讀取一次數據
//temp:溫度值(范圍:0~50°)
//humi:濕度值(范圍:20%~90%)
//返回值:0,正常;1,讀取失敗
uint8_t DHT11_Read_Data(float *temp,uint8_t *humi)
{
// uint8_t buf[5];
char buf[5];
uint8_t i;
DHT11_Rst();
if(DHT11_Check()==0)
{
for(i=0;i<5;i++)//讀取40位數據
{
buf[i]=DHT11_Read_Byte();
}
if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
{
*humi=buf[0];
*temp=buf[2];
}
}else return 1;
return 0;
}
//初始化DHT11的IO口 DQ 同時(shí)檢測DHT11的存在
//返回1:不存在
//返回0:存在
uint8_t DHT11_GPIO_Config ( void )
{
GPIO_InitTypeDef GPIO_InitStruct;
__RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.IT = GPIO_IT_NONE;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pins = GPIO_PIN_1;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_Init(CW_GPIOB, &GPIO_InitStruct);
DHT11_Rst(); //復位DHT11
return DHT11_Check();//等待DHT11的回應
}
dht11.h
#ifndef __DHT11_H
#define __DHT11_H
#include "main.h"
uint8_t DHT11_Init(void);//初始化DHT11
uint8_t DHT11_Read_Data(float *temp,uint8_t *humi);
uint8_t DHT11_Read_Byte(void);//讀出一個(gè)字節
uint8_t DHT11_Read_Bit(void);//讀出一個(gè)位
uint8_t DHT11_Check(void);//檢測是否存在DHT11
void DHT11_Rst(void);//復位DHT11
uint8_t DHT11_GPIO_Config ( void );
#endif
接好線(xiàn)后,把程序下載到開(kāi)發(fā)板,然后重啟效果如下:
聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。
舉報投訴
-
溫濕度采集
+關(guān)注
關(guān)注
0文章
7瀏覽量
7507 -
DHT11
+關(guān)注
關(guān)注
19文章
265瀏覽量
57284 -
CW32
+關(guān)注
關(guān)注
1文章
144瀏覽量
378 -
武漢芯源
+關(guān)注
關(guān)注
1文章
58瀏覽量
156
發(fā)布評論請先 登錄
相關(guān)推薦
溫濕度傳感器工作原理 溫濕度傳感器的接線(xiàn)方法
溫濕度傳感器是一種用于測量環(huán)境溫度和相對濕度的裝置。它通常用于工業(yè)、農業(yè)、氣象、室內空調等領(lǐng)域。本文將詳細介紹溫濕度傳感器的工作原理和接線(xiàn)方法。 一、溫濕度傳感器的工作原理
4G遠程溫濕度傳感器在倉庫中的應用—蜂窩物聯(lián)
。為了更好的觀(guān)測和掌握溫濕度的變化,倉庫需要安裝溫濕度傳感器實(shí)時(shí)監測溫濕度狀態(tài),確保適宜貨物儲存的溫濕度環(huán)境。 蜂窩物聯(lián)倉庫存儲環(huán)境遠程監控系統由系統前端4G遠程
【ELF 1開(kāi)發(fā)板試用】溫濕度測試
1.開(kāi)發(fā)環(huán)境-ubuntu20.04
2.測試內容:測試溫濕度傳感。
測試步驟如下:
1.軟件下載
進(jìn)入官網(wǎng)下載的linux內核代碼,修改頂層makefile 修改arch和compile的值 適配
發(fā)表于 12-18 11:59
【ELF 1開(kāi)發(fā)板試用】板載資源測試4:體驗溫濕度傳感器
飛凌嵌入式ELF1開(kāi)發(fā)板(以下簡(jiǎn)稱(chēng)為“開(kāi)發(fā)板”)將溫濕度傳感器器AHT20集成在了底板上,此次依舊做最基礎的測試,以下是測試過(guò)程記錄。一、實(shí)驗名稱(chēng)ELF 1開(kāi)發(fā)板板載資源測試2:體驗
發(fā)表于 12-18 11:09
使用CW32單片機通過(guò)ESP8266連接OneNET物聯(lián)網(wǎng)平臺
這期視頻向大家介紹如何使用CW32單片機通過(guò)ESP8266連接OneNET物聯(lián)網(wǎng)平臺,發(fā)送溫濕度數據到平臺,并接受平臺的云控制。
立創(chuàng )·梁山派GD32F4】-DHT11溫濕度傳感器模塊移植過(guò)程
傳感器。其成本低、長(cháng)期穩定、可以測量相對濕度和溫度測量,并可以只使用一根數據線(xiàn)進(jìn)行溫濕度采集。
模塊來(lái)源
采購鏈接:
https://item.taobao.com/item.htm?spm
發(fā)表于 08-30 15:15
【Start_DSC28034PNT湖人開(kāi)發(fā)板免費體驗】開(kāi)發(fā)板使用2
接上文 【Start_DSC28034PNT湖人開(kāi)發(fā)板免費體驗】開(kāi)發(fā)板使用1
| # 導入工程選擇從下載的demo:H:\\\\武漢芯源CW32飯盒
發(fā)表于 08-19 10:11
【CW32飯盒派開(kāi)發(fā)板試用體驗】武漢芯源CW32飯盒使用經(jīng)驗
keil5MDK開(kāi)發(fā)CW32F030
1.下載MDK
2.下載芯片相關(guān)的固件庫
我用的是芯片是CW32F030系列,所以下載相應的固件庫
下載地址:https://www.whxy.com
發(fā)表于 08-02 15:47
揭秘CW32飯盒派:手機APP/小程序與評估板的雙向通訊功能!
CW32飯盒派是一款基于CW32F030C8T6的開(kāi)發(fā)板。板載資源豐富:一電位器、蜂鳴器、3路用戶(hù)按鍵、3路指示燈、USART接口、電源接口、下載接口等等,預留出了眾多傳感器接口,使平
【CW32飯盒派開(kāi)發(fā)板試用體驗】+萬(wàn)物互聯(lián)之溫濕度顯示
的圖案更加漂亮和美觀(guān)。對于UI設計,我涉及的面比較窄,以后的好好利用飯盒派這款多接口的帶屏幕的開(kāi)發(fā)板。對于刷新,我是500ms調用一次溫濕度采集
發(fā)表于 06-26 20:33
【CW32飯盒派開(kāi)發(fā)板試用體驗】+串行通信與MP3播放控制
CW32飯盒派提供了多個(gè)串行接口,提供串口可進(jìn)行數據的交互和串口設備的控制,這里是利用串口來(lái)控制MP3播放模塊,從而使飯盒派能輕松地實(shí)現音樂(lè )
發(fā)表于 06-19 09:41
評論