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