项目一:基于stm32的阿里云智慧消防监控系统

若该文为原创文章,转载请注明原文出处。

Hi,大家好,我是忆枫,今天向大家介绍一个单片机项目。

一、简介

       智慧消防监控系统,是用于检测火灾,温度,烟雾的监控系统。以 stm32单片机为核心外加 MQ-2 型半导体电阻式雾敏感器件的火灾报警器,实现声光报警、 OLED显示,故障自诊断、 浓度显示、 报警限设置、及APP远程监控,控制等功能。是一种结构简单、 性能稳定、 使用方便、 价格低廉、智能化的火灾报警器, 具有一定的实用价值。

二、系统设计

 智慧消防监控系统结构框图如下图所示,系统以单片机为核心,配合外围电路共同完成:

  • 信号采集
  • 温湿度,浓度等显示
  • 上下限显示,及状态显示
  • 声音及闪烁报警
  • 按键输入,上下限设置
  • 水泵等控制
  • APP通信

1、烟雾浓度显示

通过oled显示可燃烟雾的浓度值, 并且可以切换到设置状态, 通过按键设置或者更改报警限值, 以便于用户或检测人员随时观测烟雾浓度及更改报警限。

2、温湿度传感器

使用的是DHT11 数字温湿度传感器,一款含有已校准数字信号输出的温湿度复合传感器,内部由一个 8 位单片机控制一个电阻式感湿元件和一个 NTC 测温元件。MCU通过单总线协议,读出DHT11的温度和适度。

3、WIFI模块

MCU和APP是通过WIFI实现远程控制的,使用的是ESP8266,MCU通过AT指令和ESP8266交互,服务器采用阿里云,通信协议为MQTT.

整体功能是,通过按键设置阈值,OLED显示时检测烟雾,火焰,温度等,当检测到火或温度,烟雾达到预设值,通过声光方式,报警提示,并自动联动水泵开关,通过WIFI实时上传数据到阿里云,APP实时检测各个传感器及蜂鸣器,水泵等状态,也可以远程控制水泵,蜂鸣器等。

三、APP实现

APP开发使用的是App inventor开发,是一款可视化编程环境,采用搭积木的方式快速建立应用程序,并且可以结合AI伴侣,极其便利的在手机上进行测试和应用。

APP界面

 

四、MCU部分代码

 初始化

  initSysTick();  initADC();     // ADC初始化initUART();    // 串口1初始化initUART2();   // 串口2初始化,ESP8266initLED();     // LED初始化initKey();     // 按键初始化initRelay();   // 继电器和蜂鸣器初始化initDHT11();   // 温湿度传感器initIIC();     // I2C初始化initOLED();    // OLED初始化initNVIC(NVIC_PriorityGroup_2);

定时采集温湿度


void TIM3_IRQHandler(void)
{if(TIM_GetITStatus(TIM3, TIM_IT_Update) == SET){TIM_ClearITPendingBit(TIM3, TIM_IT_Update);if(++n > 10){n=0;DHT11_data = readDHT11();device.Humidity = DHT11_data >> 8;device.Temperature = DHT11_data & 0x00FF;toggleLED();} }
}

数据采集实时显示

/*数据采集显示*/if(++i>3){i = 0;showNumber(40,2,device.Humidity,DEC,3,FONT_16_EN);showNumber(40,4,device.Temperature,DEC,3,FONT_16_EN);showNumber(80,4,set_temperature,DEC,3,FONT_16_EN);showNumber(40,6,device.Lux,DEC,4,FONT_16_EN);device.Lux = getConvValueAve(10,1000);}

五、板子及APP

 

如有侵权,或需要完整代码,请及时联系博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52223.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AcWing1171. 距离(lcatarjan)

输入样例1&#xff1a; 2 2 1 2 100 1 2 2 1输出样例1&#xff1a; 100 100输入样例2&#xff1a; 3 2 1 2 10 3 1 15 1 2 3 2输出样例2&#xff1a; 10 25 #include<bits/stdc.h> using namespace std; typedef long long ll; const int N2e55; int n,m,x,y,k,r…

selenium 和 chromedriver 使用的一些总结

1 selenium 下载地址 selenium PyPIhttps://pypi.org/project/selenium/ 2 chromedriver 下载地址 &#xff0c;可以下载最新版的 chromedriver ChromeDriver - WebDriver for Chrome - Downloadshttps://chromedriver.chromium.org/downloadsChrome for Testing availabi…

忘掉MacType吧,TtfAutoHint手工删除ttc、ttf字体的hinting,微软雅黑字体更显平滑

Windows的ClearType渲染字体方式&#xff0c;结合臭名昭著的hinting技术使微软雅黑字体备受争议&#xff0c;正所谓&#xff1a;成也hinting&#xff0c;败也hinting。 首先什么是hinting&#xff1f; Hinting 这个词一直都没有中文名称&#xff0c;我用粤语将它音译为“牵挺”…

Spring声明式事务@Transactional的一些问题的测试及求证

1.Spring的声明式事务Transactional问题 前提&#xff1a;有两个方法&#xff0c;a方法对a表做修改操作&#xff0c;b方法对b表做修改操作 a方法调用b方法&#xff0c;然后a方法报错&#xff0c;伪代码如下 public void a() {//数据库修改操作CompensateLogDO compensateLogDO…

《Linux从练气到飞升》No.07 Linux第一个小程序-进度条的实现

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

尚品汇总结一:后台商品管理(面试专用)

项目模块&#xff1a; 后台管理模块 分类管理 平台属性管理 品牌管理 品牌与分类管理 SPU管理&#xff08;销售属性&#xff09; SKU管理&#xff08;上下架&#xff09; 商品详情 购物车 订单 支付 秒杀 登录 &#xff1a;账号密码、手机验证码、微信扫码 手机验…

Docker入门及安装

文章目录 1.Docker概述:1.什么是docker2.为什么使用docker3.docker优点4.docker资源网址 2.Docker安装1.卸载旧版本dorcker(非必要)2.设置Docker仓库安装docker引擎4.启动验证docker卸载docker 3.Docker底层原理1.docker的结构和基本概念2.docker为什么比虚拟机快 1.Docker概述…

【iOS安全】OpenSSH使用

安装OpenSSH 在 Cydia 中直接查找和安装 OpenSSH 使用OpenSSH http://orinchen.github.io/blog/2014/01/15/install-and-use-openssh-on-ios/ 保证PC和iPhone在同一网段下 查看iPhone的IP地址 ssh root10.168.xx.xx 口令默认是alpine 或者也可以使用XShell等集成终端

企业上云实施路线图

企业上云步骤主要分为规划、设计、实施、验证、运维五个阶段。https://articles.e-works.net.cn/cloud/article144684.htm

机器学习---概述(一)

文章目录 1.人工智能、机器学习、深度学习2.机器学习的工作流程2.1 获取数据集2.2 数据基本处理2.3 特征工程2.3.1 特征提取2.3.2 特征预处理2.3.3 特征降维 2.4 机器学习2.5 模型评估 3.机器学习的算法分类3.1 监督学习3.1.1 回归问题3.1.2 分类问题 3.2 无监督学习3.3 半监督…

【大数据】ELK最简入门案例(带你进入ELK世界)

文章目录 1. 前言2. 安装3. 启动ELK启动Elasticsearch启动Kibana启动Logstash 4. 测试ELK环境 本文通过最简单纯正的案例带你入门ELK世界。 1. 前言 ELK是Elasticsearch、Logstash、Kibana的缩写&#xff0c;如果对Elasticsearch、Logstash、Kibana不是很了解&#xff0c;可以…

SpringBoot使用@Autowired将实现类注入到List或者Map集合中

前言 最近看到RuoYi-Vue-Plus翻译功能 Translation的翻译模块配置类TranslationConfig&#xff0c;其中有一个注入TranslationInterface翻译接口实现类的写法让我感到很新颖&#xff0c;但这种写法在Spring 3.0版本以后就已经支持注入List和Map&#xff0c;平时都没有注意到这…