• 【毕业设计】基于云平台的火灾报警器 - stm32 物联网 单片机 OneNET云平台



    0 简介

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目

    基于云平台的火灾报警器 - stm32 物联网 单片机 OneNET云平台

    大家可用于 课程设计 或 毕业设计


    单片机-嵌入式毕设选题大全及项目分享:

    https://blog.csdn.net/m0_71572576/article/details/125409052


    1 项目简介

    这个项目项目借用Keil uVision5单片机C语言开发系统编写,通过J-Link驱动下载HEX程序,烧录到STM32F407开发板中运行。

    实现火焰监测、将获取的数据在OLED屏上显示、再利用WIFI模块连接热点将数据传输到onenet云平台,通过串口中断实现云平台或手机无线控制功能。

    2 开发环境

    开发环境

    • 软件环境:window
    • 硬件环境:STM32F407

    开发工具

    • Keil uVision5、字模PCtoLCD2002、串口调试stc-isp-15xx

    使用模块

    • 火焰传感器
    • wifi模块ESP8266
    • OLED屏

    3 火焰传感器

    在这里插入图片描述
    传感器模块在环境火焰光谱或者光源达不到设定阈值时,DO 口输出低电平,当外界环境火焰光谱或者光源超过设定阈值时,模块 DO口输出高电平
    引脚说明(这个传感器有三个引脚的也有两个引脚的)我这里介绍三个引脚的

    在这里插入图片描述
    stm32接收火焰传感器数据,代码实现

    #include "stm32f10x.h"
    #define GPIO_FIRE_RCC  RCC_APB2Periph_GPIOA
    #define GPIO_FIRE_PORT GPIOA//选择GPIOA寄存器
    #define GPIO_FIRE_PIN  GPIO_Pin_1 //引脚1
    void FIRE_CONFIG(void	);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    fire.h

    #include "fire.h"
    #include "stm32f10x.h"
    
    void FIRE_CONFIG(void)
    {
    	
    	GPIO_InitTypeDef GPIO_FIRE;
    	
    	/*配置时钟*/
    		//RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
    	RCC_APB2PeriphClockCmd(GPIO_FIRE_RCC,ENABLE);
    	
    	GPIO_FIRE.GPIO_Pin  = GPIO_FIRE_PIN;
    	GPIO_FIRE.GPIO_Mode =  GPIO_Mode_IN_FLOATING;//浮空输入模式
    	
    	/*配置GPIO 输入*/
    		//void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
    	GPIO_Init(GPIO_FIRE_PORT,&GPIO_FIRE);
    	
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    main.c

    #include "stm32f10x.h"
    #include "fire.h"
    #include "beep.h"
    
    
    //毫秒级的延时
    void delay_ms(u16 time){    
     
       u16 i=0;  
     
       while(time--){
     
          i=12000;  //自己定义
          while(i--) ;    
       }
    }
    
    int main(void)
    {
    	/*初始化火焰传感器*/
    	FIRE_CONFIG();
    	
    	/*初始化蜂鸣器感器*/
    	BEEP_CONFIG();
    	GPIO_ResetBits(GPIO_BEEP_PORT,GPIO_BEEP_PIN);//一上电蜂鸣器不响
    	
    	//delay_ms(2000);
    	
    	
    	while(1){
    		/*如果检测到低电平则蜂鸣器报警*/
    			//uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
    		if(GPIO_ReadInputDataBit(GPIO_FIRE_PORT,GPIO_FIRE_PIN)){
    			
    				//void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
    			GPIO_ResetBits(GPIO_BEEP_PORT,GPIO_BEEP_PIN);//否则就报警
    		}else{
    			
    				//void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
    			
    			GPIO_SetBits(GPIO_BEEP_PORT,GPIO_BEEP_PIN);//没有检测到低电平蜂鸣器不响
    			
    			
    		}
    		
    		
    		
    	}
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    4 连接OneNET云平台

    软件使用基于OneNET_Demo_M6311_EDP_SHT20的官方Demo进行修改。

    禁用M6311模块而使用ESP8266模块。

    上传数据时添加报警数据流。

    在这里插入图片描述
    添加触发器设置邮件通知功能。

    在这里插入图片描述
    添加在线APP,该APP可以查看当前的温湿度和最近的温湿度曲线,还有最近的报警曲线。

    在这里插入图片描述

    5 演示效果

    在这里插入图片描述
    当我们模拟火苗时,该IO口的电平会发生变化,进而提交到云平台的数据会有变化。

    在这里插入图片描述
    此时邮件会收到报警信息

    在这里插入图片描述

    同样手机也会收到报警信息。

    在这里插入图片描述


    单片机-嵌入式毕设选题大全及项目分享:

    https://blog.csdn.net/m0_71572576/article/details/125409052


    6 最后

  • 相关阅读:
    如何做好一个管理者
    什么是WordPress
    java SpringBoot 自己写的类 调用 service 层的方法
    [论文笔记]DSSM
    Python List 中的append 和 extend 的区别
    基于MUSIC算法的二维超声波成像matlab仿真
    HPA控制器
    完美的分布式监控系统 Prometheus与优雅的开源可视化平台 Grafana
    时序数据库选型
    Redis Key-Value数据库 【高级】
  • 原文地址:https://blog.csdn.net/m0_71572576/article/details/125620467