基于单片机的智能电子鼻的设计

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式

文章目录

    • 概要
  • 一、智能电子鼻系统的设计方案
    • 1.1智能电子鼻系统的设计思路
    • 1.2智能电子鼻系统的设计流程图
    • 1.3智能电子鼻系统的硬件数据清单及实物图
    • 1.4智能电子鼻系统的工作原理
  • 二、智能电子鼻系统的软件设计流程
    • 3.1智能电子鼻系统的总设计流程
    • 3.2 模数转换器模块设计流程
  • 三、实物展示
    • PCB制版设计
  • 四、结论
  • 五、 文章目录

概要

  智能电子鼻系统是围绕STM32单片机为中心而展开的,共延伸出三个功能模块,它们分别是空气质量PM2.5检测模块,煤气中毒预防模块和火灾报警模块。在PM2.5空气质量检测模块中,传感器首先检测检测空气中PM2.5的浓度后,通过显示器显示出结果,如果检测值高于正常值,那么对继电器部分通电。一氧化碳中毒预防模块,由传感器检测空气中CO浓度,若检测结果高于正常值,一方面单片机自动控制步进电动机工作进行开窗,另一方面给指定号码的手机进行GSM短信报警。火灾报警模块,由传感器检测烟雾浓度,若检测结果高于正常值,那么蜂鸣器报警,如果按下蜂鸣器停止按钮则停止报警。
关键词:STM32单片机;传感器;GSM短信报警

一、智能电子鼻系统的设计方案

1.1智能电子鼻系统的设计思路

S  TM32单片机是本次设计课题的核心,以STM32单片机为出发点而设计的智能电子鼻系统。本设计以STM32传感器为核心,有三个基础功能模块组成分别是PM2.5空气质量检测模块、一氧化碳中毒预防模块和火灾报警模块。
  在第一个模块中先由PM2.5传感器收集数据,经过A/D模数转换成电信号发送给STM32单片机进行数据处理,之后由显示器显示出实时数据,若测量浓度高于限定浓度,则单片机控制开关自动闭合给继电器器供电,可通过继电器旁边的指示灯是否变亮来判断继电器是否供电。
  在第二个模块中先由一氧化碳传感器收集数据,经过A/D模数传感器转换成电信号发送给STM32单片机进行数据处理,单片机经过公式对比得出测量浓度是否高于限定浓度的结果。若测量数据浓度超过单片机的限定数据浓度,则一方面单片机控制步进电动机转动,达到开窗的目的;另一方面单片机控制GSM报警系统给预先设置的手机号码发送短信进行报警,从而达到若室内无人也能及时收到信息并且降低室内一氧化碳浓度的目的。若后期测量数据浓度低于限定数据浓度,则STM32单片机控制步进电动机反向转动,从而实现关窗的功能。
  第三个模块中先由烟雾报警器收集数据,经过A/D模数转换器转换成电信号发送给STM32单片机进行数据处理,单片机经过公示对比得出测量浓度是否高于限定浓度的结果。若测量数据浓度超过阈值参数后,那么蜂鸣器进行报警,从而达到及时提醒人们寻找火源,为人们及时灭火或及时逃生争取时间。且该模块增加了蜂鸣器停止按钮,若人们想让蜂鸣器停止报警也可以实现。
  该设计硬件方面主要由STM32单片机,PM2.5传感器,一氧化碳传感器,烟感报警器,蜂鸣器,蜂鸣器停止按钮,显示器,步进电动机、GSM报警系统和A/D模数转换器等硬件组成。
  该设计软件方面共6000多行代码,主要由一个main主程序和多个子程序之间嵌套构成。其中stm32f10x是单片机的程序,SIM800是GSM短信报警的程序,KEY是按键的程序,MOTOR是步进电动机的程序,OLED是显示器的程序,ADC是模数转换的程序,FONT是字库的程序,USART是串口通信的程序,RELAY是继电器的程序,DHT11是温湿度的程序,DELAY是延迟的程序,设置为30S发送一次短信,从而避免连续触发。其中GSM短信报警的预留号码可以随意更改,只需在SIM800的程序里更改字符串即可,电话号码也是字符串,程序更改在SIM800中1698行。

1.2智能电子鼻系统的设计流程图

智能电子鼻系统的设计流程图如下所示,见图1-2。
在这里插入图片描述

图1-1 总体设计图

1.3智能电子鼻系统的硬件数据清单及实物图

本次设计使用的主要元件信息见下表1-1:

表1-1 元件清单
在这里插入图片描述

在这里插入图片描述

图1-2 实物图

1.4智能电子鼻系统的工作原理

  基于单片机的智能电子鼻的设计主要由三个小功能模块组成,以STM32F103C8T6单片机为中心。三个小模块是PM2.5传感器,CO传感器,烟感报警器;还有对应其功能的硬件如:显示器,空气净化器,步进电动机,GSM报警系统,蜂鸣器,蜂鸣器停止按钮,A/D转换器等。
PM2.5空气质量检测模块:
  本模块由PM2.5传感器、显示器和A/D转换器和继电器构成。经传感器检测空气中PM2.5的浓度后,经A/D模数转换后,由显示器显示出结果。其中PM2.5传感器设置的阈值参数为400ppm:若检测数值<400ppm则为正常范围;若检测数值>400ppm则超标。若浓度高于阈值参数,则予以通电进行下一步的处理工作,此时继电器予以供电,旁边的LED红色指示灯发亮,若没有供电,则LED红色指示灯不亮,可通过观察LED红色指示灯是否发亮来判断是不是通电。
煤气中毒预防模块:
  本模块由CO传感器、步进电动机控制开关窗、A/D模数转换和GSM短信报警组成。由传感器检测空气中CO浓度,经A/D模数转换后,CO传感器设置的浓阈值参数为50ppm:若检测数值<50ppm则为正常范围;若检测数值>50ppm则超标。若检测结果高于阈值参数,一方面单片机自动控制步进电动机工作进行开窗,另一方面给指定号码的手机进行GSM短信报警。
火灾报警模块:
  本模块由烟感报警器、蜂鸣器、A/D模数转换、GSM短信报警和蜂鸣器停止按钮组成。由传感器检测烟雾浓度,经A/D模数转换后,烟感报警器设置的阈值参数为250ppm:若检测数值<250ppm则为正常范围,若检测数值>250ppm则超标。若检测结果高于阈值参数,那么蜂鸣器报警,按下蜂鸣器停止按钮则停止报警。
  三个传感器的阈值参数设置完之后使用PM2.5传感器来检测空气中PM2.5的含量,使用CO传感器来检测空气中一氧化碳的含量,使用烟感报警器检测空气中烟雾浓度。数据经过A/D模数转换器处理后,由STM32单片机经过公式测算出所求浓度是否超标。当PM2.5浓度超标后,显示器显示实时浓度,同时开关闭合空气净化器开始工作。当CO浓度超标后,步进电动机开始转动实现开窗功能,同时GSM发送短信报警。当空气中烟雾浓度超标后,蜂鸣器报警,按下停止按钮那么停止报警。
  本课题中的限定浓度设定均已经过试验选为最佳数值,后期若想更改浓度数值也可以随时更改,使用时该系统放在任何位置均可进行气体监测。其中气体浓度单位是ppm,是相对于传感器满量程输出的电压值,公式=采集的电压/满量程电压,满量程是500ppm。测量数值精度为1ppm,最小测定值是1/100万即百万分之一,最大测定值500ppm,测量浓度范围是1ppm—500ppm。使用的温度范围-40℃—80℃均可,湿度低于95%都可以进行监测气体浓度。

二、智能电子鼻系统的软件设计流程

3.1智能电子鼻系统的总设计流程

