摘要
在国家逐渐发展壮大的今天,工业发展使我国经济快速增长,但也导致了各种在发展壮大之前没有被发现的问题日益浮现,噪音污染就是其中之一。环境噪音会给环境或周围人造成不良影响,严重的甚至会破坏环境或给人们的身心健康造成很大的影响,因此我们需要一种简易的噪音监测仪器,可以很方便地监测出当前环境的噪音分贝值是否适合人们生活,从而达到监控的目的。
为了对环境噪音进行监测,本次毕业设计选题是对环境噪音监测系统,单片机采用的价格成本低、但功能性强大且稳定的STM32单片机芯片,用以对声音进行信号处理后得出当前环境分贝值。本设计还将增加一个环境粉尘浓度监测功能,用以模拟在工地上使用的扬尘噪声监测设备,将得到的分贝值和环境PM2.5浓度值显示在液晶屏中。最终通过蓝牙技术,将噪音分贝值和PM2.5浓度值发送给安卓手机的应用程序中,可以更加便捷地监测当前环境的情况。
关键词:噪音监测,PM2.5,STM32,蓝牙
1 系统总体设计及硬件实现
1.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 系统总体组成框图
2 系统硬件实现
硬件部份包含功能模块分别是:STM32单片机、LM386分贝测量传感器、GP2Y1010AU0F粉尘传感器、1286LCD显示器、蜂鸣器、无线蓝牙收发器。将各个硬件模块线连成整一个硬件设计部分。
2.1 STM32单片机模块
STM32单片机是由美国意发半导体公司研发的基于ARM Cortex™-M处理器的微控制器芯片,它的功能比传统8位单片机更加完善和稳定,不仅可以使用寄存器进行编程,还可以使用官方提供的库文件进行编程,集高性能、实时功能、数字信号处理、低功耗与低电压操作等特性于一身,同时还保持了集成度高和易于开发的特点。[ 百度百科[z].http://m.elecfans.com/article/585701.html]
本课题的主控芯片使用到的STM32F103C8T6微控制器就是一款典型的STM32单片机,它采用了Cortex-M3内核,使用的RISC精简指令集拥有更高的代码运行效率和更大的Flash,CPU最高速度可达72 MHz,且可兼容市面上所有的ARM工具和软件。
主控模块跟其他模块的接线电路如下所示:
图3-2 主控芯片电路图
2.2 硬件实现效果
经过努力,最终硬件实现效果如下所示:
图3-9 硬件实现效果图
3 软件设计总体思路
以STM32单片机开发板为控制核心,通过函数初始化,包括串口,引脚等的初始化,传感器函数的编写来实现应该呈现的功能,包括模数转换子程序、IIC串口总线子程序、PM检测子程序、噪音检测子程序、LCD显示子程序、警报子程序等。
单片机端:
实现串口收发功能
噪音值经过AD转换由程序输出分贝值功能
PM2.5浓度检测功能
LCD显示屏显示功能
APP端:
接收单片机传送的数据功能
粉尘浓度检测阈值可调功能
4 客户端APP设计
4.1 客户端APP总体设计思路
设计开发工具: (1)android studio开发软件
(2)计算机
(3)安卓手机
按照总体设计思路,客户端APP需要实现一个简单的蓝牙数据接收客户端,蓝牙设备的启用以及其搜索功能均要开启,为软件接受外界信号作一个必要准备。在系统内设计一个简单的数据显示功能,将在单片机上得到的数据,通过蓝牙通信传输数据到手机APP端并显示出来,可设置单片机上PM2.5浓度阈值同步。具体可分为以下几部分:
1.硬件物理访问地址显示
与单片机上蓝牙模块连接的MAC地址。
2.噪音值
显示当前程序发送过来的噪音值数据。
3.PM2.5值
显示当前程序发送过来的PM2.5数据。
4.设置上限值
系统设置上限值为80ug/m3,可手动修改,单片机掉电保存。
4.2 逻辑流程
图4-5 手机端软件逻辑流程图
4.3 系统实现效果
1.打开手机APP,打开蓝牙搜索功能,搜索并且连接上单片机。
图4-6 手机APP连接单片机
2.显示噪音值与PM2.5数据并修改阈值为30ug/m3。
图4-7 手机APP显示测量值
图4-8 修改阈值结果
掉电重启单片机后PM2.5阈值保存上一次设置阈值
图4-9 重启后显示结果
5 总 结
经过几个月的测试,本次的毕业设计题目–基于STM32的智能噪音监测系统总算大概完成。在大二和同学去公园游玩时发现竖立了一块液晶显示屏,上面展示了当前环境中的噪音值,温湿度,和空气PM2.5浓度值等参数,不禁感叹物联网不仅是一门专业更是一种思维能力,让生活中的所见所闻结合、常用物品的各个功能进行结合的一种思维能力。
在完成本次的毕业设计的过程中,融合了大学四年所学的各种关于嵌入式系统设计的课程,如编程所用语言C语言,嵌入式常见知识像GPIO口、定时器、中断、LCD、蜂鸣器等,是对大学四年的学习进行整合复习的综合应用的锻炼。同时,也需要重新对新知识的学习,如对STM32F103系列的单片机编程,使用Keil C和Android Studio软件开发工具,各种传感器如蓝牙、分贝检测、模数转换等编程,这也是对新知识的充分认知学习的必经之路。
不仅如此,本次的设计也是一个不断出错并调试解决的过程,编程到开发实现本身就是一个通过不断的测试完善系统的过程,也吸取了教训,特别是不要忽略开发者写的用户手册每个细节并注重细节。
本设计还存在着很多可以改进的地方,如若加入温湿度传感器那和公园中见到的显示屏将算是一种复现了。总而言之,这次毕业设计给我带来的收获不仅仅在于技术上的知识融合更新,也是在思想的一种创新思维的锻炼,同时是在嵌入式软件开发中学会能发现问题,解决问题的一种能力。这对我将来工作和生活中带来不小的启示!