基于STM32单片机的火灾防盗系统设计

发布者:Lihua521最新更新时间:2024-08-30 来源: elecfans关键字:STM32  单片机 手机看文章 扫描二维码
随时随地手机看文章

一.系统概述

本次式设计的系统是以 STM32 单片机作为核心控制器,可以控制烟雾传感器火焰传感器对相关数据进行采集,可以通过红外对是否有人进行监测,当监测到火焰会控制短信提醒火灾危险,当红外识别到人且输入密码错误的时候会短信提醒有人闯入。需要有一个密码输入的功能。

74ee16b4-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000


二.仿真概述

1.系统内可以检测烟雾浓度、检测是否有火焰、检测是否有人,检测到火灾发生且有人闯入就会通过GSM进行远程提醒。使用矩阵键盘来输入密码的,当检测到人且密码输入不正确就会认为是有人闯入。

7526efca-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

2. 调节烟雾传感器的滑动变阻器可以调节烟雾的模拟输出量,烟雾的改变可以在显示端体现。

754706f2-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

3. 拨动人体检测的开关即模拟检测到人和检测不到人,在显示屏端也会相应的进行显示。

756639dc-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

4. 拨动火焰传感器的开关代表检测到火焰,此时在显示屏端会进行提醒并且会通过GSM发短信进行提醒,这里采用虚拟串口助手模拟短信的接收。

75918c04-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

虚拟串口助手的链接:


https://serial.keysking.com/


75a62ca4-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

5. 输入正确的密码12345就会显示yes

75c266d0-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

输入错就会显示error,并且如果检测到人且输入错就会提醒有人闯入

75ea26c0-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

76096fd0-31c3-11ef-a4c8-92fbcf53809c.jpg?imageView2/2/w/1000

三.程序设计


#include 

 #include 'adc2.h'

//

u8 Key;//按键检测

u8 Rxdat;

u8 dat[3];

u8 AIN0;

u8 beepflag;

u8 ack=1;

//

 

 

//

void Init_Test(void);

void Display(void);

//

 

int main(void)

