久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2045|回復: 1
收起左側

基于STM32的工地環境檢測程序

[復制鏈接]
ID:734465 發表于 2020-4-21 16:08 | 顯示全部樓層 |閱讀模式
里面包括DTH11溫濕度采集、PM2.5濃度采集等模塊,程序詳細

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "key.h"  
  7. #include "sram.h"   
  8. #include "malloc.h"  
  9. #include "sdio_sdcard.h"   
  10. #include "malloc.h"
  11. #include "w25qxx.h"   
  12. #include "ff.h"  
  13. #include "exfuns.h"   
  14. #include "fontupd.h"
  15. #include "text.h"       
  16. #include "string.h"       
  17. #include "math.h"       
  18. #include "gp2y1014au.h"
  19. #include "dht11.h"
  20. #include "beep.h"
  21. #include "blu.h"
  22. #include "fan.h"
  23. #include "rtc.h"
  24. #include "sound.h"
  25. #include "adc.h"

  26. void Home_page_masage(void)
  27. {
  28.         Show_Str(35,1,240,24,"Based on STM32",24,0);                        
  29.         Show_Str(30,26,240,24,"Site environmen",24,0);
  30.         Show_Str(12,51,240,24,"monitorting system",24,0);

  31.         Show_Str(60,130,240,16,"TEMP:",16,0);
  32.         Show_Str(150,130,240,16,"C",16,0);
  33.        
  34.         Show_Str(60,170,240,16,"HUMI:",16,0);
  35.         Show_Str(150,170,240,16,"RH",16,0);
  36.        
  37.         Show_Str(60,210,240,16,"PM2.5:",16,0);
  38.         Show_Str(150,210,240,16,"um",16,0);
  39.        
  40.         Show_Str(60,250,240,16,"NOISE:",16,0);
  41.        
  42.         Show_Str(60,290,240,16,"FAN:",16,0);
  43. }


  44. int main(void)
  45. {        
  46.         u8 key;                                //鍵值
  47.         u32 temp;
  48.         u32 humi;
  49.         u16 PM_data;
  50.         char temp_data[64] = {0};
  51.         char humi_data[64] = {0};
  52.         char pm_data[64] = {0};
  53.         char zs_data[64] = {0};
  54.         char fs_data[64] = {0};
  55.        
  56.         u8 timbuf[40];
  57.         u8 daybuf[40];
  58.         u8 weekbuf[40];
  59.         u8 tbuf[40];
  60.         RTC_TimeTypeDef RTC_TimeStruct;
  61.         RTC_DateTypeDef RTC_DateStruct;
  62.         GPIO_InitTypeDef  GPIO_InitStructure;

  63.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能GPIOA時鐘
  64.        
  65.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
  66.        
  67.        
  68.         delay_init(168);  //初始化延時函數
  69.         uart_init(115200);                //初始化串口波特率為115200
  70.         LED_Init();                                        //初始化LED
  71.        
  72.         LCD_Init();                                                        //LCD初始化  
  73.         KEY_Init();                                                        //按鍵初始化  
  74.         W25QXX_Init();                                        //初始化W25Q128
  75.         my_mem_init(SRAMIN);                //初始化內部內存池
  76.         my_mem_init(SRAMCCM);                //初始化CCM內存池
  77.         exfuns_init();                                        //為fatfs相關變量申請內存  
  78.   f_mount(fs[0],"0:",1);         //掛載SD卡
  79.         f_mount(fs[1],"1:",1);         //掛載FLASH.
  80.         POINT_COLOR=BLUE;
  81.        
  82.         init_dht11();                                        //溫濕度初始化
  83.         Adc_Init();                                                //PM2.5初始化
  84.         USART3_Init(9600);                //初始化藍牙
  85.         Fan_Init();                                                //風扇初始化
  86.         Adc_Sound_Init();                        //噪聲傳感器初始化
  87.         My_RTC_Init();                                 //初始化RTC

  88.         RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,0);                //配置WAKE UP中斷,1秒鐘中斷一次
  89. /*
  90. //注意事項:
  91. //第一次請將時間改為當前的正常時間,編譯后下載到開發板上,下次修改代碼時必須將這兩句屏蔽掉,以后開發板即使斷電后也會自動同步時間
  92. //        RTC_Set_Time(15,10,00,RTC_H12_PM);        //設置時間   
  93. //        RTC_Set_Date(19,1,13,7);                //設置日期
  94. */
  95.        
  96.   //GPIOF9,F10初始化設置
  97.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;//LED0和LED1對應IO口
  98.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通輸出模式
  99.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出
  100.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  101.   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  102.   GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
  103.        
  104.         GPIO_SetBits(GPIOB,GPIO_Pin_15);
  105.        
  106.         Home_page_masage();
  107.         POINT_COLOR=RED;
  108.                 while(1)
  109.                 {
  110.                         key=KEY_Scan(0);                //掃描按鍵
  111.                        
  112.                         RTC_GetTime(RTC_Format_BIN,&RTC_TimeStruct);
  113.                         sprintf((char*)timbuf,"%02d:%02d:%02d",RTC_TimeStruct.RTC_Hours,RTC_TimeStruct.RTC_Minutes,RTC_TimeStruct.RTC_Seconds);
  114.                         //LCD_ShowString(30,75,210,16,16,tbuf);       

  115.                         RTC_GetDate(RTC_Format_BIN, &RTC_DateStruct);
  116.                         sprintf((char*)daybuf,"20%02d-%02d-%02d",RTC_DateStruct.RTC_Year,RTC_DateStruct.RTC_Month,RTC_DateStruct.RTC_Date);
  117.                         //LCD_ShowString(30,95,210,16,16,tbuf);       
  118.                         sprintf((char*)weekbuf,"%d",RTC_DateStruct.RTC_WeekDay);
  119.                         //LCD_ShowString(30,115,210,16,16,tbuf);
  120.                        
  121.                         sprintf((char*)tbuf,"%s/%s/%s",daybuf,timbuf,weekbuf);
  122.                         LCD_ShowString(30,95,210,16,16,tbuf);
  123.                        
  124.                         LCD_ShowxNum(110,250,Get_Adc_Average_Sound(5,18),6,16,0);//聲音傳感器
  125.                        
  126.                         PM_data = Get_GP2Y_Average(10);//PM2.5的值的獲取
  127.                         LCD_ShowxNum(100,210,PM_data,6,16,0);
  128.                        
  129.                         if(PM_data >300)
  130.                                                 Fan_Deflect(1);//風扇正
  131.                         if(PM_data < 300)
  132.                                                 Fan_Deflect(0);//風扇ting
  133.                        
  134.                         if(Get_Adc_Average_Sound(5,18) > 1300 || PM_data > 300)
  135.                         {
  136.                                 GPIO_ResetBits(GPIOB,GPIO_Pin_15);//設置高,燈滅
  137.                                         delay_ms(200);
  138.                                 GPIO_SetBits(GPIOB,GPIO_Pin_15);//設置高,燈滅
  139.                                         delay_ms(200);
  140.                                        
  141.                         }
  142.                        
  143.                         get_temp_humi(&temp,&humi);//溫濕度的獲取
  144.                         if(temp > 0 && humi > 0)
  145.                         {
  146.                                 LCD_ShowxNum(100,130,temp,6,16,0);
  147.                                 LCD_ShowxNum(100,170,humi,6,16,0);
  148.                                
  149.                                 switch(data)
  150.                                 {
  151.                                         case'T':
  152.                                         {
  153.                                                 sprintf(temp_data, "%s %d\r\n", "temp:",temp);
  154.                                                         usart3_send_str(temp_data);
  155.                                                 data =2;
  156.                                         };break;
  157.                                         case'H':
  158.                                         {
  159.                                                 sprintf(humi_data, "%s %d\r\n", "humi:",humi);
  160.                                                         usart3_send_str(humi_data);
  161.                                                 data =2;
  162.                                         };break;
  163.                                         case'P':
  164.                                         {
  165.                                                 sprintf(pm_data, "%s %d\r\n", "pm2.5:",PM_data);
  166.                                                         usart3_send_str(pm_data);
  167.                                                 data =2;
  168.                                         };break;
  169.                                        
  170.                                 }

  171.                                         if(temp > 30 || humi >90)
  172.                                                 Fan_Deflect(1);//風扇正
  173.                                         if(temp < 20 || humi < 40)
  174.                                                 Fan_Deflect(2);//風扇反
  175.                                         if((humi > 50 && humi < 90)  || (temp < 30 && temp > 20))
  176.                                                 Fan_Deflect(0);//風扇ting
  177.                                
  178.                                 if(temp > 38 || humi > 90)
  179.                                 {
  180.                                         GPIO_ResetBits(GPIOB,GPIO_Pin_15);//設置高,燈滅
  181.                                         delay_ms(500);
  182.                                         GPIO_SetBits(GPIOB,GPIO_Pin_15);//設置高,燈滅
  183.                                         delay_ms(500);
  184.                                
  185.                                 }
  186.                         }
  187.                 }       
  188.         }
