stm32项目(5)——基于stm32的工地噪声扬尘检测系统

news2024/12/23 13:56:17

目录

1.功能设计

2.硬件方案

1.单片机选择

2.声音传感器

3.PM2.5传感器

 4.显示器

3.程序设计

4.课题意义

1.功能设计

本次系统实现的功能如下所示:

        采用声音传感器检测环境噪音,采用PM2.5传感器检测环境灰尘浓度。若噪声超过阈值或者PM2.5超过阈值,那么灯亮以表示报警。同时噪音数值、PM2.5数值实时显示在OLED显示屏上。

功能完成后的实物图如下所示

 

2.硬件方案

1.单片机选择

        STM32F103C8T6是意法半导体(STMicroelectronics)推出的一款32位ARM Cortex-M3内核的微控制器。以下是它的主要特点:

        1. 处理器内核:STM32F103C8T6采用ARM Cortex-M3内核,提供较高的计算性能和响应速度。该内核支持32位数据处理,具有较低的功耗和较高的代码执行效率。

        2. 主频:该芯片的主频可以达到最高72MHz,使其在处理复杂任务和实时应用时能够提供足够的性能。

        3. 存储器:STM32F103C8T6内部集成了64KB的闪存存储器,用于存储程序代码和数据。同时,它还有20KB的SRAM用于存储运行时数据。

        4. 外设接口:该微控制器提供丰富的外设接口,包括多个通用定时器、串行通信接口(UART、SPI、I2C)、模数转换器(ADC)等,以满足不同应用的需求。

        5. 低功耗模式:STM32F103C8T6内置了多种低功耗模式,可降低功耗并延长电池寿命。它还支持快速唤醒和切换到不同的低功耗模式以适应不同的应用场景。

        6. 强大的开发生态系统:该微控制器使用基于C语言的开发工具链(如Keil MDK、IAR Embedded Workbench)进行编程开发。此外,意法半导体还提供了丰富的软件库和教程,以便快速开发应用。

        7. 电源管理:STM32F103C8T6集成了多种电源管理功能,包括电源监测、低功耗工作模式、晶振失效检测和多种复位模式等,以提供稳定和可靠的工作性能。

        总结起来,STM32F103C8T6是一款功能强大的32位微控制器,具有高性能、丰富的外设接口和低功耗模式等特点。它适用于各种应用领域,包括工业自动化、电子设备控制、物联网以及嵌入式系统等。

2.声音传感器

声音传感器选择带有模拟输出的,图片如下:

        声音传感器是一种用于检测和测量环境中声音的装置。它可以将声音信号转换成电信号,并提供给电子设备进行进一步处理。以下是声音传感器的一些特点:

        1. 检测范围:声音传感器可以检测一定范围内(通常是20 Hz至20 kHz)的声音信号。这使得它适用于绝大多数人能够听到的声音频率范围。

        2. 灵敏度:声音传感器具有不同的灵敏度范围,可以根据应用需求进行选择。一些声音传感器可以检测较小的声音信号,同时还有一些可以检测较大的声音信号。

        3. 输出类型:声音传感器的输出类型可以是模拟信号或数字信号。模拟输出类型的声音传感器会输出一个与检测到的声音强度相关的电压或电流信号,而数字输出类型的声音传感器会输出一个数字值,表示声音的强度或级别。

        4. 快速响应:声音传感器通常具有快速的响应时间,可以实时地检测到声音信号的变化。

        5. 高精度:好的声音传感器能够提供较高的精度和准确性,以便准确测量声音的强度或频率。

        6. 环境适应性:一些声音传感器具有抗干扰功能,可以适应不同环境条件下的声音检测需求。

        7. 尺寸和安装方式:声音传感器通常具有小尺寸,便于安装在各种设备或系统中。它们可以是模块化设计,方便与其他电子元件进行集成。

        8. 应用领域:声音传感器广泛应用于音频设备、通信设备、声学测量、环境监测、噪音控制等领域。

        需要根据具体应用需求选择适合的声音传感器,以确保测量准确性和适应性。

3.PM2.5传感器

