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

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

文章目录

概要

智能电子鼻系统是围绕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

相关推荐
最后一个bug2 小时前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
wenchm3 小时前
细说STM32F407单片机IIC总线基础知识
stm32·单片机·嵌入式硬件
嵌入式lover3 小时前
STM32项目之环境空气质量检测系统软件设计
stm32·单片机·嵌入式硬件
kenwblack4 小时前
STM32 SPI读取SD卡
stm32·单片机
兰_博5 小时前
51单片机驱动1602液晶显示
单片机·嵌入式硬件·51单片机
深圳市青牛科技实业有限公司 小芋圆5 小时前
开关电源特点、分类、工作方式
前端·科技·单片机·物联网·分类·数据挖掘·新能源
我qq不是451516525 小时前
单片机优先级
单片机·嵌入式硬件
相醉为友6 小时前
在开发嵌入式系统时,尤其是处理大数时,会遇到取值范围的问题。51单片机通常没有内建大整数支持,因此我们需要采用不同的方法来解决这一问题
单片机·嵌入式硬件·51单片机
1101 11017 小时前
STM32-笔记10-手写延时函数(SysTick)
笔记·stm32·单片机
极客小张7 小时前
基于STM32的智慧农业控制系统设计:python可视化、UART、I2C、TCP/HTTP技术
python·stm32·单片机·物联网·tcp/ip·毕业设计·课程设计