STM32下扬尘监测系统设计探析

STM32下扬尘监测系统设计探析

摘要:为了实现对粉尘的实时监测,文中设计一款基于STM32单片机的工地扬尘监测系统。该系统使用环境参数传感器采集环境数据,经过单片机简单处理后,使用LED显示屏显示环境信息;利用移动通信模块将数据发送到服务器,通过手机微信小程序获取并查看服务器存储的相关数据。该系统能够检测温度、湿度、PM2.5、PM10、噪声等环境参数,并实时显示、上报,也可根据需求添加报警与喷雾除尘功能。

关键词:STM32单片机;扬尘监测系统;LED显示屏;移动通信模块;数据上报;微信小程序

0引言

随着生活水平不断提高,人们愈发重视环境问题。目前,社会发展迅速,建筑工地日益增多,施工时对周围环境造成污染,如空气污染、噪声污染、水污染、光污染等,给人们的生活带来诸多不便[1]。如果能及时监测环境参数的变化,便能尽早进行污染治理[2]。基于此,本文设计了一款基于STM32单片机的扬尘监测系统。

1系统总体设计

本系统主要包括电源模块、主控制器模块、数据采集模块、显示模块和移动通信模块。为了使用方便,本系统直接连接220V交流电,再通过电源模块将220V交流电转化为5V的直流电,以便系统其他部分使用。主控制器通过STM32单片机处理数据采集模块传送的数据,并在显示模块实时显示。为方便远程查看扬尘系统采集的环境数据,本系统特开发了一款专用微信小程序。移动通信模块(NB-IoT模块)通过HTTP网络协议访问服务器,将单片机处理后的数据上传到服务器,之后微信小程序与服务器进行数据交互,获取并显示相关环境数据[3-4]。系统运行示意如图1所示。

2系统硬件组成

2.1STM32单片机。本系统选用STM32F103单片机作为控制器。它属于中低端32位ARM微控制器,其芯片为ST公司出品的Cortex-M3内核。芯片内置128KB闪存和20KBSRAM高速存储器,最大工作频率为72MHz,拥有多个I/O端口及与两条APB总线联接的外设。每个型号的STM32芯片都包含3个通用的16位定时器、2个12位的ADC、1个PWM定时器。此外,它还包含多个标准且先进的通信接口[5],如I2C、SPI、USART、USB、CAN等。在本系统中,STM32F103单片机通过USART3连接数据采集模块用以获取温度、湿度、PM2.5等数据;USART2连接移动通信模块与服务器通信;SPI连接显示模块,将需要显示的数据通过SPI发送到显示屏[6]。

2.2数据采集模块。数据采集选用RS-BYH-M模块。作为主要的环境数据采集器,RS-BYH-M模块采用一体式设计,将传感器安装在百叶盒内,能便捷地测量周围环境的空气质量、噪声、温度、湿度、光照等参数[7-8]。由于STM32F103单片机无RS485接口,故本系统通过将UART转换成RS485解决这一问题。

2.3显示模块。显示模块使用由12块小LED模块面板组成的LED显示屏,采用12接口通信,通过四分之一扫描方式工作。单片机使用SPI通信接口循环发送数据,使LED显示屏点亮相应的LED灯,从而显示需要的字符。2.4NB-IoT模块NB-IoT模块是移动通信模块,使用的型号为M5310-A。该型号的NB-IoT模块支持最新Release14标准,相比之前版本通信速率更高。此外,M5310-A还新增了远程固件升级(FOTA)功能。NB-IoT模块具有尺寸小、功耗低、工作温度范围宽等特点,可用于智能家居、智能抄表、智慧城市、智慧农业等领域的数据传输服务。

3系统软件设计

本系统在STM32单片机上使用了RT-Thread操作系统[9]。它是一个嵌入式实时多线程操作系统,基本属性之一是支持多个任务同时运行。RT-Thread还具有实时性高、占用资源少等特点。系统软件采用模块化设计。其中,STM32单片机主要包括数据采集模块、数据显示模块以及通信模块。各模块均使用RT-Thread系统的线程处理,并且三个线程之间使用邮箱通信:首先由数据采集模块的线程读取传感器获得数据并进行简单处理,再通过邮箱将数据传送至数据显示模块线程及通信模块线程,数据显示模块线程接收到数据后,将其直接发送到LED显示屏,NB-IoT模块则将接收的数据发送到服务器[10]。系统软件流程如图2所示。图2系统软件流程数据显示模块线程首先对数据显示相关变量进行初始化,然后通过邮箱接收从数据采集模块线程发送的带有环境参数数据的邮件,经过相应处理后调用数据显示函数将数据发送到显示屏进行显示。数据显示流程如图3(a)所示。微信小程序使用微信原生的Request组件进行网络请求。首先Request组件携带URL、账号、密码等信息向服务器发起请求,服务器收到请求信息后检查自己是否存在所请求的资源,若存在,则返回状态码和所请求内容,否则返回错误信息。为了确保在网络数据传输过程中所有操作的正确性,必须确认服务器返回的状态均正确。微信小程序接收到请求数据后,对其进行解析并展示。微信小程序获取数据流程如图3(b)所示。

4系统调试

本系统的调试过程分为如下两步:(1)由STM32端进行数据采集显示;(2)通过服务器在微信小程序上显示数据。STM32端进行数据采集显示时,需通过数据采集模块将采集的温度、湿度、噪声、PM2.5、PM10等数据经过STM32单片机处理并显示到液晶屏上。经过多次调试,结果符合预期。数据采集调试界面如图4所示。在对远程数据显示进行测试时,需把STM32单片机处理后的数据使用NB-IoT模块HTTP协议的POST方法提交给服务器并存储,微信小程序通过服务器获取数据并显示。微信小程序端测试结果符合要求。微信小程序数据查询、显示界面如图5所示。

5结语

经过调试,本系统能很好地完成数据采集、数据显示、数据上报、微信小程序查看测量环境数据等功能,基本实现了设计要求。另外,本系统选用的STM32单片机拥有强大的数据处理能力和众多外设,资源十分丰富,可以在现有基础上通过外接电路增加传感器,从而获取更多环境数据。如果有报警需求,还可以加入警报电路来实现报警功能。

作者:黄晖 余继成 肖春明 曾璐 单位:江西理工大学电气工程与自动化学院