PM2.5传感器的实物图如下:

 

        PM2.5传感器是一种用于检测空气中颗粒物(或细颗粒物)浓度的传感器。PM2.5代表空气中直径小于或等于2.5微米的颗粒物。以下是PM2.5传感器的一些特点:

        1. 检测范围:PM2.5传感器可以检测空气中直径小于2.5微米的颗粒物浓度。这些颗粒物通常包括浮尘、花粉、细菌、烟雾、车辆尾气排放等。

        2. 精确度:好的PM2.5传感器具有较高的精确度和准确性,可以测量出不同浓度级别的颗粒物。

        3. 实时监测:PM2.5传感器可以实时监测空气中颗粒物浓度的变化,并即时输出测量结果。这有助于进行空气质量监测和预警。

        4. 数字输出:一些PM2.5传感器采用数字输出方式,通过接口(如串行通信接口)输出颗粒物浓度数据。这使得数据的读取和处理变得更加方便。

        5. 环境适应性:PM2.5传感器需要在适当的环境条件下工作,以确保准确的测量结果。一些传感器具有抗干扰功能,可以适应不同环境条件下的颗粒物检测需求。

        6. 尺寸和安装方式:PM2.5传感器通常具有小尺寸,便于安装在室内或室外环境中。它们可以是单独的模块,也可以是集成在其他设备或系统中。

        7. 应用领域:PM2.5传感器广泛应用于室内空气质量监测、室外环境监测、智能空调控制、空气净化设备等领域。

      本次选择的PM2.5检测模块也是模拟电压输出,即灰尘浓度越高,输出的电压越大。

 

 4.显示器

显示屏选择的是0.96寸OLED,实物图如下所示:

 这是四针,IIC协议的屏幕。

3.程序设计

主程序如下所示

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "led.h"
#include "adc.h"

/*接线:
OLED  SCL-->PA5
      SDA-->PA7
      
声音传感器的模拟输出口-->PA1

PM2.5传感器的模拟输出口-->PA0
*/
u32 pm_ad,ad1; 
u8 kk;

int main(void)
{
	 u16 adcx=0;      //保存用AD转换得到的声音传感器输出的数值
   u8 db=0;          //将AD转换得到的数值 转为分贝  存在此变量
	delay_init();
	NVIC_Configuration();
	OLED_Init();
   LED_Init();       //LED初始化
   Adc_Init();		  		//ADC初始化
	OLED_ColorTurn(0);//0正常显示,1 反色显示
   OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示

	OLED_Refresh();

	while(1)
	{
		adcx=Get_Adc_Average(ADC_Channel_1,10);         //AD采集信号
      db=(adcx*1000)/4096.0;           //转换为分贝
      OLED_ShowString(8,0,"detect system",16);
      OLED_ShowString(8,2*8,"sound:",16);
		OLED_ShowNum(8+6*8,2*8,db,4,16);
      OLED_ShowString(8+10*8,2*8," DB",16);  //显示单位
      
    
      pm_ad=0;
		for(kk=0;kk<20;kk++)	   //20次取平均值
		{
			ad1=Get_Adc(0);
			delay_ms(9); 
			delay_us(400); 
			pm_ad=pm_ad+ad1;
		} 	
		pm_ad=pm_ad/80;//PM2.5 取平均值80检测结果转换成0-1000
      
      OLED_ShowString(8,4*8,"pm2.5:",16);
      OLED_ShowNum(8+6*8,4*8,pm_ad,3,16);
		OLED_ShowString(8+9*8,4*8,"ug/m3",16);  //显示单位
		
		
	   OLED_Refresh();
      
      if(db>46||pm_ad>50)     //声音的阈值是46db  pm2.5阈值是50ug   超过阈值  那么亮灯
         PCout(13)=0;
      else
         PCout(13)=1;            //若要修改阈值  则直接修改大于号后面的数值
		
		
	}
}

4.课题意义

        基于单片机的工地噪音扬尘检测系统具有重要的课题意义。以下是该系统的一些意义:

        1. 环境保护:工地噪音和扬尘是工地施工过程中常见的环境污染源。通过开发基于单片机的检测系统,可以实时监测工地的噪音和扬尘情况,有助于及时发现和解决环境污染问题,保护周围居民和工人的健康。

        2. 合规要求:许多地区都有对工地噪音和扬尘的法规和限制要求。开发这样的检测系统可以帮助工地管理者和监管机构及时了解工地的环境状况,并确保其符合相关的法律法规要求。

        3. 职业安全:工地噪音和扬尘对工人的健康和安全产生负面影响。通过实时监测和预警系统,可以提高工人的职业安全性,减少对噪音和扬尘暴露的风险。

        4. 数据分析和决策支持:基于单片机的检测系统可以收集大量的噪音和扬尘数据。这些数据可以用于分析工地环境的变化趋势和污染源,为工地管理者提供有效的决策支持,改善施工管理和环境控制。

        5. 技术创新和发展:开发基于单片机的检测系统需要结合传感技术、嵌入式系统和数据分析等领域的技术。这促进了相关技术的创新和发展,为环境监测领域提供了新的解决方案和应用。

        综上所述,基于单片机的工地噪音扬尘检测系统的课题意义在于促进环境保护,提高职业安全,满足合规要求,支持决策和推动技术创新。这样的系统对于促进可持续发展和改善工地环境具有重要的应用前景。