本次课题设计的主体部分是由ZPH02-PM2.5传感器模块,A/D转换器模块,OLED液晶显示器模块,GSM短信报警模块、ULN2003驱动步进电机模块、MQ-2烟雾气敏传感器模块等基础模块组成。
第一部分软件通过PM2.5传感器来识别空气中PM2.5的浓度,之后通过A/D转换器转置成电信号,发送结果给单片机。第二部分软件通过一氧化碳传感器来识别空气中一氧化碳的浓度,之后通过A/D转换器转置成电信号,发送结果给单片机。第三部分软件通过烟雾传感器识别空气中烟雾的浓度,之后通过A/D转换器转置成电信号,发送结果给单片机。
综上STM32单片机通过设定的公式计算得出控制信号。如果PM2.5的浓度超过限定值,则显示器显示其实时浓度,同时单片机控制开关闭合,空气净化器开始工作。如果一氧化碳的浓度超过限定值,则GSM发短信报警,同时步进电动机转动实现开窗功能。如果烟雾的浓度超过限定值,那么蜂鸣器进行报警,按下停止按钮则停止报警。通过以上三个主要模块的功能,基本实现智能电子鼻的作用,从而给大家的安全带来长效的保护。
智能电子鼻系统的总设计流程图见下图:

在这里插入图片描述

图3-1智能电子鼻系统的总设计流程图

3.2 模数转换器模块设计流程

本课题中AD0832模数转换器将模拟信号转换成数字信号的配置代码如下所示:

在这里插入图片描述

图3-2 配置代码过程

AD0832模数转换器首先把传感器传输过来的模拟信号转换成对应的数字信号,其次在内存单元里储存相对应的数值。

在这里插入图片描述

图3-3 模数转换过程

三、实物展示

在这里插入图片描述

PCB制版设计

4.1 ZPH02-PM2.5传感器

在这里插入图片描述

图4-1 STM32F103C8T6单片机最小系统

4.2 ULN2003驱动步进电机

在这里插入图片描述

图4-2 ULN2003驱动步进电机
4.3 MQ-2烟雾气敏传感器

在这里插入图片描述

图4-3 MQ-2烟雾气敏传感器

四、结论

  在基于单片机智能电子鼻的设计与实现这个毕业设计课题选定后,由于本人在软件语言编程方面存在经验缺少的问题,所以在这个上面投入了不少精力,走的也不是很顺利。恰逢年初新型冠状病毒肆虐,本人所在小区也进行了严格的管控,在出不去门也买不到相关参考书籍(因疫情快递停运)的条件下,慕课等网络平台给了我新的思路,俗话说穷则思变,我通过一些论坛博客和网络在线阅读书籍解决一些具体操作问题后,各大高校的网上图书馆给我了新的启示,在这里我通过详细而全面的了解和研读后,终于在这部分有了较大的提升与进步。最后也很感谢我的室友和同学们给予我的帮助,我终于从传感器调试困难的状态慢慢走了出来,当然这里也少不了传感器卖家的指导和提供的详细参考资料和数据,我终于把这几个传感器和单片机磕磕绊绊的连接起来并使之形成一个较为完整的设计。

五、 文章目录

目录
前言 1
第一章 智能电子鼻系统的设计方案 3
1.1智能电子鼻系统的设计思路 3
1.2智能电子鼻系统的设计流程图 4
1.3智能电子鼻系统的硬件数据清单及实物图 4
1.4智能电子鼻系统的工作原理 5
第二章 智能电子鼻系统的硬件部分 7
2.1 ZPH02-PM2.5传感器模块 7
2.2 GSM短信报警模块 9
2.3 STM32F103C8T6单片机最小系统 10
2.4 OLED液晶显示器模块 13
2.5蜂鸣器及蜂鸣器停止按钮模块 14
2.6 继电器控制电路模块 15
2.7 ULN2003驱动步进电机模块 15
2.8 MQ-2烟雾气敏传感器模块 16
第三章 智能电子鼻系统的软件设计流程 18
3.1智能电子鼻系统的总设计流程 18
3.2 模数转换器模块设计流程 18
3.3蜂鸣器报警模块设计流程 19
第四章 PCB制版设计 21
4.1 ZPH02-PM2.5传感器 21
4.2 ULN2003驱动步进电机 21
4.3 MQ-2烟雾气敏传感器 22
4.4 OLED液晶显示器 22
4.5 蜂鸣器及蜂鸣器停止按钮 23
4.6 继电器 23
4.7 GSM短信报警 24
4.8 串口通信 24
第五章 系统调试 25
5.1 智能电子鼻系统实物图 25
5.2智能电子鼻系统调试过程 25
结论 29
参考文献 30
致谢 31

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

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

