找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2902|回复: 3
收起左侧

stm32F407单片机智能安防系统源码

[复制链接]
ID:278568 发表于 2018-4-4 19:56 | 显示全部楼层 |阅读模式
智能安防系统,各种模块,超声波,温湿度传感器,光敏,烟雾报警等等

单片机源程序如下:
  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);//系统时钟初始化为168Mhz
  42.         GPIO();
  43.         USART1_Config();
  44.   USART3_Config();
  45. /*********************************WIFI通信*************************************************************/        
  46.   WIFI_Init(); //WIFI 初始化
  47. /********************************待机状态************************************************************/        
  48.             BreathLight_Init_gpio_out();                                                                                                          //配置1号灯为复用模式
  49.             BreathLight_Init_gpio_in();                                                                             //S1按键初始化
  50.             BreathLight_Init_time_init();                                                                          //定义与时间相关的结构体,中断相关的结构体                                                
  51.             BreathLight_Init_ADC_Config();                                                                               //配置ADC3相关参数
  52.             BreathLight_Init_wait();                                                                                            //呼吸灯循环,如果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);  //根据光照强度亮灯
  66.                TX4();                        
  67.                          //TX3(); //发送光照强度给手机
  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();  //发送距离数据到手机                                                      
  84.                                                         break;
  85. /********************************温湿度**************************************************************/        
  86.                                                 case 2 :               
  87.                                                  DHT11_display();                  
  88.                                                         TX2();   //发送温湿度                                             
  89.                                                          break;
  90. /********************************MQ2烟雾**************************************************************/         
  91.                                                 case 3:
  92.                                                         data=MQ2_Init();
  93.                                                         TX4();//发送烟雾数据到手机
  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按键按下则退出系统
  110.                                         break;
  111.                                 }
  112.                         if (key=='0')
  113.                                 flag2=0;
  114.                 }  
  115.         
  116.   }

  117. }
复制代码

所有资料51hei提供下载:
智能安防系统code.rar (462.25 KB, 下载次数: 37)
回复

使用道具 举报

ID:1 发表于 2018-4-5 01:28 | 显示全部楼层
能分享个原理图吗?都不知道用了哪些器件
回复

使用道具 举报

ID:495679 发表于 2019-9-1 13:01 | 显示全部楼层
能分享个原理图吗?
回复

使用道具 举报

ID:92810 发表于 2025-1-22 11:23 | 显示全部楼层
谢谢楼主分享,能分享个原理图吗?都不知道用了哪些器件。可以发到邮箱294799014@qq.com吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表