问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于STM32的智能噪音监测系统设计与实现

创作时间:
作者:
@小白创作中心

基于STM32的智能噪音监测系统设计与实现

引用
CSDN
1.
https://blog.csdn.net/QQ1928499906/article/details/145879955

随着工业化的快速发展,噪音污染和空气污染已成为影响人们生活质量的重要问题。本文介绍了一种基于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总体设计思路

设计开发工具:

  1. android studio开发软件
  2. 计算机
  3. 安卓手机

按照总体设计思路,客户端APP需要实现一个简单的蓝牙数据接收客户端,蓝牙设备的启用以及其搜索功能均要开启,为软件接受外界信号作一个必要准备。在系统内设计一个简单的数据显示功能,将在单片机上得到的数据,通过蓝牙通信传输数据到手机APP端并显示出来,可设置单片机上PM2.5浓度阈值同步。具体可分为以下几部分:

  1. 硬件物理访问地址显示
  2. 噪音值
  3. PM2.5值
  4. 设置上限值

逻辑流程

系统实现效果

  1. 打开手机APP,打开蓝牙搜索功能,搜索并且连接上单片机。

  1. 显示噪音值与PM2.5数据并修改阈值为30ug/m3。

掉电重启单片机后PM2.5阈值保存上一次设置阈值

总结

经过几个月的测试,本次的毕业设计题目–基于STM32的智能噪音监测系统总算大概完成。在大二和同学去公园游玩时发现竖立了一块液晶显示屏,上面展示了当前环境中的噪音值,温湿度,和空气PM2.5浓度值等参数,不禁感叹物联网不仅是一门专业更是一种思维能力,让生活中的所见所闻结合、常用物品的各个功能进行结合的一种思维能力。

在完成本次的毕业设计的过程中,融合了大学四年所学的各种关于嵌入式系统设计的课程,如编程所用语言C语言,嵌入式常见知识像GPIO口、定时器、中断、LCD、蜂鸣器等,是对大学四年的学习进行整合复习的综合应用的锻炼。同时,也需要重新对新知识的学习,如对STM32F103系列的单片机编程,使用Keil C和Android Studio软件开发工具,各种传感器如蓝牙、分贝检测、模数转换等编程,这也是对新知识的充分认知学习的必经之路。

不仅如此,本次的设计也是一个不断出错并调试解决的过程,编程到开发实现本身就是一个通过不断的测试完善系统的过程,也吸取了教训,特别是不要忽略开发者写的用户手册每个细节并注重细节。

本设计还存在着很多可以改进的地方,如若加入温湿度传感器那和公园中见到的显示屏将算是一种复现了。总而言之,这次毕业设计给我带来的收获不仅仅在于技术上的知识融合更新,也是在思想的一种创新思维的锻炼,同时是在嵌入式软件开发中学会能发现问题,解决问题的一种能力。这对我将来工作和生活中带来不小的启示!

本文原文来自CSDN博客

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号