欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式
概要
为了对环境噪音进行监测,本次毕业设计选题是对环境噪音监测系统,单片机采用的价格成本低、但功能性强大且稳定的STM32单片机芯片,用以对声音进行信号处理后得出当前环境分贝值。本设计还将增加一个环境粉尘浓度监测功能,用以模拟在工地上使用的扬尘噪声监测设备,将得到的分贝值和环境PM2.5浓度值显示在液晶屏中。最终通过蓝牙技术,将噪音分贝值和PM2.5浓度值发送给安卓手机的应用程序中,可以更加便捷地监测当前环境的情况。
关键词:噪音监测,PM2.5,STM32,蓝牙
一、系统分析
本论文在编写过程中主要采用了以下的研究方法:
文献研究法:通过网络、查阅书籍和相关的文献来取得一些对于课题有用的资料和前人设计的结果,从中获取其中有用的信息,论证其可行性,从而科学、客观、全面地了解所要研究的问题,找出问题的本质属性,更高效的寻找解决问题的办法。
实验法:通过对问题的研究和分析,从已得出的结论和经验出发,形成一种新的假设,再将形成的假设计划出一个可控的实验方法,通过多次的科学实验验证,观察自变量在变化过程中因变量的变化,从而的得出自变量和因变量的关系,最后统计得出假设是否成立。
2.2 需求分析
2.2.1 用户需求
对于智能噪音检测系统,用户需求基本分析如下:
(1)设备:低功耗、低成本方、操作简单且便于携带。
(2)检测功能:系统在正常情况下能测出当前环境分贝值和PM2.5浓度值。
(3)报警:一旦PM2.5浓度值高于设置的报警值马上点亮 LED灯与蜂鸣器报警提示用户。
(4)手机应用程序:能实时查看监测系统的测量出的噪音值和PM2.5浓度值,并且可以通过手机应用修改PM2.5报警阈值。
2.2.2 功能需求
系统要实现的功能内容包括:环境声音分贝值的测量、环境中PM2.5浓度值的测量、模数转换的处理、PM2.5超标警报,与手机数据共享等功能。
为了实现以上功能,本次设计将采用STM32F103C8T6单片机作为控制核心,其具有低功耗、低成本、微型化、便于操控,便于携带且性能稳定等优点,用以测量出分贝值、PM2.5值,超标报警,与手机数据共享的基本功能。采用声音传感器LM386作为分贝采集传感器,GP2Y1010AU0F粉尘传感器作为PM2.5浓度值测量传感器,实现将分贝和PM2.5的模拟量以电流形式输出,再用模数转换器将两个传感器输出的电流信号变成能与单片机正常输入输出的电平。
二、系统总体设计及硬件实现
3.1 系统总体设计
经过前面系统分析,初步确定系统需要实现噪音和PM2.5监测功能以及PM2.5超值报警功能,系统组成分为硬件和软件部分,构成如下:
1、硬件部分
STM32F103C8T6单片机
分贝采集传感器
GP2Y1010AU0F粉尘传感器
MLT-BT05 4.0 蓝牙模块和串口
2、软件部分
STM32的初始化;
数据的采集、发送、接收;
LCD显示;
客户端APP显示等。
系统总体组成如图3-1所示,其中传感器和STM32通过GPIO口通信并将数据输出到LCD1602中显示出来,从而实现实时监测当前环境中噪音值、环境PM2.5浓度值;也可以通过蓝牙MLT-BT05 4.0 与单片中的串口相接,从而实现与手机蓝牙通信,实现数据实时同步;用户可以手动设置报警阀值,当环境PM2.5浓度值超过阀值时蜂鸣器产生警报。
图3-1 系统总体组成框图
3.2 系统硬件实现
硬件部份包含功能模块分别是:STM32单片机、LM386分贝测量传感器、GP2Y1010AU0F粉尘传感器、1286LCD显示器、蜂鸣器、无线蓝牙收发器。将各个硬件模块线连成整一个硬件设计部分。
三、硬件实现效果
经过努力,最终硬件实现效果如下所示:
图3-9 硬件实现效果图
四、系统实现
4.2 软件设计总体思路
以STM32单片机开发板为控制核心,通过函数初始化,包括串口,引脚等的初始化,传感器函数的编写来实现应该呈现的功能,包括模数转换子程序、IIC串口总线子程序、PM检测子程序、噪音检测子程序、LCD显示子程序、警报子程序等。
单片机端:
实现串口收发功能
噪音值经过AD转换由程序输出分贝值功能
PM2.5浓度检测功能
LCD显示屏显示功能
APP端:
接收单片机传送的数据功能
粉尘浓度检测阈值可调功能
4.5 系统实现效果
1.打开手机APP,打开蓝牙搜索功能,搜索并且连接上单片机。
图4-6 手机APP连接单片机
2.显示噪音值与PM2.5数据并修改阈值为30ug/m3。
图4-7 手机APP显示测量值
图4-8 修改阈值结果
掉电重启单片机后PM2.5阈值保存上一次设置阈值
图4-9 重启后显示结果
五、结论
在完成本次的毕业设计的过程中,融合了大学四年所学的各种关于嵌入式系统设计的课程,如编程所用语言C语言,嵌入式常见知识像GPIO口、定时器、中断、LCD、蜂鸣器等,是对大学四年的学习进行整合复习的综合应用的锻炼。同时,也需要重新对新知识的学习,如对STM32F103系列的单片机编程,使用Keil C和Android Studio软件开发工具,各种传感器如蓝牙、分贝检测、模数转换等编程,这也是对新知识的充分认知学习的必经之路。
六、 文章目录
目 录
1 绪 论 1
1.1 1.1研究背景和意义 1
1.1.1 噪音监测系统的背景分析 1
1.1.2 本课题的研究意义 2
1.2 课题研究方法和内容题研究 2
1.2.1 研究方法 2
1.2.2 研究内容 3
2 系统分析 4
2.1 系统背景及现状分析 4
2.2 需求分析 4
2.3 可行性分析 5
3 系统总体设计及硬件实现 7
3.1 系统总体设计 7
3.2 系统硬件实现 8
3.2.1 STM32单片机模块 8
3.2.2 声音监测模块 9
3.2.3 PM2.5监测模块 9
3.2.4 蓝牙通信模块 10
3.2.5 液晶显示屏模块 11
3.2.6 ADC0832模数转换模块 11
3.2.7 硬件实现效果 12
4 系统软件设计与实现 13
4.1 开发工具的介绍 13
4.1.1 Keil uVision4单片机开发工具 13
4.1.2 Android Studio开发工具 13
4.2 软件设计总体思路 13
4.3 硬件控制代码设计 14
4.3.1 Main主控函数 14
4.3.2 AD转换模块 15
4.3.3 分贝采集传感器模块 17
4.3.4 粉尘传感器模块 19
4.3.5 蜂鸣器模块 21
4.4 客户端APP设计 22
4.4.1 客户端APP总体设计思路 22
4.4.2 逻辑流程 23
4.4.3 数据接收并显示程序 23
4.5 系统实现效果 26
5 总 结 28
参考文献: 29
致谢 30