基于STM32单片机的烟雾测量系统设计

描述

功能介绍

 

本设计选用MQ-2烟雾传感器、温度传感器以及STM32F103单片机作为核心器件并与其他电子技术相结合,通过STM32F103单片机控制传感器对检测地点的烟雾进行实时检测,并把检测结果进行数据信息处理,可以实现浓度显示、报警及排气等功能。

 

系统框图

 

传感器

传感器

传感器

 

原理图

 

传感器

 

系统主程序设计及流程图

 

传感器

 

源代码

 

 

 

//C库
#include 
//单片机头文件
#include "sys.h"
//硬件驱动
#include "delay.h"
#include "usart.h"
#include "mq2.h"
#include "timer.h"
#include "gui.h"
#include "LCD.h"
#include "key.h"
#include "beep.h"
#include "exti.h"
#include "led.h"
#include "adc.h"


float value_mq2 = 0.0;    //烟雾浓度变量
float value_max = 50;    //阈值


//硬件初始化
void Hardware_Init(void)
{
  u8 i = 10;
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级


  delay_init();      //延时函数初始化


  LCD_Init();           //液晶屏初始化
  LCD_Clear(GRAY0);    //清屏
  Gui_DrawFont_GBK16(3,10,BLUE,GRAY0,(u8 *)"系统正在初始化");
  EXTIX_Init();       //外部中断初始化
  Usart1_Init(115200);  //串口1初始化为115200
  LED_Init();        //LED灯初始化
  KEY_Init();        //按键初始化
  BEEP_Init();      //蜂鸣器初始化
  ADCx_Init();      // ADC 初始化


  //MQ2加热时间
  while(i --)
  {
    delay_ms(20000);    
    delay_ms(20000);
  }


  Gui_DrawFont_GBK16(4,30,RED,GRAY0,(u8*)"设备初始化完成");
}


int main(void)
{
  char str[] = "";


  Hardware_Init();    //初始化外围硬件  
  GENERAL_TIM_Init();    //1MS系统定时


  LCD_Clear(BLACK);    //清屏
    GUI_DrawRectangle(1, 1, 128-2, 128-2, WHITE);    //边框
   Gui_DrawFont_GBK16(25,4,BLACK,GRAY0,(u8 *)" 系统监控 ");
  Gui_DrawFont_GBK16(4,50,RED,BLACK,(u8 *)"阈值:50 ppm ");


  while(1)
  {      
    /*MQ2传感器获取烟雾数据*/  
    value_mq2 = MQ2_GetPPM();
    memset(str, 0, sizeof(str));
    sprintf(str, "烟雾:%.2fppm ",value_mq2);
    Gui_DrawFont_GBK16(4,30,BLUE,BLACK,(u8 *)str);//显示




    if(value_mq2 >= value_max)//判断是否超过阈值
    {
      BEEP = 0;        //超过阈值,蜂鸣器响叫
    }
    else
    {
      BEEP = 1;        //正常范围,蜂鸣器关闭
    }


    LED1 = !LED1;        //程序运行指示灯
    delay_ms(1000);
  }
}

 

 

 审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分