復制代碼

所有資料51hei提供下載:
Detection.7z (264.03 KB, 下載次數: 10)

51hei截圖20200421155132.png
回復

使用道具 舉報

ID:1 發表于 2020-4-22 02:35 | 顯示全部樓層
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产九一精品 | 精品一区电影 | 日韩午夜电影在线观看 | 99久久精品视频免费 | 成人亚洲精品 | 久久不射电影网 | 欧美网址在线观看 | 国产精品区二区三区日本 | 免费观看色 | 国产黄色小视频 | 精品国产久| 国产区在线免费观看 | 九九亚洲| 久久久久国产成人精品亚洲午夜 | 色婷婷综合久久久中文字幕 | 精品影院 | 国产又色又爽又黄又免费 | 国产欧美精品区一区二区三区 | 国产成人综合在线 | 在线欧美激情 | 久久精品成人 | 国产成人综合在线 | 亚洲天堂中文字幕 | 亚洲精品中文字幕在线观看 | 欧美高清成人 | 成人a视频在线观看 | 一区二区三区视频播放 | 成人性生交大免费 | 97国产一区二区精品久久呦 | 91在线网 | 免费久| 久久成人一区二区三区 | 一级片在线视频 | 青青久视频 | 欧美中国少妇xxx性高请视频 | 精品一二| 亚洲欧美一区二区三区1000 | 国产日韩精品在线 | 久久精品久久久 | 高清成人免费视频 | 福利久久 |