標題: 基于STM32的DHT11濕度傳感器源程序 [打印本頁]

作者: LLLBBB    時間: 2017-6-1 23:08
標題: 基于STM32的DHT11濕度傳感器源程序
分享一套STM32的濕度傳感器程序
實驗器材:
    探索者STM32F4開發(fā)板
   
實驗?zāi)康?
    學習DHT11數(shù)字溫濕度傳感器的使用.
   
硬件資源:
    1,DS0(連接在PF9)
    2,串口1(波特率:115200,PA9/PA10連接在板載USB轉(zhuǎn)串口芯片CH340上面)
    3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模塊(通過FSMC驅(qū)動,FSMC_NE4接LCD片選/A6接RS)
    4,DHT11傳感器一個(接在PG9上).

實驗現(xiàn)象:
    本實驗開機的時候先檢測是否有DHT11存在,如果沒有,則提示錯誤。只有在檢測到DHT11之后才開始讀取溫濕
    度值,并顯示在LCD上,如果發(fā)現(xiàn)了DHT11,則程序每隔100ms左右讀取一次數(shù)據(jù),并把溫濕度顯示在LCD上。同
    樣我們也是用DS0來指示程序正在運行。
   
注意事項:
    1,4.3寸和7寸屏需要比較大電流,USB供電可能不足,請用外部電源適配器(推薦外接12V 1A電源).
    2,本例程在LCD_Init函數(shù)里面(在ILI93xx.c),用到了printf,如果不初始化串口1,將導(dǎo)致液晶無法顯示!!  
    3,需自備DHT11數(shù)字溫濕度傳感器一個,并插在開發(fā)板的U12位置(根據(jù)絲印插,網(wǎng)面朝外)

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "dht11.h"

  7.   
  8. int main(void)
  9. {
  10.         u8 t=0;                            
  11.         u8 temperature;              
  12.         u8 humidity;  
  13.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
  14.         delay_init(168);  //初始化延時函數(shù)
  15.         uart_init(115200);                //初始化串口波特率為115200
  16.        
  17.         LED_Init();                                        //初始化LED
  18.         LCD_Init();                                        //LCD初始化          
  19.        
  20.         POINT_COLOR=RED;//設(shè)置字體為紅色
  21.         LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
  22.         LCD_ShowString(30,70,200,16,16,"DHT11 TEST");       
  23.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  24.         LCD_ShowString(30,110,200,16,16,"2014/5/7");
  25.         while(DHT11_Init())        //DHT11初始化       
  26.         {
  27.                 LCD_ShowString(30,130,200,16,16,"DHT11 Error");
  28.                 delay_ms(200);
  29.                 LCD_Fill(30,130,239,130+16,WHITE);
  30.                 delay_ms(200);
  31.         }                                                                  
  32.         LCD_ShowString(30,130,200,16,16,"DHT11 OK");
  33.         POINT_COLOR=BLUE;//設(shè)置字體為藍色
  34.         LCD_ShowString(30,150,200,16,16,"Temp:  C");         
  35.         LCD_ShowString(30,170,200,16,16,"Humi:  %");
  36.         while(1)
  37.         {                        
  38.                 if(t%10==0)//每100ms讀取一次
  39.                 {                                                                          
  40.                         DHT11_Read_Data(&temperature,&humidity);                //讀取溫濕度值                                            
  41.                         LCD_ShowNum(30+40,150,temperature,2,16);                //顯示溫度                             
  42.                         LCD_ShowNum(30+40,170,humidity,2,16);                        //顯示濕度                   
  43.                 }                                  
  44.                  delay_ms(10);
  45.                 t++;
  46.                 if(t==20)
  47.                 {
  48.                         t=0;
  49.                         LED0=!LED0;
  50.                 }
  51. ……………………

  52. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
DHT11數(shù)字溫濕度傳感器實驗.rar (472.37 KB, 下載次數(shù): 197)



作者: admin    時間: 2017-6-2 00:28
好資料,51黑有你更精彩!!!
作者: abcde2    時間: 2017-9-18 17:14
不錯,挺有幫助的。
作者: lyh1987a    時間: 2017-11-9 01:29

不錯,挺有幫助的。
作者: asj    時間: 2018-1-10 09:18
不錯,挺有幫助的。
作者: 絕海之魂    時間: 2018-5-25 00:17
好資料,51黑有你更精彩!!!

作者: 56465465    時間: 2018-8-3 21:59
怎么打不開,顯示文件不存在
作者: 阿斯頓馬丁    時間: 2018-11-9 14:56
學習學習。。
作者: hanhfeng    時間: 2018-12-28 23:19
學習了學習了
作者: 菜鳥一枚666    時間: 2019-4-19 20:31
謝謝分享  很有幫助

作者: Mary521    時間: 2019-5-15 12:52
我買了怎么下載不了???
作者: 羽蒙yy    時間: 2019-5-17 13:57
挺有幫助的,謝謝
作者: 0714    時間: 2019-6-18 15:46
樓主樓主,求實驗原理圖
作者: winkle    時間: 2019-6-28 18:20
太好了,雪中送炭




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1