当前位置:   article > 正文

毕业设计 基于云平台的火灾报警系统设计与实现 - stm32 物联网 单片机 OneNET云平台_基于物联网火灾报警实验报告

基于物联网火灾报警实验报告


0 简介

Hi,大家好,学长今天向大家介绍一个 单片机项目

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

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

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口的电平会发生变化,进而提交到云平台的数据会有变化。

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

在这里插入图片描述

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

在这里插入图片描述

6 最后

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/239363
推荐阅读
相关标签
  

闽ICP备14008679号