需要完整工程请私

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/847200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS Navigation Stack安装

Navigation导航包是做导航几乎都要用的&#xff0c;大家可以先去ROS Wiki上学习下 我们先Git下对应版本的软件包&#xff0c;我是Kinetic的&#xff0c;所以是Kinetic-devel 下载后发现目录下并没有CMakeLists.txt&#xff0c;所以直接在ROS工作目录下catkin_make并不会产生可…

【FPGA】UART串口通信——奇偶校验实现

文章目录 一、奇偶校验位二、设计思路三、仿真测试 一、奇偶校验位 奇偶校验位是基于uart的数据上进行一个判断 奇校验&#xff1a;数据1个数为奇时&#xff0c;校验为0&#xff0c;反之为1 偶校验&#xff1a;数据0个数为偶时&#xff0c;校验为0&#xff0c;反之为1 Uart…

MySQL 事务原理:事务概述、隔离级别、MVCC

文章目录 一、事务1.1 事务概述1.2 事务控制语句1.3 ACID特性 二、隔离级别2.1 隔离级别的分类2.1.1 读未提交&#xff08;RU&#xff09;2.1.2 读已提交&#xff08;RC&#xff09;2.1.3 可重复读&#xff08;RR&#xff09;2.1.4 串行化 2.2 命令2.3 并发读异常2.3.1 脏读2.3…

Babylon.js着色器简明简称【Shader】

推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景 为了生成 BabylonJS 场景&#xff0c;需要用 Javascript 编写代码&#xff0c;BabylonJS 引擎会处理该代码并将结果显示在屏幕上。 场景可以通过改变网格、灯光或摄像机位置来改变。 为了及时显示可能的变化&#xff0c;屏…

借助gopsutil库,获取机器相关信息

使用github.com/shirou/gopsutil/disk这个库&#xff0c;如何获取机器下不同磁盘分区的内容 使用 github.com/shirou/gopsutil/disk 库获取机器下不同磁盘分区的内容&#xff0c;可按如下&#xff1a; import "github.com/shirou/gopsutil/disk"//调用 disk.Partitio…

【瑞吉外卖】Git部分学习

Git简介 Git是一个分布式版本控制工具&#xff0c;通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件&#xff0c;Git仓库分为两种&#xff1a; 本地仓库&#xff1a;开发人员自己电脑上的Git仓库 远程仓库&#xff1a;远程服务器上的Git仓库…

git原理与使用

目录 引入基本操作分支管理远程操作标签管理 引入 假设你的老板要你设计一个文档&#xff0c;当你设计好了&#xff0c;拿给他看时&#xff0c;他并不是很满意&#xff0c;就要你拿回去修改&#xff0c;你修改完后&#xff0c;再给他看时&#xff0c;他还是不满意&#xff0c;…

ERP、APS、MES 三者之间的关系

ERP&#xff08;Enterprise Resource Planning&#xff09; APS&#xff08;Advanced Planning and Scheduling&#xff09; MES&#xff08;Manufacturing Execution System&#xff09; 这是三种不同类型的软件系统&#xff0c;它们主要用于企业内部管理和自动化运营流程。…

vscode Google代码风格设置无效解决

1. 采用第一个方法设置google代码设置风格 2. 安装了clangd后需要在格式化风格做选择 vscode 安装 clang-format插件 $ code /home/tony/.config/Code/User/settings.json 这就能解决google风格设置无效的问题了&#xff0c;原来根因在于使用的格式化插件没有生效导致&#xf…

还原某里226控制流混淆的思路