相关文章

leetcode第369周赛

2917. 找出数组中的 K-or 值 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 nums 中的 K-or 是一个满足以下条件的非负整数&#xff1a; 只有在 nums 中&#xff0c;至少存在 k 个元素的第 i 位值为 1 &#xff0c;那么 K-or 中的第 i 位的值才是 1 。 返回 nums …

4.1 Bloom算法

一、Bloom算法介绍 1.具体效果 2.实现思路 先将原图按照一定阈值提取较亮的区域模糊提取出的图像将模糊过的图像与原图混合 3.HDR与LDR LDR&#xff08;Low Dynamic Range&#xff0c;低动态范围&#xff09; JPG、PNG格式图片RGB范围在[0,1]之间 HDR&#xff08;High Dynam…

计算机网络第3章-TCP协议(2)

TCP拥塞控制 TCP拥塞控制的三种方式&#xff1a; 慢启动、拥塞避免、快速恢复 慢启动 当一条TCP连接开始时&#xff0c;cwnd的值是一个很小的MSS值&#xff0c;这使得初始发送速率大约为MSS/RTT。 在慢启动状态&#xff0c;cwnd的值以1个MSS开始并且每当传输的报文段首次被…

使用Hystrix实现请求合并,降低服务器并发压力

1.引入Hystrix <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency> 2.在启动类上开启Hystrix功能 EnableHystrix 3.请求合并实现代码 import com…

解决Linux Debian12系统中安装VirtualBox虚拟机无法使用USB设备的问题

Debian12系统中安装VirtualBox&#xff0c;再VirtualBox虚拟机中无法使用 USB设备。如下图所示&#xff1a; 解决方法如下&#xff1a; 1.安装 Virtualbox增强功能。如下图所示&#xff1a; 2.添加相关用户、用户组&#xff08; Virtualbox 装完成后会有 vboxusers 和 vboxs…

Linux 网络驱动实验(PHY芯片LAN8720)

目录 嵌入式网络简介嵌入式下的网络硬件接口MII/RMII 接口MDIO 接口RJ45 接口I.MX6ULL ENET 接口简介 PHY 芯片详解PHY 基础知识简介LAN8720A 详解SR8201F 详解 Linux 内核网络驱动框架net_device 结构体net_device_ops 结构体sk_buff 结构体网络NAPI 处理机制 I.MX6ULL 网络驱…

SQL SERVER 表分区

1. 概要说明 SQL SERVER的表分区功能是为了将一个大表&#xff08;表中含有非常多条数据&#xff09;的数据根据某条件&#xff08;仅限该表的主键&#xff09;拆分成多个文件存放&#xff0c;以提高查询数据时的效率。创建表分区的主要步骤是 1、确定需要以哪一个字段作为分…

vite vue3 ts 使用sass 设置样式变量 和重置默认样式

1.安装scss 样式支持依赖 yarn add -D sass 2.使用sass <div><!-- 测试使用sass --><h1>测试使用sass</h1> </div><style scope lang"scss"> div {h1 {color: red;} } </style> 效果&#xff1a; 3.通过npm下载并复制…

Spring Cloud之Gateway网关学习【详细】

目录 统一网关Gateway 网关的实现 搭建网关 编写配置文件 路由断言工程 路由的过滤器 全局过滤器 网关过滤器执行顺序 网关的cors跨域配置 问题及解决 统一网关Gateway 网关的实现 SpringCloud中存在两种网关 gateway&#xff1a;基于Spring5中提供的WebFlux实现&a…

