找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2936|回復: 3
收起左側(cè)

stm32F407單片機智能安防系統(tǒng)源碼

[復制鏈接]
ID:278568 發(fā)表于 2018-4-4 19:56 | 顯示全部樓層 |閱讀模式
智能安防系統(tǒng),各種模塊,超聲波,溫濕度傳感器,光敏,煙霧報警等等

單片機源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "sys.h"
  3. #include "Systick.h"
  4. #include "string.h"
  5. #include "usart.h"        
  6. #include "USART_Init.h"
  7. #include "DHT11.h"
  8. #include "WIFI_Init.h"
  9. #include "Ultrasound_Init.h"        
  10. #include "BreathLight_Init.h"        
  11. #include "LightSenser_Init.h"   
  12. #include "MQ2_Init.h"        
  13. #include "Beep.h"        
  14. #include "LED_X.h"        
  15. volatile char c;
  16. volatile int light;
  17. volatile int data;
  18. volatile int distance;
  19. volatile char key;
  20. char databuf[6];
  21. void GPIO()
  22. {
  23.         GPIO_InitTypeDef  GPIO_InitStructure;
  24.         
  25.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  26.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
  27.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//輸入模式
  28.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100Mhz的速率
  29.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//無上下拉1
  30.         
  31.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  32.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  33.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  34.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  35. }
  36. int main(void)
  37. {
  38.         int temp;
  39.         int flag=1;
  40.         int flag2=1;
  41.         Systick_init(168);//系統(tǒng)時鐘初始化為168Mhz
  42.         GPIO();
  43.         USART1_Config();
  44.   USART3_Config();
  45. /*********************************WIFI通信*************************************************************/        
  46.   WIFI_Init(); //WIFI 初始化
  47. /********************************待機狀態(tài)************************************************************/        
  48.             BreathLight_Init_gpio_out();                                                                                                          //配置1號燈為復用模式
  49.             BreathLight_Init_gpio_in();                                                                             //S1按鍵初始化
  50.             BreathLight_Init_time_init();                                                                          //定義與時間相關(guān)的結(jié)構(gòu)體,中斷相關(guān)的結(jié)構(gòu)體                                                
  51.             BreathLight_Init_ADC_Config();                                                                               //配置ADC3相關(guān)參數(shù)
  52.             BreathLight_Init_wait();                                                                                            //呼吸燈循環(huán),如果S1按鍵按下則退出呼吸燈模式         
  53.                         flag2=1;
  54.         while(flag2)
  55. {               
  56.           flag=1;
  57. /***********************************光敏LED感應*************************************************************/
  58.          while(1)         
  59.          {   data=MQ2_Init();        
  60.                         
  61.        if(data>1000)
  62.          Beep();
  63.                   light=BreathLight_Init_senddate();     //獲取光照強度                                                         
  64.                          BreathLight_Init_regpio_out_init();//LED端口初始化
  65.                    BreathLight_Init_system_key(light);  //根據(jù)光照強度亮燈
  66.                TX4();                        
  67.                          //TX3(); //發(fā)送光照強度給手機
  68.                    if(key=='s')
  69.                             break;
  70.          }
  71.          while(key=='s');
  72.          delay_ms(5);
  73.         while(flag)
  74.         {        
  75.                 temp=key-48;
  76.                   switch(key-48)                                                           
  77. /********************************超聲波測距離*********************************************************/
  78.                  {
  79.                                                 case 1:
  80.                                                         Ultrasound_gpio_out();  //超聲波端口初始化                                
  81.                                                         Ultrasound_gpio_in();
  82.                                                         distance=Ultrasound_Init_distance();
  83.                                                         TX1();  //發(fā)送距離數(shù)據(jù)到手機                                                      
  84.                                                         break;
  85. /********************************溫濕度**************************************************************/        
  86.                                                 case 2 :               
  87.                                                  DHT11_display();                  
  88.                                                         TX2();   //發(fā)送溫濕度                                             
  89.                                                          break;
  90. /********************************MQ2煙霧**************************************************************/         
  91.                                                 case 3:
  92.                                                         data=MQ2_Init();
  93.                                                         TX4();//發(fā)送煙霧數(shù)據(jù)到手機
  94.                                                         break;
  95. /********************************Beep******************************************************/               
  96.                                                 case 4:
  97.                                                         Beep();//響鈴2 s
  98.                                                         break;
  99. /********************************led******************************************************/                                                               
  100.                                                 case 5:case 6:case 7:case 8:case 9:                        
  101.                                                         LED_X(key-48);//響鈴2 s
  102.                                                         break;
  103. /********************************檢測是否退出************************************************************/               
  104.                                                 default:printf("yes");               
  105.                  }
  106.                         while( (key-48) ==temp )
  107.                          if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0 || key=='0' )
  108.                                 {
  109.                                         flag=0;        //如果S1按鍵按下則退出系統(tǒng)
  110.                                         break;
  111.                                 }
  112.                         if (key=='0')
  113.                                 flag2=0;
  114.                 }  
  115.         
  116.   }

  117. }
復制代碼

所有資料51hei提供下載:
智能安防系統(tǒng)code.rar (462.25 KB, 下載次數(shù): 37)


回復

使用道具 舉報

ID:1 發(fā)表于 2018-4-5 01:28 | 顯示全部樓層
能分享個原理圖嗎?都不知道用了哪些器件
回復

使用道具 舉報

ID:495679 發(fā)表于 2019-9-1 13:01 | 顯示全部樓層
能分享個原理圖嗎?
回復

使用道具 舉報

ID:92810 發(fā)表于 2025-1-22 11:23 | 顯示全部樓層
謝謝樓主分享,能分享個原理圖嗎?都不知道用了哪些器件?梢园l(fā)到郵箱294799014@qq.com嗎?
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表