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

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

3天內不再提示

CW32飯盒派開(kāi)發(fā)板溫濕度采集

華仔的編程隨筆 ? 來(lái)源:華仔的編程隨筆 ? 作者:華仔的編程隨筆 ? 2023-05-26 19:20 ? 次閱讀

實(shí)驗器材

  1. CW32飯盒派開(kāi)發(fā)板
  2. DHT11溫濕度傳感器

接線(xiàn)

開(kāi)發(fā)板 DHT11
VCC +
GND GND
PB1 OUT

程序

  1. 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ā)板,然后重啟效果如下:

image.png

聲明:本文內容及配圖由入駐作者撰寫(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
收藏 人收藏

    評論

    相關(guān)推薦

    CW32快速開(kāi)發(fā)入門(mén)

    CW32快速開(kāi)發(fā)入門(mén)
    的頭像 發(fā)表于 04-24 18:56 ?1286次閱讀
    <b class='flag-5'>CW32</b>快速<b class='flag-5'>開(kāi)發(fā)</b>入門(mén)

    溫濕度傳感器工作原理 溫濕度傳感器的接線(xiàn)方法

    溫濕度傳感器是一種用于測量環(huán)境溫度和相對濕度的裝置。它通常用于工業(yè)、農業(yè)、氣象、室內空調等領(lǐng)域。本文將詳細介紹溫濕度傳感器的工作原理和接線(xiàn)方法。 一、溫濕度傳感器的工作原理
    的頭像 發(fā)表于 02-14 18:00 ?5424次閱讀

    4G遠程溫濕度傳感器在倉庫中的應用—蜂窩物聯(lián)

    。為了更好的觀(guān)測和掌握溫濕度的變化,倉庫需要安裝溫濕度傳感器實(shí)時(shí)監測溫濕度狀態(tài),確保適宜貨物儲存的溫濕度環(huán)境。 蜂窩物聯(lián)倉庫存儲環(huán)境遠程監控系統由系統前端4G遠程
    的頭像 發(fā)表于 01-02 09:36 ?213次閱讀

    【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ā)送溫濕度數據到平臺,并接受平臺的云控制。
    的頭像 發(fā)表于 11-09 14:32 ?847次閱讀

    基于CW32的物聯(lián)網(wǎng)應用

    CW32】基于CW32的物聯(lián)網(wǎng)應用
    的頭像 發(fā)表于 11-02 15:55 ?416次閱讀
    基于<b class='flag-5'>CW32</b>的物聯(lián)網(wǎng)應用

    基于CW32熱敏電阻采集溫度應用

    基于CW32熱敏電阻采集溫度應用
    的頭像 發(fā)表于 10-25 16:45 ?295次閱讀
    基于<b class='flag-5'>CW32</b>熱敏電阻<b class='flag-5'>采集</b>溫度應用

    立創(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接口、電源接口、下載接口等等,預留出了眾多傳感器接口,使平
    的頭像 發(fā)表于 07-11 09:25 ?740次閱讀

    CW32飯盒開(kāi)發(fā)板試用體驗】+萬(wàn)物互聯(lián)之溫濕度顯示

    的圖案更加漂亮和美觀(guān)。對于UI設計,我涉及的面比較窄,以后的好好利用飯盒這款多接口的帶屏幕的開(kāi)發(fā)板。對于刷新,我是500ms調用一次溫濕度采集
    發(fā)表于 06-26 20:33

    基于CW32L083設計的超低功耗溫濕度

    基于CW32L083設計的超低功耗溫濕度計,可以用電池供電,實(shí)現數年超長(cháng)工作時(shí)間。
    的頭像 發(fā)表于 06-25 12:08 ?2.6w次閱讀
    基于<b class='flag-5'>CW</b>32L083設計的超低功耗<b class='flag-5'>溫濕度</b>計

    CW32飯盒開(kāi)發(fā)板試用體驗】+串行通信與MP3播放控制

    CW32飯盒提供了多個(gè)串行接口,提供串口可進(jìn)行數據的交互和串口設備的控制,這里是利用串口來(lái)控制MP3播放模塊,從而使飯盒能輕松地實(shí)現音樂(lè )
    發(fā)表于 06-19 09:41
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看