{  

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //设置中断优先级分组为组2:2位抢占优先级,2位响应优先级

 

  OLED_Init();                        //PB6   PB7

 

  Key_Init();

  Adc2_Init();

//  Sim900A_Uart1_Init();

//  Sim900A_GSM_Uart1_Send_Message();

  Usart1_Init(9600);

  PCF8591_Init();

  

  OLED_ShowString(1,1,'Smo:');OLED_ShowString(1,8,'fla:');//OLED_ShowString(1,1,'have');OLED_ShowString(1,8,'not');

  

  OLED_ShowString(4,1,'Enter:');

  while(1)

  {

    KeyXY_Scan(&key,&Password);

    if(key!=0) 

    {

      input[inputflag]=Password;

      

      if(inputflag==0){sprintf((char*)disbuf,'%d',input[inputflag]);OLED_ShowString(4,7,disbuf);}

      if(inputflag==1){sprintf((char*)disbuf,'%d',input[inputflag]);OLED_ShowString(4,8,disbuf);}

      if(inputflag==2){sprintf((char*)disbuf,'%d',input[inputflag]);OLED_ShowString(4,9,disbuf);}

      if(inputflag==3){sprintf((char*)disbuf,'%d',input[inputflag]);OLED_ShowString(4,10,disbuf);}

      if(inputflag==4){sprintf((char*)disbuf,'%d',input[inputflag]);OLED_ShowString(4,11,disbuf);}

      if(inputflag==5){sprintf((char*)disbuf,'%d',input[inputflag]);OLED_ShowString(4,12,disbuf);}

      

    

      key=0;Password=0;

      inputflag++;

      

      if(inputflag==5)

      {

        for(i=0;i<5;i++)

        {

          if(input[i] == password[i])  YES++;

        }

        if(YES==5) 

        {   

          OLED_ShowString(3,1,'Yes');

          delay_ms(1000);

          OLED_ShowString(3,1,'                ');

          YES=0;

          OLED_ShowString(4,7,'     ');

        }

        else if(YES !=6  )//密碼錯誤

        {

          

          OLED_ShowString(3,1,'                ');

          OLED_ShowString(3,1,'Error');

          

          delay_ms(1000);

          OLED_ShowString(4,7,'     ');

          

          if(ren==0)

          {            

            OLED_ShowString(3,1,'                ');

            OLED_ShowString(3,1,'Send a message');

            

            delay_ms(1000);

            //Sim900A_GSM_Uart1_Send_Message();//

            printf('有人闯入');

            

            OLED_ShowString(3,1,'                ');

            OLED_ShowString(3,1,'Send Ok');

            

            delay_ms(1000);

          }

 

          

          OLED_ShowString(3,1,'                ');

          YES=0;

        }

        OLED_ShowString(3,1,'                ');

        inputflag=0;

      }

    }


关键字:STM32  单片机 引用地址:基于STM32单片机的火灾防盗系统设计

上一篇:基于STM32单片机的多功能水杯设计
下一篇:CAN总线学习笔记|STM32的CAN环回测试

推荐阅读最新更新时间:2026-03-22 10:34

什么是stm32单片机
stm32f103c8t6单片机是高校学生使用的最频繁的单片机了,被广泛的应用在课程设计,电子设计大赛,毕业设计中。其拥有非常优异的性能,同时价格低廉,参考资料多,是广大学生非ban必选的mcu。 单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已 。 或许大家有经常听起过最小系统板这个词儿,那么什么是最小系统板呢?其实最小系
[单片机]
【嵌入式】简评STM32单片机入门之路
【STM32可以做什么?】 STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域。 【用寄存器还是库函数?】 STM32有两种编程方式,一种是用寄存器的方式,另一种是库函数的方式。对于初学者而言,可能后者较容易上手。 学从难处学,用从易处用。学习阶段,能学多深就尽量学多深,这样基础会打得比较牢。不只是为了学STM32而学STM32,我们的目标是:学完STM32,换另一款芯片也能很快上手。基础有多牢固,换另一款芯片上手就有多快。 【学习重点】 一些基本的、通用的、常用的外设:GPIO输入输出(点灯、按键)、EXIT、TIMER、UART、I2C、SPI、ADC、DAC等,这些用得多,先把这些
[单片机]
stm32单片机与仿真下载器ST-LINK
__set_FAULTMASK(1);//关闭总中断 NVIC_SystemReset();//请求单片机重启 执行NVIC_SystemReset()函数不允许被打断,所以关总中断
[单片机]
STM32单片机使用注意事项
串口输入乱码 1.target 修改成 8.0 2.stm32Fxx.h 将 //#define HSE_VALUE ((uint32_t)25000000) /*! Value of the External oscillator in Hz */ 改成 #define HSE_VALUE ((uint32_t)8000000) /*! Value of the External oscillator in Hz */
[单片机]
MDK Debug时No target connected,STM32 ST-LINK Utility连接不上单片机的解决办法“Can not connect to target!
芯片下载程序成功,再次下载时出现,以下错误。 点击确认后,如下提示。 或提示如下。 不管怎么设置都侦测不到芯片。 使用STM32 ST-LINK Utility连接单片机时提示下边错误 “Can not connect to target! 解决办法,可用镊子把复位脚拉低,单击STM32 ST-LINK Utility连接按钮,松开镊子,就OK了!再把数据清除了。
[单片机]
MDK Debug时No target connected,<font color='red'>STM32</font> ST-LINK Utility连接不上<font color='red'>单片机</font>的解决办法“Can not connect to target!
stm32单片机使用到内部RAM的时候报RAM空间不够
经常遇到使用链表和结构中计算数组申请内存失败的情况,我的模板代码 startup文件中的宏定义 Heap_Size EQU 0x00000200,这里定义了512字节导致,手动修改这个地方的数值,因为单片机的内存是远远大于512字节的,具体和我们使用的stm32片子有关。我改为了Heap_Size EQU 0xFFFF 为64KB,再次编译就好了。 写那些自己遇到的问题,然后解决的方式,不断吸取经验,坚持直到看见成功.
[单片机]
STM32单片机复位后GPIO电平状态
stm32单片机gpio共有八种工作模式,如下图: stm32单片机是一个低功耗的处理器,当复位以后,gpio默认是高阻状态,也就是浮空输入。这样的好处是: 1.降低了单片机的功耗 2.把gpio模式的选择权交给用户 3.在用户使用的时候,都会在gpio外加一个上拉或下拉电阻,这样当单片机复位以后就能够清楚的知道引脚的电平情况
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font>复位后GPIO电平状态
[单片机][STM32][HAL][MQ2]烟雾报警
/*************笔记**************** 1、CubeMX 定义任意一个引脚,作为数据脚,并对引脚作出如下配置: GPlO output level --High GPIO mode --Output Open Drain GPIO Pull-up/Pull-down --No pull-up and no pull-down Maximum output speed --LOW User label --DHT11 2、MQ2烟雾报警模块的引号引脚为PA5 本设计采用TTL输出(即高低电平) 低电平--差 高电平--良好 *************
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved