基于STM32与机器视觉检测的粮仓环境监管系统设计
Design of a Grain Storage Environment Monitoring System Based on STM32 and Machine Vision Inspection
DOI: 10.12677/jsta.2026.142026, PDF, HTML, XML,    科研立项经费支持
作者: 刘 正, 王利众:中央民族大学信息工程学院,北京
关键词: 粮仓监管远程控制物联网视觉检测STM32Grain Silo Monitoring Remote Control Internet of Things Visual Inspection STM32
摘要: 粮食安全是农业生产与仓储管理的核心诉求,当前粮仓环境监管中,数据检测不准确、不及时及人工抽样检测易遗漏等问题频发,不仅影响监管效率,还可能引发粮食霉变、虫害泛滥等风险,直接威胁粮食储存安全与经济效益。为破解这一难题,本文设计了一种基于STM32F103系列微控制器的主控单元监管系统,通过DHT11温湿度传感器、MQ-2烟雾传感器及SGP30二氧化碳模块,精准采集粮仓内温湿度、烟雾浓度、二氧化碳含量等关键环境数据,再借助ESP8266-01S无线Wi-Fi模块,基于稳定高效的MQTT协议将本地传感器数据上传至云端平台,并同步更新至手机APP端实现实时可视化显示。此外,在K230视觉识别模块上部署基于改进YOLOv8n算法自训练的虫害检测模型,该模型优化了检测精度与实时性,可精准识别粮仓内老鼠、麻雀、蟑螂三类常见有害生物,检测结果同步至手机端供管理人员查看。当粮仓内任意环境参数超出预设安全阈值时,系统将自动触发声光报警,为粮仓环境的协同监管提供全流程、智能化的有力保障。
Abstract: Food security constitutes the core imperative of agricultural production and storage management. Current grain storage environment monitoring frequently encounters issues such as inaccurate and untimely data detection, alongside the risk of omission in manual sampling inspections. These shortcomings not only compromise regulatory efficiency but may also precipitate risks including grain moulding and pest infestations, directly jeopardising storage safety and economic viability. To address this challenge, this paper proposes a monitoring system centred on an STM32F103 series microcontroller. Utilising the DHT11 temperature and humidity sensor, MQ-2 smoke sensor, and SGP30 carbon dioxide module to precisely collect critical environmental data including temperature, humidity, smoke concentration, and carbon dioxide levels within the silo. Utilising an ESP8266-01S wireless Wi-Fi module, the system transmits local sensor data to a cloud platform via the stable and efficient MQTT protocol, synchronising updates to a mobile application for real-time visualisation. Furthermore, the K230 visual recognition module deploys a self-trained pest detection model based on an enhanced YOLOv8n algorithm. This model optimises detection accuracy and real-time performance, precisely identifying three common pests within the silo: rodents, sparrows, and cockroaches. Detection results are synchronised to the mobile interface for management personnel to review. Should any environmental parameter within the silo exceed preset safety thresholds, the system automatically triggers audible and visual alarms. This provides comprehensive, intelligent safeguards for collaborative monitoring of the silo environment throughout its entire operational lifecycle.
文章引用:刘正, 王利众. 基于STM32与机器视觉检测的粮仓环境监管系统设计 [J]. 传感器技术与应用, 2026, 14(2): 258-268. https://doi.org/10.12677/jsta.2026.142026

1. 引言

随着物联网与无线通信技术的不断发展,耗时耗力的传统人工检测必将被科学先进的智能监管系统所替代。相比于大多数监管系统采用受距离限制的RS-232、RS-485和CAN总线等有线通信的方式,利用Wi-Fi无线通信与设备进行信息交互则更加方便[1]。一是采用的通信方式为通过Wi-Fi模块与主控芯片串口进行通信,这大大减少了线缆的用量,传感器在粮仓内的位置也可以根据要求随时调整,灵活性高。二是无线通信可以避免电缆因相互交错而产生的电磁干扰问题,保障了通信的质量和稳定性;三是Wi-Fi无线通信易于后期维护,降低了系统设计成本[2]。本文使用STM32作为主控制器完成对粮仓环境监管系统的设计,旨在实现将存储粮食的仓库环境数据实时无线传输给设备端,便于粮仓管理者及时、高效地监测仓内环境数据并可以下发指令来控制仓内设备的运行,可以为粮食存储提供精准决策[3]。从而使得粮仓管理向着更智能化、自动化和现代化方向发展。

2. 系统总体设计方案

使用STM32F103RCT6作为主控板来负责程序的运行以及和各GPIO口的互相通信,实现各个模块之间运行结果的统一调配;电源模块为系统的稳定运行提供保障;各传感器模块可分别实现对粮仓内环境温湿度、二氧化碳浓度、烟雾浓度和火焰数值的采集和传输给主控板[4],并可以通过OLED液晶显示屏实时显示获取到的传感器数值,当数值超过程序所设定的阈值时会触发蜂鸣器报警;继电器控制模块则可以模拟对粮仓环境的降温排湿进行科学管理;基于机器学习的视觉识别模块可以实现对粮仓内有无虫害等情况的检测;独立按键模块可对设计的多功能菜单进行功能选择和对二氧化碳气阀进行控制;基于无线通信的Wi-Fi通信模块可对系统收集到的数据上传至云平台[5],进而可通过移动端APP对粮仓环境进行实时监管。系统总体方案设计如图1所示。

Figure 1. Overall block diagram of control system

1. 控制系统总框架图

3. 系统硬件电路设计

系统硬件的搭建主要用到了电源转换模块1个,OLED显示屏幕、蜂鸣器模块、5v风扇模块和ESP8266-01s模块各1个,以及采集环境数据所需的温湿度传感器DHT11、烟雾传感器MQ-2和二氧化碳传感器SGP30模块。同时,本系统加入了具备视觉检测功能的K230视觉识别模块通过串口与STM32建立通信,实现数据互传。

3.1. 外围连接电路与PCB设计

3.1.1. 外围连接电路设计

STM32F103RCT6系统板具有丰富的外设资源,根据外接不同传感器的协议要求,通过定义与之对应功能的GPIO口,从而实现硬件平台的搭建和建立各模块之间的交互通信,系统的硬件原理图如图2所示。

其中,电源转换模块为系统的正常运转提供3.3 V和5 V电压;液晶显示与报警模块作为系统显示传感器采集到的数据和报警装置;独立按键模块控制OLED多级菜单和功能的选择;Wi-Fi通信模块实现对系统获取到的粮仓环境数据上传云平台以及云平台下发相关控制命令给单片机,从而实现对该粮仓环境的远程监管。按照阿里云平台提供的一系列接口,通过单片机使用AT命令配置ESP8266模块连接阿里云平台[6];数据采集模块通过外设传感器获取数据传输给单片机进一步处理;视觉识别模块将检测到的数据通过串口发送给单片机,从而实现K230识别结果与单片机的信息交互。

Figure 2. System hardware design schematic diagram

2. 系统硬件设计原理图

3.1.2. PCB设计与硬件系统组装

在设计的电路原理图通过设计规则检查(Design Rule Check, DRC)后需要进行PCB设计,通过该部分的设计可以减少系统功能测试中杜邦线的使用。同时,合理的PCB设计可以保证信号与数据的稳定传输,从而提高系统工作的稳定性与可靠性。如图3所示为主控制系统的PCB电路布局布线图。

各个模块的硬件电路设计完成后,通过PCB板打样后进行元器件的焊接,采用边测试、边焊接的原则,减少和避免焊接失误的产生。通过检查各个焊接完成模块的电气属性,比如排查电路是否存在短路、复位按键是否能正常工作等。主控制系统打样实物PCB板和焊接组装板分别如图4图5所示。

Figure 3. System PCB design diagram

3. 系统PCB设计图

Figure 4. System prototype physical PCB board diagram

4. 系统打样实物PCB板图

Figure 5. System welding and assembly of physical PCB boards

5. 系统焊接与组装实物PCB板

4. 软件设计与功能实现

4.1. 主程序设计

对于主循环程序的实现,需要对各个硬件进行初始化配置。由于本设计包含多个外设模块,为提升程序的可读性和简洁性,通过采取封装函数的形式供主程序调用执行,从而大大减少了主程序代码,系统的主程序代码如图6所示。

在传感器数据获取过程中,通过封装的DHT11_flag = DHT11_Read_Data (&humi, &temper)函数来获取温湿度数据,二氧化碳浓度数据通过函数SGP30_Read ()来读取,而烟雾浓度与火焰数值则是采用DMA通道快速转运来获取。按键控制通过按键扫描函数判断哪个按键按下,进而去执行相应功能程序,包括对获取数值的显示、阀门开度、参数设置与联网数据上云等功能的控制。K230视觉识别模块主要通过函数kpu = KPU ( )来实例化KPU,KPU是通用的神经网络处理器,它可以在低功耗的情况下实现卷积神经网络计算[7],实时获取被检测目标对老鼠、蟑螂和麻雀进行检测。

4.2. 传感器数据获取

该模块的程序设计通过采用DMA通道快速传输温湿度和烟雾浓度。温湿度和烟雾浓度都是模拟量,需要使能APB2外设总线的ADC1通道。同时,需要使能APB2外设总线的GPIOA口和开启AHB外设总线的DMA1控制器才能正常获取数据,从而减少主控芯片的工作量。粮仓内二氧化碳浓度数据通过SGP30模块获取,通过IIC协议与主控通信的采集模块实现对二氧化碳浓度数据的采集[8]。首先需要初始化具有IIC功能属性的GPIO引脚,然后通过发送0x2003命令来对SGP30进行初始化,发送0x2008命令来获取传感器数值。在初始化阶段二氧化碳浓度数值等于400,TVOC数值恒为0,当这两者的数据发生变化时初始化才算完成,进而输出二氧化碳浓度数值。

4.3. 按键控制多级菜单

为便于系统的显示与控制,加入按键模块可对OLED多级功能菜单进行分步显示。通过对按键控制的GPIO口进行初始化配置,分别将PB1、PB12、PB13、PB14和PB15作为按键控制的端口。通过定义的KEY_Scan(void)扫描按键按下的位置,并在此处设置标志位,为多功能菜单的代码编写做准备。OLED显示程序的设计采用按键中断的方式,当按键按下后,程序立即运行按键按下之后的逻辑程序。

Figure 6. System main programme flowchart

6. 系统主程序流程图

4.4. 蜂鸣器、风扇和照明外设程序设计

该部分功能主要实现系统对粮仓环境参数超过阈值的警示提醒,风扇模块则可对粮仓环境根据设定的参数范围自主选择开启或关闭,从而动态调整环境参数使其控制在合理范围内。该模块的外设均采用控制GPIO口引脚的高低电平变换实现驱动。在硬件设计中,给蜂鸣器、风扇和照明分配的引脚分别为PB10、PB0和PB8。系统在上电后,引脚设置为输出模式,各模块均初始化为高电平,初始状态各个模块均不被启动,当设置引脚电平为低时,模块开启工作。

4.5. K230视觉识别程序设计

4.5.1. 数据集标注与训练

数据集是模型训练的基础。在本系统的设计中,分别选择了麻雀、老鼠和蟑螂各150张图片作为粮仓中虫害的检测训练的数据集。利用Labelme工具对图片进行标注成适配YOLO算法的格式,然后在CPU为12th Gen Intel (R) Core (TM) i7-12650H,GPU是NVIDIA GeForce RTX 4060 Laptop GPU,内存为16G的Window 11电脑上利用YOLOv8算法基于Pytorch框架对检测模型进行训练。

为进一步提升模型的检测精度,对算法的检测头进行了改进,REG模块由两个连续的3 × 3卷积(Conv)和一个稀疏卷积(SPConv)组成,CLS模块由一个深度可分离卷积(DWConv)和一个3 × 3卷积(Conv)组成,稀疏卷积如图7所示,能很好地解决特征内部存在的冗余现象,使得检测头更加轻量化。

Figure 7. Schematic diagram of SPConv structure

7. SPConv结构示意图

图7中描述了SPConv的双路径特征处理机制[9]。该方法将输入通道按预设比例α (本文取值为0.5)划分为两个子集,分别送入结构复杂度不同的并行处理单元。第一单元针对主要特征通道实施深度变换,通过点卷积、组卷积与点卷积的级联结构完成关键信息提取;第二单元则对次要特征通道执行轻量级转换,采用单–点卷积实现快速处理。两条路径的输出经全局平均池化后,通过特征交互完成信息整合与重构。

具体实现上,主路径采用3 × 3深度可分离卷积以增强核心语义提取,辅助路径则使用1 × 1卷积进行补充性细节刻画。该过程可形式化为:

[ y 1 y 2 y M ]=[ W 1,1 ... W 1,αL W M,1 W M,αL ][ x 1 x αL ]+[ w 1,αL+1 ... w 1,L w M,αL+1 ... w M,L ][ x αL+1 x L ] (1)

其中,等式左侧项代表深度可分离卷积运算,右侧项代表逐点卷积映射。yx分别表示输出与输入特征映射, Wi,j wi,j 为两路卷积核参数。为优化检测图像特征的提取效果,本研究将基础网络的标准卷积替换为所提出的SPConv模块,最终改进算法性能结果如表1所示。

Table 1. Performance comparison of detection algorithms

1. 检测算法性能对比表

模型

mAP@0.5/%

mAP@0.5:0.95/%

模型参数量/W

GFLOPs/G

YOLOv8n

96.2

55.1

3,012,018

8.1

YOLOv8n + Litehead

96.8

56.3

2,793,698

7.5

改进模型的mAP@0.5相较于原始模型提升了0.6%,mAP@0.5可以达到96.8%,原始YOLOv8n模型与改进模型的训练结果迭代如图8所示。

Figure 8. mAP@0.5: Comparison of results before and after improvement

8. mAP@0.5改进前后结果对比

图8中可以看出,原始算法在前40轮迭代计算中优于改进算法,这是因为检测头经过轻量化处理后,前期会存在精度丢失。但随着迭代次数的增长,在45代后改进算法检测精度逐渐平稳并反超原始算法,从而验证了改进算法的有效性。

4.5.2. 识别检测与串口发送程序设计

将训练好的模型进行了封装,通过在主程序里直接调用封装模型,就可实现对待测目标进行检测。首先,需要导入程序所需的头文件,然后对摄像头以及外设接口进行初始化设置。通过调用kpu = KPU ()函数来开启对老鼠、麻雀和蟑螂的检测,并通过调用kpu.init_yolo8 ()函数为YOLO8网络模型传入初始化参数,调试成功后就可以将程序代码按照文件要求存入K230模块内置TF卡中,这样在K230模块开机后就可初始化程序实现检测与串口发送检测结果到STM32。单片机利用串口接收检测结果的程序流程图如图9所示。

在系统控制器数据接收端,首先需要对连接K230的串口进行配置,为后续的数据收发做好准备。在主程序中通过定义标志位来判断串口有无数据发送,进而通过判断发送数据来执行对应的操作。K230模块将目标成功检测后,发送字符数据给单片机,单片机通过串口接收并将数据上传云平台和手机APP端。

Figure 9. Flowchart for serial port reception of data transmitted by K230

9. 单片机串口接收K230发送数据流程图

4.5.3. WiFi无线通信程序

本设计将ESP8266 Wi-Fi通信模块与阿里云物联网平台相组合来完成系统的远程数据管理。阿里云物联网平台集成了设备管理、数据安全通信和消息订阅等能力,能够支持连接海量设备,采集设备数据并上云,同时还提供了云端API接口,让开发者在服务端可以调用云端API,将指令下发至设备端,实现远程控制[10]。该模块通过AT指令配置工作参数,所用的AT配置命令如表2所示。

Table 2. Key control OLED display package function specification table

2. 按键控制OLED显示封装函数说明表

ESP8266模块配置指令

功能说明

AT + CWMODE = 1

配置WiFi为STA模式

AT + RST

重启生效

AT + CWAUTOCONN = 0

取消自动连接

AT + CWJAP = “ssid”, “password”

连接WiFi网络函数

AT + CIPMUX = 0

配置单路连接模式

AT + CIPMODE = 1

开启透传模式

AT + CIPSTART = “ServerIP”, “ServerPort”

建立TCP连接(和手机的服务端进行连接)

AT + CIPSEND

开始透传

在配置过程中,将Wi-Fi配置为STA模式(客户端)与阿里云服务器进行双向通信。设置网络热点名称与密码分别为liuzheng和12345678。在建立TCP连接过程中将域名与端口号设置为阿里服务器官方所提供的。以上配置过程只能实现与阿里云平台的单向通信,而阿里云下发命令,还需基于MQTT协议在程序代码里编写订阅消息的配置。阿里云物联网平台对数据的接收格式采用JSON格式,因此在程序中也要将数据格式进行相应的转换才能被成功接收。

5. 系统功能测试与分析

该部分将各个功能模块组合在一起,验证能否实现系统的联合调试。主要包括主控板对传感器数据的获取与显示,并将数据同步到阿里云APP,从而实现对粮仓环境的远程监管。何启明等人利用K230视觉模块设计了智能避障小车系统[11],本研究联合K230视觉识别模块来检测粮仓中可能出现的虫害,并将相关检测数据上传至阿里云APP端进行远程提醒。

Figure 10. System test results chart

10. 系统测试结果图

系统的功能测试结果如图10所示,图中(a)行是对系统的多级菜单界面的显示,分别可以实现对系统阈值的设置、传感器数据的查询和连接网络以便于将数据同步到云平台和手机APP端。图中(b)行是系统实际运行的状态,能够实现对获取数据进行本地显示,K230视觉识别模块也能够实现成功检测。图中(c)行是手机APP端同步显示本地系统获取的数据,以及可以通过手机端的按钮控制粮仓内的风扇与照明系统,同时K230模块成功检测到老鼠等异物时会发送报警信息到手机端进行提示,从而使得设计的系统能够达到“监”与“管”的协同。

6. 结论

本文使用STM32完成对粮仓环境监管系统的设计,系统成功实现了对传感器数据的获取,并可以在本地显示和利用无线通信模块将本地数据上传云平台与更新到手机APP端。同时,本文利用K230视觉识别模块检测粮仓内可能出现的虫害,并将检测结果传输给手机端显示。本系统旨在实现将存储粮食的仓库环境数据实时无线传输给手机端,便于粮仓管理者及时、高效地监测仓内环境数据并可以下发指令来控制仓内设备的运行,从而实现对粮仓的科学精准管理。

基金项目

中央民族大学研究生科研项目资助(项目编号SJCX-Y2025112)。

参考文献

[1] 钱生越, 张旭东, 孔爱民, 等. 粮食烘干储藏一体化物联网监控系统初探[J]. 农业开发与装备, 2023(2): 20-23.
[2] Baig, M.J.A., Iqbal, M.T., Jamil, M. and Khan, J. (2021) Design and Implementation of an Open-Source IoT and Blockchain-Based Peer-to-Peer Energy Trading Platform Using ESP32-S2, Node-Red and, MQTT Protocol. Energy Reports, 7, 5733-5746. [Google Scholar] [CrossRef
[3] 孙洁, 许清河, 刘晓悦. 基于NB-IoT技术的远程粮情监控系统设计[J]. 自动化与仪表, 2020, 35(4): 86-89+93.
[4] 杨莹莹, 唐朝, 卢月静, 等. 基于单片机的粮仓温湿度检测与示警系统设计[J]. 农业工程, 2025, 15(5):126-130.
[5] 刘阳, 剡海静. 基于物联网技术的智慧粮仓系统架构设计与实现[J]. 物联网技术, 2025, 15(20): 133-136+140.
[6] Chong, J.L., Chew, K.W., Peter, A.P., Ting, H.Y. and Show, P.L. (2023) Internet of Things (IoT)-Based Environmental Monitoring and Control System for Home-Based Mushroom Cultivation. Biosensors, 13, Article 98. [Google Scholar] [CrossRef] [PubMed]
[7] 周瑾, 周爱平. 基于人工智能的虫情监测系统设计[J]. 软件, 2023, 44(8) : 72-75.
[8] Akinwumi, S.A., Okey-Amadi, O., Ayara, W.A. and Akinwumi, O.A. (2024) Eco-friendly Weather Monitoring Device Using Arduino Mega and Sensor Integration. IOP Conference Series: Earth and Environmental Science, 1428, Article 012006. [Google Scholar] [CrossRef
[9] Zhang, S., Chen, Y., Wang, B., Pan, D., Zhang, W. and Li, A. (2024) SPTNet: Sparse Convolution and Transformer Network for Woody and Foliage Components Separation from Point Clouds. IEEE Transactions on Geoscience and Remote Sensing, 62, 1-18. [Google Scholar] [CrossRef
[10] 李智峰, 毕文洋, 谷瑞军. 空调节能与监管一体化平台设计与实现[J]. 电脑知识与技术, 2023, 19(15) : 87-89+95.
[11] 何启明, 刘鹏来, 钟志国, 等. 基于多传感器融合的智能避障系统设计与实现[J]. 现代信息科技, 2025, 9(23): 23-28+34.