版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-2"\h\u12101摘要 摘要现代物流体系的一个重要组成部分是仓储管理。在电子商务蓬勃发展的背景下,为了降低仓储成本,实现库存高效管理,智能仓储成为了近年来一个研究热点。本文设计和实现了一个基于物联网的智能仓储管理系统,以STM32主控模块为核心,利用DHT11温湿度传感器、MQ-2烟雾传感器实时监测仓储环境参数,通过红外传感器实现人体识别防盗功能,在异常情况下能及时触发警报(蜂鸣器)。系统数据通过SQLServer数据库进行交互存储,管理人员可通过登录后台管理系统实现环境检测、货品管理、库存管理等功能。本系统成本低廉、便于安装使用,具备较强的实际运用价值。SQLServerABSTRACTWarehousemanagementisanimportantpartofthemodernlogisticssystem.Againstthebackdropofthevigorousdevelopmentofe-commerce,inordertoreducewarehousingcostsandachieveefficientinventorymanagement,intelligentwarehousinghasbecomearesearchhotspotinrecentyears.ThispaperdesignsandimplementsanintelligentwarehousemanagementsystembasedontheInternetofThings.WiththeSTM32maincontrolmoduleasthecore,itusestheDHT11temperatureandhumiditysensorandtheMQ-2smokesensortomonitortheenvironmentalparametersofthewarehouseinrealtime.Theinfraredsensorisusedtorealizethefunctionofhumanbodyidentificationforanti-theft,andincaseofabnormalsituations,analarm(buzzer)willbetriggeredinatimelymanner.ThesystemdataisinteractedwithandstoredthroughtheSQLServerdatabase.Managerscanlogintothebackgroundmanagementsystemtorealizefunctionssuchasenvironmentaldetection,goodsmanagement,inventorymanagement,etc.Thissystemhaslowcost,iseasytoinstallanduse,andhasstrongpracticalapplicationvalue.Keywords:STM32;IntelligentWarehousing;SQLServerPAGE29PAGE291绪论1.1研究背景与意义随着互联网、电子商务的不断发展,物流得以高速发展。仓储作为物流的一个重要环节,提升对仓库的管理水平成为了近年来一个研究热点,智能仓储就此兴起REF_Ref3377\r\h[1]。传统仓储管理模式中,环境监测工作主要采用人工抽样检测方式,难以实现对温湿度及有害气体浓度等核心环境参数的持续实时监测,这容易导致精密仪器受潮、食品药品变质等损失。在仓库的安全方面,有限的监控摄像头常常会产生监控死角,盗窃事件偶有发生。仓库的货品库存管理因为人工盘点效率低、数据更新不及时,也常常会出现货品的挤压或者断货现象,造成大量资金损失和客户的流失。尤其是在像“618”电商大促的物流高峰期,传统管理模式的弊端会进一步放大,急需智能化的解决方法。在智能仓储中,智能传感器作为物联网的核心组件,能够实时监测和收集仓储环境中的各种关键参数REF_Ref5154\r\h[2]。具体而言,温湿度传感器与烟雾探测装置的系统性部署可实现仓储环境数据的动态采集,从而确保货物存储条件的稳定性。通过部署人体红外传感器在非工作时段对仓库的监控死角进行布防,当探测到异常人体活动时,系统即刻发出警报并记录入侵信息。通过货品数据管理功能精准掌握库存数量和货品去向,为需求预测模型的构建提供数据支撑,来提高采购决策与库存管理策略的科学性。智能化仓储与供应链管理已成为提高企业竞争力和运营效率的重要手段REF_Ref4092\r\h[3]。传统的仓储管理方式存在信息更新不及时、成本高昂等问题,而物联网技术的应用为智能仓储供应链管理系统提供了新的解决方案REF_Ref5154\r\h[2]。1.2国内外研究现状1.2.1国外研究动态国外智能仓储系统在研究和应用方面起步早,技术成熟度较高,在自动化和智能化程度上有着明显的优势。美国亚马逊的Kiva机器人系统革新了传统仓储的作业模式。Kiva机器人可在仓库内迅速搬运货物,采用“货到人”的拣选方式,大幅提升了订单处理的速度与准确率。此外,借助人工智能算法分析仓储数据,实现了智能库存管理,能依据市场需求灵活调整库存水平。德国为推进工业4.0战略,智能仓储已成为工业生产的供应链的重要部分。德国企业的智能仓储系统重视与生产系统深度融合,运用先进的传感器和通信技术,达成了仓储与生产环节间的实时信息交互,做到精准地配送货品,确保生产高效地进行。1.2.2国内研究动态在国内,智能仓储系统的发展态势十分迅猛,特别是在电商、快递等行业。物流配送和仓储设备需求在我国将会进一步扩大,而仓储设备的智能化,是未来仓储系统发展的趋势REF_Ref3377\r\h[1]。京东物流创建了有名的亚洲一号智能物流园区,其核心特征在于整合了自动化立体仓储系统与智能物流设备集群,包括自动导引运输车和智能化分拣装置等关键技术装备,从而在货物存储、转运及分拣等关键作业环节实现了全流程自动化运作。更为重要的是,该园区通过运用大数据分析技术对商品销售数据进行多维度挖掘,建立精准的需求预测模型,据此实施前瞻性的库存优化配置策略,这一创新实践不仅显著提升了仓储系统的运作效能,同时实现了物流运营成本的系统性降低。当前,我国的很多仓储企业也很好地把握住了智能化的发展契机,充分利用了互联网技术发展的条件,通过挖掘海量的物流信息,实现对物流的决策管理REF_Ref6790\r\h[3]。政府也大力支持智能仓储的发展,出台了一系列鼓励政策,推动传统仓储企业向智能化转型。众多高校和科研机构积极投入智能仓储技术研究,产学研合作不断深化,如物联网、人工智能、机器人技术在仓储领域的应用研究,为智能仓储系统的优化升级提供了技术支撑,促使国内智能仓储系统的技术水平和应用范围不断拓展。1.3研究的主要内容为保证货品的安全,避免精密仪器受潮、食品药品变质、货品失窃等事件,同时便于管理人员对仓储环境和仓储的货品进行统一管理,设计了一款智能仓储管理系统。研究的主要内容如下:(1)对仓储环境的温湿度进行实时监测,避免货品因高温或受潮等环境因素而产生变质,主要布防在需要干燥稳定存储条件的食品、药品、精密仪器等货架区域。通过部署温湿度传感器采集当前环境温湿度数据,当检测到温度或湿度超出预设安全范围时自动发出警报。(2)通过烟雾传感器实时采集环境烟雾浓度数据,避免起火、自燃等极端情况导致的二氧化碳浓度超标,在浓度超标时立即启动报警机制。(3)监测是否有人非法闯入,避免货品失窃,主要针对非工作的时段。通过部署人体红外传感器,检测红外信号变化以判断是否有人非法闯入,有人闯入时,系统触发警报。(4)管理员对仓储货品的后台数据进行管理。管理员通过登录后台管理系统可线上查看仓储环境数据,并且可对仓储货品信息及库存进行管理。本系统采用STM32单片机作为核心控制器,结合WIFI通信模块及多种环境传感器。基于VisualStudio平台进行开发。1.4论文结构本文主要分为八个部分。第一部分为绪论。第二部分为技术概述。第三部分为系统分析。第四部分为系统概要设计。第五部分为硬件详细设计及实现,重点介绍了引脚电路图。第六部分为软件详细设计及实现,重点介绍了工作流程和代码实现。第七部分为系统测试。第八部分为总结,总结本文设计实现了什么功能、遇到的问题和对未来的展望。2开发相关的软件与硬件介绍2.1硬件介绍2.1.1STM32开发板作为一款高性能微控制器,STM32系列芯片集成了多样化的外设模块,诸如定时器单元、多种通信协议接口、模数转换器、数模转换器以及电源管理单元,这些功能模块能够充分适应不同应用领域的开发需求。该系列产品还配备了片上闪存存储器,其存储容量可根据具体型号实现从数千字节到兆字节级别的灵活配置,为程序代码和数据存储提供了充足的硬件支持。它还支持外部存储器接口,如串行Flash、SD卡等,可以扩展存储容量和实现数据的快速读写REF_Ref16345\r\h[5]。STM32单片机可通过多种开发工具进行开发,如Keil、IAR、CubeMX等。本研究选用的STM32F103ZET6微控制器基于ARMCortex-M3架构,采用32位处理核心,其封装形式为144引脚LQFP,该芯片具有高性能与低功耗的特性。其中,电源引脚包括提供3.3V电源的VDD和接地的VSS;时钟引脚OSC_IN和OSC_OUT用于连接外部晶振;112个通用输入输出引脚(PA0-PA15等多个端口)可配置为多种模式以连接外部设备;串口引脚如USART1、USART2、USART3具备不同的引脚组合用于串口通信;ADC引脚和DAC引脚可分别实现模拟信号与数字信号的转换;定时器引脚分布于多个端口,可产生定时中断、PWM输出等;JTAG/SWD调试引脚则用于连接调试器完成程序下载与调试。在本系统的设计与实现中,用到了多个GPIO引脚(将其设置为输入模式来接收传感器传来的数据)、数模转换引脚(接收模拟信号)和USART3串口引脚组合(输入和输出)。2.1.2传感器本系统使用到的传感器如下:(1)DHT11温湿度传感器DHT11型温湿度传感器具备实时采集并输出环境温湿度参数的功能,在各类温湿度监测场景中得到普遍应用。它由电阻式湿度感应元件和NTC测温元件构成,通过检测环境变化来感应温湿度的值,实物如下图2-1所示:图2-1DHT11温湿度传感器(2)MQ-2烟雾传感器图2-2所示的MQ-2型烟雾传感器的核心部件是由半导体陶瓷材料构成的敏感元件,其工作原理基于气敏效应:当环境中的烟雾分子与敏感元件表面发生吸附作用时,会引起材料内部载流子浓度的改变,从而导致元件电阻值产生可测量的变化,通过监测该电阻信号的定量变化即可实现对空气烟雾浓度的精确检测。图2-2MQ-2烟雾浓度传感器(3)人体红外传感器HC-SR501人体红外传感器是一种基于热释电效应的电子器件,其主要功能在于通过感知人体辐射的红外线能量并将其转化为可测量的电信号输出。HC-SR501实物如下图2-3所示:图2-3人体红外传感器2.1.3ATK-ESP8266(WIFI)模块ATK-ESP8266作为一款集成TCP/IP协议栈的UART-WiFi转换模块,其核心功能在于实现串行通信数据与无线网络信号之间的双向转换。该模块具备STA、AP以及STA+AP混合三种可配置工作模式,这种多模式设计显著提升了其在不同网络拓扑结构中的适应性与应用灵活性。本设计中,需要ESP8266与搭建的TCP服务器进行无线通信。ATK-ESP8266实物如下图2-4所示:图2-4ATK-ESP8266模块2.2软件介绍2.2.1开发环境(1)STM32开发环境:KeiluVision5。KeiluVision5是一个功能强大的开发系统,选择Keil5作为硬件部分的开发环境,为嵌入式应用程序的开发和调试提供全面的支持。它可用于快速创建高质量的嵌入式应用程序。(2)后台管理系统:VisualStudio(C#)。VisualStudio作为Windows平台主流IDE的优势在窗体应用开发中尤为突出。VisualStudio开发环境集成了多样化的可视化设计组件,能够借助直观的拖拽操作直接布局UI元素。VisualStudio的拖拽式设计和自动代码生成功能能将界面开发时间缩短至少50%,使得开发人员能够在短时间内完成交互界面原型的构建工作。VisualStudio还具备强大的代码编辑、调试和性能分析功能。2.2.2C#语言介绍作为.NET平台的核心语言,C#语言在保留C语言和C++语言简洁性与执行效率的基础上,巧妙融入了Java虚拟机的跨平台特性与面向对象理念,是目前主流的编程语言之一。C#语言可以高效便捷地开发各种应用程序,微软公司提供了完备的类库以方便程序员开发REF_Ref8178\r\h[6]。通过强类型检查、自动垃圾回收机制及运行时异常处理保障代码安全性与稳定性。该语言支持多范式编程,包括面向对象特性(如类、继承、多态)、函数式编程(Lambda表达式)以及现代化语法(LINQ数据查询、异步编程模型async/await),显著提升开发效率。依托开源的.NETCore框架,C#实现跨平台兼容性,可在Windows、Linux、macOS等系统运行。其工具链如VisualStudio提供高效开发环境,结合丰富的类库与活跃社区生态,使C#成为企业级应用与创新技术开发的主流选择。2.2.3SQLServerSQLServer是由微软公司开发的关系型数据库管理系统,其跨平台适配能力覆盖从个人计算环境到企业级服务器集群的多种硬件配置,以其高性能、可扩展性和与微软生态系统的深度集成著称。充分利用WindowsNT的优势,支持对称多处理器结构、存储过程和ODBC,提供强大的事务处理功能和数据完整性保障。内置数据复制功能、商业智能(BI)工具,支持联机事务处理(OLTP)和复杂数据分析。可在Windows、Linux及容器中部署,并支持Azure云平台。3系统分析3.1可行性分析(1)技术可行性:C#是由微软开发并推广的编程语言,与Windows平台有着紧密的联系。VisualStudio是C#开发的主要集成开发环境,它为开发Windows窗体应用提供了强大且全面的支持。STM32单片机与各类传感器技术成熟,能够满足系统需求,并且在生活中应用广泛,其技术可行性不言而喻。(2)经济可行性:本系统的开发软件开源,是不需要付费的。硬件部分选配的传感器、STM32主控芯片等器件市场价格亲民,控制在百元左右。系统的系统架构设计充分考虑了模块化扩展需求,后期维护成本也非常低。这都说明实现该系统的经济可行性很高。(3)操作可行性:系统的界面设计基于实用主义,十分简洁和直观。不需要进行专门的培训,没有经验的人也可以快速上手,管理员登录系统就可以查看相关数据信息。3.2功能需求分析为了打造一个良好的仓储环境,减少货品的损失,同时方便管理人员对仓储环境和仓储的货品进行统一管理,作为一款基于物联网的智能仓储管理系统,需要实现以下功能:(1)必须对仓储环境重要参数进行实时监测,避免突发情况。系统可以在高温、低温、过干、过湿、二氧化碳浓度超标(疑似起火的情况)等异常情况时进行警报,以避免极端的环境让货品造成损失。系统需要检测人体红外信号,在识别到人体时进行警报,以避免有人非法闯入仓库进行盗窃行为造成损失。为货品存储保驾护航。(2)管理人员可以通过后台管理系统直观地查看到仓储环境数据,如温度、湿度、烟雾浓度以及是否有人,管理人员能第一时间了解情况。(3)管理人员也可以通过后台管理系统线上查看环境数据,并且在此系统可以管理货品的数据(4)后台管理系统需要进行验证登录,避免数据的泄露。4系统总体设计4.1系统的总体设计思路智能仓储管理系统的设计基于C/S架构,即客户端-服务器结构。该系统采用分层架构,分为硬件层、通信层和应用层:(1)硬件层:STM32开发板等设备。(2)通信层:通过串口和局域网,实现硬件与后台管理系统的数据交互。(3)应用层:C#开发的Windows窗体应用,实现环境检测、货品管理、库存管理等功能。为了实现智能仓储管理系统的功能需求,在需要干燥稳定存储条件的食品、药品、精密仪器等货架区域部署DHT11温湿度传感器,在放置化学物品、容易起火或自燃物品的区域部署MQ-2烟雾传感器,来获取环境温度、湿度、烟雾浓度等数据,在监控死角通过红外传感器识别人体信号,STM32主控模块对采集的数据进行处理,异常时蜂鸣器进行报警,帮助管理人员保障仓库的安全性。数据采集分析后通过WIFI模块传输到服务器,并与SQLServer数据库进行交互。Windows窗体应用作为后台管理模块,管理员可在后台查看操作相关数据。系统总体框架图如下图4-1所示:图4-1系统总体框架图由系统总体框架图可以得知,智能仓储管理系统可以分成以下的几个大模块:(1)数据采集模块:该模块负责采集仓储环境的温湿度、烟雾浓度、人体红外信号的数据。(2)数据传输模块:在同一局域网内,采集到的数据在该模块被传输到服务器,并接入SQLServer数据库。(3)液晶显示模块:该模块在获取的温湿度和烟雾浓度数据异常、检测到人体红外信号变化时(有人非法闯入),会触发蜂鸣器警报。同时液晶显示屏上会显示当前温湿度、烟雾浓度、人体红外信号状态等数据。(4)后台管理模块:该模块即由C#语言开发的Windows窗体应用。管理人员可通过登录后台管理系统实现环境监测、货品管理、库存管理等功能,通过SQLServer操作全部数据。后台管理模块设计图如下图4-2所示:图4-2后台管理模块设计图后台管理模块设置了以下功能:登录:管理人员必须准确地输入个人的账号和哈希密码进行验证登录,验证通过后,管理员就可以进入到管理员主界面。个人中心:管理员可以在主界面点击个人中心功能来修改个人的密码。环境监测:管理可以实时查看仓储环境数据及是否有人非法闯入。货品管理:分为分类管理和信息管理,管理员可以查看货品的所有分类,通过分类查找想要的货品,也可以修改货品对应的信息。库存管理:管理员可以查看所有的库存日志,对货品的去向有详细的了解,并且可以对货品进行出入库操作。4.2数据库设计该系统数据采用SQLServer数据库,根据系统需求和功能设计建立了管理员表、货品信息表、货品分类表、库存日志表、设备表。管理员表(Administrators)如下表4-1所示:表4-1:管理员表字段名称类型空默认值属性备注AdminIDINT否无主键,自增IDAdminUsernameNVARCHAR(50)否无唯一用户名AdminPasswordNVARCHAR(100)否无无密码货品分类表(Categories)如下表4-2所示:表4-2:货品分类表字段名称类型空默认值属性备注CategoryIDINT否无主键,自增分类IDNameNVARCHAR(30)否无唯一分类名称DescriptionNVARCHAR(200)是无无分类描述货品信息表(Products)如下表4-3所示:表4-3:货品信息表字段名称类型空默认值属性备注ProductIDINT否无主键,自增货品IDNameNVARCHAR(50)否无无货品名称CategoryIDINT是无外键,引用Categories货品分类CostPriceDECIMAL(10,2)否无无进货成本价SalePriceDECIMAL(10,2)否无无销售价格StockINT否0无库存数量CreateTimeDATETIME否GETDATE()无录入时间IsActiveBIT否1无是否上架库存日志表(InventoryLog)如下表4-4所示:表4-4:库存日志表字段名称类型空默认值属性备注LogIDINT否无主键,自增日志IDProductIDINT是无外键,引用Products货品IDChangeQuantityINT否无无库存变动数量OperationTypeNVARCHAR(10)否无无操作类型OperationTimeDATETIME否GETDATE()无操作时间RemarksNVARCHAR(100)是无无备注设备表(Device)存储环境数据,主要包括温度、湿度、烟雾浓度、状态(人体信号)数据和数据更新的时间,如下表4-5所示:表4-5:设备表字段名称类型空默认值属性备注DeviceIDINT否无主键,自增设备IDDeviceNameNVARCHAR(50)否无无设备名称TemperatureDECIMAL(5,2)是无无温度HumidityDECIMAL(5,2)是无无湿度SmokeDECIMAL(5,2)是无无烟雾浓度StatusINT是无(0/1)状态(0/1)UpdateTimeDATETIME是GETDATE()无更新时间4.3实现方法该系统需要实现的核心功能环境监测离不开数据的传输,现在有两种不同的实现数据传输的方案:(1)蓝牙方案:选用HC-05蓝牙模块,硬件电路简单,只需连接电源、地和串口,即可与多种设备连接,比如蓝牙模块可以方便地与STM32微控制器通信。支持主从模式、透传模式等多种工作模式,可满足不同应用场景需求。但是蓝牙的传输距离较短,一般在10米左右,不适用于远距离通信,数据传输速率相对较低,不适合大量数据的快速传输。功耗很低(2)WiFi方案:选用ESP8266模块,集成了WIFI功能,数据传输速率高,传输距离可达几十米。支持多种通信协议,如TCP、UDP、HTTP等,可以十分灵活和方便地与搭建的服务器和外部设备进行通信,进行远程控制和数据传输。但是局域网连接受距离和信号干扰影响较大,在复杂环境中可能出现连接不稳定的情况。该模块的功耗相对较高。分析上面两种方案的优缺点,在实际应用中,仓库的环境比较单一且空间大,需要频繁地传输数据,选择WIFI方案能更好地实现智能仓储管理系统。5系统的硬件详细设计5.1数据采集模块5.1.1DHT11温湿度采集模块DHT11温湿度传感器主要由电阻式湿度感应元件和NTC测温元件构成,采集周围环境的温度和湿度,并将数据传输给单片机进行处理。该模块的三个实用引脚分别是VCC、DATA、GND,其中VCC引脚接入3.3V电源,GND引脚接地,DATA引脚负责与STM32F103芯片进行串口通信,将DATA引脚接入STM32单片机的GPIO引脚PA1,设置为输入模式。电路如下图5-1所示:图5-1DHT11温湿度传感器电路图5.1.2MQ-2烟雾采集模块MQ-2烟雾传感器主要由敏感元件、测量电路组成。在含有烟雾的环境中,烟雾中的气体分子会吸附在敏感元件表面。敏感元件会加热与气体分子产生氧化还原反应,氧离子浓度的变化会导致其电阻值发生变化。敏感元件电阻的变化会进一步转换为电压或电流信号。通过对这些电信号的检测和处理,就可以获取当前环境中烟雾的浓度。该模块有四个引脚,VCC引脚接入5V电源,GND引脚接地,AOUT为模拟信号输出引脚,可接入到STM32103芯片具有ADC功能的引脚,DOUT引脚为数字信号输出引脚,可接入到STM32103芯片的普通GPIO引脚。本设计中不使用DOUT引脚,将AOUT引脚接入到具有模拟输入功能的PB0引脚,并配置相应的ADC功能,电路如下图5-2所示:图5-2MQ-2烟雾浓度传感器电路图5.1.3人体红外感应模块人体红外传感器中的敏感元件吸收到人体发出的红外线后,温度会发生变化导致材料内部的电极化状态改变产生电荷,传感器内部的电路会将这些电荷转换为电信号,并进行放大、滤波等处理,当检测到的电信号强度达到一定阈值时,传感器就会输出一个高电平。人体红外传感器HC-SR501包含三个引脚,其中VCC引脚需连接至5V电源,GND引脚应接地,而OUT引脚作为信号输出引脚,当检测到人体发出的红外信号时,OUT引脚会输出高电平,若未检测到人体红外信号,则输出低电平。本设计中将该引脚连接到STM32单片机的GPIO引脚PA2,在使用时,需要将对应的引脚配置为输入模式,电路如下图5-3所示:图5-3人体红外传感器电路图5.2数据传输模块5.2.1ATK-ESP8266(WIFI)模块在本系统里,单片机和服务器的数据传输通过ESP8266模块来实现。WIFI模块借助串口与STM32单片机通信。该模块和单片机之间依靠串口输入输出的组合引脚进行通信。具体的连接方式为:把ESP8266模块的RXD引脚连接到STM32F103芯片的TXD引脚,同时将ESP8266模块的TXD引脚连接到STM32F103芯片的RXD引脚。这两个引脚分别和STM32F103芯片串口通信的接收引脚与发送引脚相对应。在本次设计中,WIFI模块是通过USART3和单片机进行通信的。电路如下图5-4所示:图5-4ATK-ESP8266模块电路图5.3液晶显示模块本设计使用的是正点原子的精英版STM32开发板,作为一块成品开发板,它自带了一块TFTLCD屏幕用于液晶显示,因此不需要连接电路。TFTLCD在液晶显示屏的每个像素上都设置有一个薄膜晶体管,通过控制TFT的导通与截止,来控制像素点的亮度和颜色,从而克服了非选通时的串扰问题,使显示液晶屏的静态特性与扫描线数无关,提高了图像质量。MCU通过接口(如16位的8080并口或FSMC接口)将图像数据和控制指令传输给TFTLCD模块,模块内部的控制器根据指令对数据进行处理,并将数据存储到显存中,然后按照一定的时序将显存中的数据读出,驱动液晶像素点显示出相应的图像。6系统的软件详细设计6.1数据采集模块6.1.1DHT11温湿度采集模块温湿度采集模块工作流程:STM32微控制器会向DHT11发送开始信号。DHT11传感器检测到信号会对信号进行响应,然后准备发送数据,它以40位数据格式传输温湿度信息,其中最后8位为校验位。STM32接收数据后对数据进行校验,校验成功则说明数据传输正确,可提取出温湿度数据进行处理和显示,否则说明数据传输出现错误需要重新开始。工作流程图如下图6-1所示:图6-1温湿度采集流程图在获取温湿度数据时,采用延时检测的方式来读取DHT11的输出信号。将DHT11设置为输入模式,在此模式下对其输出信号进行循环检测,当检测到输出信号为低电平时,表明DHT11已准备就绪,能够进行数据传输。设置了超时机制,若循环检测次数超过100次仍未检测到低电平,则判定DHT11无响应,返回1。若在规定次数内成功检测到低电平,则返回0,表示通信成功建立,可读取温湿度数据。关键函数代码如下:voidDHT11_Rst(void) { DHT11_IO_OUT(); DHT11_DQ_OUT=0; delay_ms(20); DHT11_DQ_OUT=1; delay_us(30); }u8DHT11_Check(void) { u8retry=0; DHT11_IO_IN(); while(DHT11_DQ_IN&&retry<100) { retry++; delay_us(1); }; if(retry>=100)return1; elseretry=0;while(!DHT11_DQ_IN&&retry<100) { retry++; delay_us(1); }; if(retry>=100)return1; return0;}u8DHT11_Read_Bit(void) { u8retry=0; while(DHT11_DQ_IN&&retry<100) { retry++; delay_us(1); } retry=0; while(!DHT11_DQ_IN&&retry<100) { retry++; delay_us(1); } delay_us(40); if(DHT11_DQ_IN)return1; elsereturn0; }u8DHT11_Read_Byte(void){u8i,dat;dat=0; for(i=0;i<8;i++) { dat<<=1; dat|=DHT11_Read_Bit();} returndat;}6.1.2MQ-2烟雾采集模块烟雾采集模块工作流程:通电后MQ-2传感器内部的加热丝会将敏感元件加热到一定温度即初始化,检测到烟雾时传感器的电信号会发生改变,变化的电信号会经过放大、滤波等处理,最后将数据发送出去。工作流程图如图6-2所示:图6-2烟雾浓度采集流程图关键函数代码如下:MQ2_Init():初始化。Get_ADCValue():得到模数转换后的值。MQ2_GetPPM():MQ-2传感器数据处理。voidMQ2_Init(void){GPIO_InitTypeDefGPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN;//模拟信号输入GPIO_InitStruct.GPIO_Pin=GPIO_Pin_4;ADC_DeInit(ADC1);//ADC复位ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//外部触发ADC_Init(ADC1,&ADC_InitStruct);ADC_RegularChannelConfig(ADC1,ADC_Channel_4,1,ADC_SampleTime_239Cycles5);//周期采样ADC_GetCalibrationStatus(ADC1);//校准ADCADC_Cmd(ADC1,ENABLE);//ADC使能}uint16_tGet_ADCValue(void){ADC_SoftwareStartConvCmd(ADC1,ENABLE);//开启转换通道while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));}floatMQ2_GetPPM(void){MQ2_Value=Get_ADCValue()*(3.3/4096);MQ2_PPM=((MQ2_Value-1)/0.1)*200;returnMQ2_PPM;}6.1.3人体红外感应模块人体红外感应模块工作流程:模块内的热释电红外传感器能够敏锐地捕捉人体所发出的红外线,并将接收到的红外信号转换成电信号。所产生的电信号会经历放大、滤波等一系列处理步骤。当经过处理后的电信号强度达到预先设定的阈值时,传感器便会输出高电平,以此表明检测到了人体的活动。这个信号可以作为触发信号,响应执行其他设备,如BEEP警报。人体红外感应模块工作流程图如下图6-3所示:图6-3烟雾浓度采集流程图6.2数据传输模块系统启动后,首先完成STM32单片机的初始化工作。STM32单片机通过与之相连的传感器进行数据采集,并对采集到的数据进行预处理。ESP8266模块被配置为客户端模式,它会自动搜索并连接预设的WIFI网络。成功连接WIFI后,ESP8266会与指定IP地址和端口的TCP服务器建立稳定连接。随后,STM32单片机将预处理后的数据通过ESP8266发送给TCP服务器。TCP服务器会持续监听指定端口,接收到数据便对其进行解析,并将解析后的数据存储到与之连接的数据库中。数据传输模块工作流程如下图6-4所示:图6-4数据传输系统流程图6.2.1ATK-ESP8266(WIFI)模块该部分实现了基于ATK-ESP8266模块的WiFi连接和TCP通信功能。此外需要在kile5程序代码上预先设置好连接的局域网名称和密码。关键代码如下:voidWIFI_ResetIO_Init(void){GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);}charWIFI_JoinAP(inttimeout){WIFI_RxCounter=0;memset(WIFI_RX_BUF,0,WIFI_RXBUFF_SIZE);WIFI_printf("AT+CWJAP=\"%s\",\"%s\"\r\n",SSID,PASS);if(strstr(WIFI_RX_BUF,"WIFIGOTIP\r\n\r\nOK"))break;u1_printf("%d",timeout);if(timeout<=0)return1;return0;}6.2.2服务器模块该部分是在PyCharm上用Python创建了一个TCP服务器,用于处理客户端的连接和数据传输,同时连接了SQLServer数据库进行数据的存储和交互。代码可分为两个部分:与客户端的连接和与数据库的连接。运行代码就可以启动服务器。关键代码如下:defget_connection():try:conn_str=(r'DRIVER={ODBCDriver17forSQLServer};'r'SERVER=LAPTOP-51HUEOL4;'r'DATABASE=data;'r'UID=yoo;'r'PWD=123456;')connect=pyodbc.connect(conn_str)print("数据库连接成功")returnconnectexceptpyodbc.Errorase:print(f"连接失败,错误信息:{e}")returnNonedefdict_fetchall(cursor):columns=[col[0]forcolincursor.description]return[dict(zip(columns,row))forrowincursor.fetchall()]classHandler(socketserver.BaseRequestHandler):defhandle(self)->None:#获取客户端的IP地址address,pid=self.client_address#使用无限循环持续接收数据print(f'{address}connected!')try:whileTrue:data=self.request.recv(4096).decode('utf-8')ifnotdata:breaklines=data.split('\n')print(lines)forlineinlines:print(line)try:response=json.loads(line)print(f"{address}发送给我的消息是:{line}")insert(response)updata(response)send_data=json.dumps({"status":"success","message":"数据已接收并处理"})self.request.send(send_data.encode())print(f"我发给{address}的信息是:{send_data}\n")exceptjson.JSONDecodeError:print(f"解析JSON数据出错:{line}")exceptExceptionase:print(f"处理请求时出错:{e}")exceptExceptionase:print(f"与{address}通信时出错:{e}")finally:print(f'{address}disconnected!')if__name__=='__main__':server=ThreadingTCPServer((IP,SERVER_PORT),Handler)print("Listening")server.serve_forever()6.3液晶显示模块显示模块的初始化在设计中是非常基础但是重要的,是正常显示出所需数据信息的准备工作,避免在后续的检测中出现测量误差。显示模块初始化流程如下图6-5所示:图6-5显示模块初始化6.4后台管理模块本系统的后台管理模块在VisualStudio平台利用C#语言进行搭建,连接SQLServer数据库进行数据管理。管理人员登录验证成功后可进入系统,系统的功能分为个人中心、环境监测、货品管理、库存管理几个大模块。系统的窗体设计如下:LoginForm:登录界面。Admin_MainForm:管理员主界面。Admin_PersonalForm:个人中心界面。Admin_MonitorForm:环境监测界面。Admin_EnvironmentForm:历史数据界面。Admin_CategoriesForm:货品分类管理界面。Admin_ProductsForm:货品信息管理界面。Admin_InventoryForm:库存管理界面。Admin_ChangesForm:库存变动界面。此外还建立了一个类DataHelp,主要用于窗体传值。6.4.1登录模块(1)登录功能的设计与实现管理员需要准确输入用户名与密码来进行登录操作。只有当输入的信息通过系统验证时,方可成功登录系统。登录流程如下图6-6所示,登录界面图如下图6-7所示:图6-6登录流程图图6-7登录界面图(2)管理员主界面当登录验证成功后,便能进入到主界面。在该界面中,管理员可浏览系统的全部的功能,可以查看实时时间,进入设置。只需点击相应的功能选项,便可跳转至对应的操作页面。主界面如下图6-8所示:图6-8管理员主界面图6.4.2个人中心模块管理员在此可修改个人的密码。修改的流程如下:系统会自动获取正在登陆的管理员用户名,管理员输入新密码(包含确认密码)后,系统通过用户名在数据库中查询对应的密码与待修改的新密码进行比对,新旧密码不能一致。个人中心如下图6-9所示:图6-9个人中心界面图6.4.3环境监测模块为保证货品的安全,避免精密仪器受潮、食品药品变质、货品失窃等事件,管理员在此界面可以实时监测仓储环境的温湿度、烟雾浓度,以及查看当前状态即是否有人非法闯入,方便管理员及时干预,以此为货品存储打造稳定且安全的环境。环境监测如下图6-10所示:图6-10环境监测界面图6.4.4货品管理模块(1)货品分类:为了方便管理员对货品的管理,详细标注了货品的分类名称和描述,通过分类帮助管理员快速找到想要的货品。在此界面管理员可对商品的分类进行查看和管理,货品分类管理如下图6-11所示:图6-11货品分类界面图(2)货品信息:管理员拥有对全部货品信息的管理权限。管理员能够依据货品的分类名称,对货品实施模糊查询操作。与此同时,管理员只需通过鼠标右键(选中对应的一行数据),即可一键更改商品的上架状态,实现商品的上架或者下架处理。一旦出现库存不足的情况,管理员会及时将相应货品下架。此外,对于已选中的货品,管理员有权进行删除操作。货品信息管理如下图6-12所示:图6-12货品信息界面图6.4.5库存管理模块为方便管理员对货品的库存进行管理,设置了库存管理模块。管理员在此页面可以对货品的去向有详细的了解,其中库存变动包括销售、进货等。根据货品的上架情况,管理员可以对货品进行出库和入库操作,系统会生成对应的库存日志,同时会自动修正货品的库存数量,库存不足时进行出库操作时会进行提醒,在进行入库操作时没有限制。库存管理界面如下图6-13所示,库存变动如下图6-14所示:图6-13库存管理界面图图6-14库存变动界面图7测试7.1硬件测试硬件调试的核心目标在于排查各类硬件异常,包括工艺缺陷和设计疏漏等不同类型故障。第一步:对电路板进行基础检测。使用数字万用表对电路板进行全面检测。先验证所有元器件引脚的布局以及参数的精度,着重检查相邻线路是否存在开路或短路问题。采用逐点测量的方式,判断各连接导线的通断状态是否与设计标准相符。第二步:供电系统验证。检查电源配置:1)检测供电线路与接地网络在电路各节点的接入准确性;2)验证电源开关的触点连接逻辑是否正确;3)针对芯片插座等关键部件,需测量各管脚间的阻抗特性,确认是否存在异常导通或截止现象。7.2运行测试7.2.1数据采集传输当系统完成上电并成功连接局域网网后,传感器便开始同步进行数据采集工作。采集到的数据通过串口会传输至STM32主控模块,由其进行处理后,在液晶显示屏上进行显示。同时,通过数据库的支持,后台管理模块能够实现对环境数据信息的实时查看。该模块主要测试传感器采集到的数据能否被准确并且实时地传输并正确地显示。数据采集传输测试如下表7-1所示:表7-1数据采集传输测试测试模块操作方法预期结果测试结果是否符合预期温湿度采集向温湿度传感器吹热风温湿度都会发生变化,且实时显示温度上升,湿度下降符合预期烟雾采集打火机点火烟雾浓度变大烟雾浓度变大符合预期人体红外信号采集人体经过状态值变化,BEEP警报响状态值变化,BEEP警报响符合预期测试结果如下图7-1、7-2所示:图7-1测试前显示图图7-2测试后显示图7.2.2功能测试针对后台管理模块的功能,包括系统的登录、环境监测、货品管理、库存管理进行测试。测试内容是各窗体界面能不能正确和流畅地显示和切换,能不能准确地读取和操作数据库的数据。测试的重点在数据的一致性。功能测试如下表7-2所示:表7-2功能测试测试模块操作方法预期结果测试结果是否符合预期管理员登录输入用户名、密码输入正确进入系统主界面,输入错误无法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021年法律职业资格(主观题试卷)真题
- 平安银行招聘题库及答案
- 2021年初级护师考试专业实践能力真题
- 2025年会计职称考试《初级会计实务》高频考点串联模拟试题解析与训练
- 2025年检验类之临床医学检验技术中级真题练习试卷A卷附答案
- 学校招生推广活动承诺书(3篇)
- 企业文档编写规范
- 采购流程标准化模板及成本控制
- 秋日的思索写景类读后感10篇
- 2025年剃须刀市场需求分析
- 2025至2030中国大豆浓缩蛋白行业市场深度研究与战略咨询分析报告
- 2025年国家开放大学(电大)《品牌传播策略与执行》期末考试复习试题及答案解析
- 2025年神经科脑卒中急性期病情评估模拟考试试题及答案解析
- YY/T 0310-2025X射线计算机体层摄影设备通用技术条件
- 中外合资企业组织文化构建研究-以S公司为例
- DB32T 5192-2025工业园区碳排放核算指南
- 口腔设备基础知识培训课件
- 剪辑调色基础知识培训课件
- 动漫五官教学课件图片
- 康复治疗技术就业
- 企业对外宣传课件
评论
0/150
提交评论