Unity 粒子特效-第三集-星星闪烁特效

一、特效预览 二、制作原理 星星素材资源 链接&#xff1a;https://pan.baidu.com/s/17D-9sC-ErtqmUxl81Ln1Mw?pwdndm9 提取码&#xff1a;ndm9 1.素材介绍 仔细看&#xff0c;我们的粒子贴图是&#xff08;如下&#xff09;&#xff0c;一颗星星 2.步骤介绍 1.星星动画的…

【如何写论文】硕博学位论文的结构框架、过程与大纲分析

硕士论文可以说是毕业前最重要的一部分&#xff0c;也可以说是展示和检验你3年研究生学习的成果的一个考试。硕士论文答辩和检验合格&#xff0c;才能够顺利拿到毕业生和学位证&#xff0c;可见其重要性。 目录 一、基础框架1.1、摘要&#xff08;Abstract&#xff09;1.2、绪论…

【多线程面试题十五】、synchronized可以修饰静态方法和静态代码块吗?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;synchronized可以修饰静…

灯串上亚马逊加拿大合规标准CSA认证如何办理?

灯串 灯串和配件都是插头连接的便携式、临时性商品&#xff0c;最大额定输入电压为 120 伏。 本政策适用于季节性照明、装饰性灯具以及灯串。 亚马逊灯串政策 根据亚马逊的要求&#xff0c;所有季节性和装饰性灯串均应经过检测&#xff0c;并且遵守下列法规、标准和要求&…

AUTOSAR CAN协议栈架构总览介绍

Classic AUTOSAR层级架构简介 如下图是Classic AUTOSAR层级架构图,每个层主要功能如下 微控制器抽象层:使上层软件和微处理器型号无关,包含MCU中内部外设的驱动以及MCU内存映射的外部设备的驱动ECU抽象层:使上层软件和ECU硬件设计无关,包含ECU板上外部设备的驱动以及内部…

Hi3516DV500部署paddle版型分析模型记录

原版模型测试并导出onnx paddle 版面分析-> https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/ppstructure/layout/README_ch.md 测试 python3 deploy/python/infer.py \ --model_dirmodel/picodet_lcnet_x1_0_fgd_layout_cdla_infer/ \ --image_fil…

Apache Dolphinscheduler如何不重启解决Master服务死循环

个人建议 Apache Dolphinscheduler作为一个开源的调度平台&#xff0c;目前已经更新到了3.X版本&#xff0c;4.0版本也已经呼之欲出。3.0版本作为尝鲜版本&#xff0c;新添加了许多的功能&#xff0c;同时也存在非常多的隐患&#xff0c;本人使用3.0版本作为生产调度也踩了很多…

Android开发知识学习——TCP / IP 协议族

文章目录 学习资源来自&#xff1a;扔物线TCP / IP 协议族TCP连接TCP 连接的建立与关闭TCP 连接的建立为什么要三次握手&#xff1f; TCP 连接的关闭为什么要四次挥手&#xff1f; 为什么要⻓连接&#xff1f; 常见面试题课后题 学习资源来自&#xff1a;扔物线 TCP / IP 协议…

OpenCV学习(一)——图像读取

1. 图像入门 读取图像显示图像写入图像 import cv2# 读取图像 img cv2.imread(lena.jpg) print(img.shape)# 显示图像 cv2.imshow(image, img) cv2.waitKey(0) cv2.destroyAllWindows()# 写入图像 cv2.imwrite(image.jpg, img)1.1 读取图像 读取图像cv.imread(filename, fl…

人工智能-softmax回归

回归可以用于预测多少的问题。 比如预测房屋被售出价格&#xff0c;或者棒球队可能获得的胜场数&#xff0c;又或者患者住院的天数。 事实上&#xff0c;我们也对分类问题感兴趣&#xff1a;不是问“多少”&#xff0c;而是问“哪一个”&#xff1a; 某个电子邮件是否属于垃圾…