原两年前我就写出了还原控制流&#xff0c;由于当时没留笔记&#xff0c;导致现在很多忘记了&#xff0c;只记得大致思路&#xff0c;又由于在面试的时候&#xff0c;很多时候说不清楚&#xff0c;遂直接重构并还原最新版练手 另本文以教学为基准、本文提供的可操作性不得用于…

多用户跨境B2B2C商城后台管理系统快速搭建

搭建一个多用户跨境B2B2C商城后台管理系统需要考虑多个方面&#xff0c;包括系统架构设计、用户权限管理、商品管理、订单管理、支付管理、物流管理等。搭建步骤如下&#xff1a; 1. 系统架构设计 首先&#xff0c;需要设计一个稳定可靠的系统架构。选择一个适合B2B2C商城的商…

【iOS】RunLoop

前言-什么是RunLoop&#xff1f; 什么是RunLoop? 跑圈&#xff1f;字面上理解确实是这样的。 Apple官方文档这样解释RunLoop RunLoop是与线程息息相关的基本结构的一部分。RunLoop是一个调度任务和处理任务的事件循环。RunLoop的目的是为了在有工作的时候让线程忙起来&#…

谈谈对Spring MVC的理解

问题分析&#xff1a; SpringMVC 是一种基于 Java 语言开发&#xff0c;实现了 Web MVC 设计模式&#xff0c;请求驱动类型 的轻量级 Web 框架。 SpringMVC采用了 MVC 架构模式的思想&#xff0c;通过把 Model&#xff0c;View&#xff0c;Controller 分离&#xff0c;将 Web 层…

Kubeadm搭建 Kubernetes

kubeadm搭建整体步骤 1&#xff09;所有节点进行初始化&#xff0c;安装docker引擎和kubeadm kubelet kubectl 2&#xff09;生成集群初始化配置文件并进行修改 3&#xff09;使用kubeadm init根据初始化配置文件生成K8S的master控制管理节点 4&#xff09;安装CNI网络插件&am…

在centos7下通过docker 安装onlyoffice

因为需要调试网盘&#xff0c;所以今天安装一下centos7的onlyoffice 官方介绍如下&#xff1a; 为了方便&#xff0c;还是通过docker方式来安装onlyoffice了&#xff0c;这里我们采用社区版本了。 1、下载docker安装包 如下&#xff1a; docker pull onlyoffice/documentserv…

Mageia 9 RC1 正式发布,Mandriva Linux 发行版的社区分支

导读Mageia 9 首个 RC 已发布。公告写道&#xff0c;自 2023 年 5 月发布 beta 2 以来&#xff0c;Mageia 团队一直致力于解决许多顽固问题并提供安全修复和新特性。 新版本的控制中心添加了用于删除旧内核的新功能&#xff0c;该功能在 Mageia 9 中默认自动启用&#xff0c;用…

Flowable-网关-事件网关

目录 定义图形标记XML内容使用示例视频教程 定义 通常网关根据连线条件来决定后继路径&#xff0c;但事件网关不同&#xff0c;它提供了根据事件做选择的方式。 事件网关的每个外出顺序流都需要连接至一个捕获中间事件。当流程执行到达事件网关时&#xff0c;网关类 似处于等待…

Elasticsearch——基础(笔记)

文章目录 一、 Elasticsearch二、正向索引与倒排索引三、Elasticsearch与Mysql3.1 文档document3.2 索引库index3.3 与Mysql对比3.4 常见架构 四、部署与分词器4.1 部署单点ES4.2 使用IK分词器4.3 字典词库的拓展 五、操作索引库5.1 创建索引库5.2 增删改索引库 六、文档操作6.…

redis 集群 2:分而治之 —— Codis

在大数据高并发场景下&#xff0c;单个 Redis 实例往往会显得捉襟见肘。首先体现在内存上&#xff0c;单个 Redis 的内存不宜过大&#xff0c;内存太大会导致 rdb 文件过大&#xff0c;进一步导致主从同步时全量同步时间过长&#xff0c;在实例重启恢复时也会消耗很长的数据加载…

如何调教让chatgpt读取自己的数据文件(保姆级图文教程)

提示&#xff1a;如何调教让chatgpt读取自己的数据文件(保姆级图文教程) 文章目录 前言一、如何投喂自己的数据&#xff1f;二、调教步骤总结 前言 chatgpt提示不能读取我们提供的数据文件&#xff0c;我们应该对它进行调教。 一、如何投喂自己的数据&#xff1f; 让chatgpt读…