计算机科学与技术专业生产实践项目设计

2022-08-31 19:18郭永平
电脑知识与技术 2022年18期

摘要:设计一个应用无线传感网络技术的远程监控系统,作为计算机科学与技术、物联网工程、软件工程等专业高年级学生的生产实践项目,以项目为导向将所学知识融会贯通,转化为解决实际问题的能力。分析计算机相关专业学生能力培养中的学习需求以及高年级学生知识运用能力存在的问题,构建高年级计算机相关专业实践项目教学模型和能力培养关键特征。实践效果表明,基于远程无线监控系统实践项目能够激发学生学习潜能,提升学习的积极性和主动性,培养知识整合应用能力与实践创新能力。

关键词:教学实践项目;能力培养;监控系统

中图分类号:TP393       文献标识码:A

文章编号:1009-3044(2022)18-0048-03

开放科学(资源服务)标识码(OSID):

计算机科学与技术相关专业的高年级学生,经过两年多专业课程的学习,已经具备了简单的软硬件开发的能力。然而与企业级项目开发还存在很大的差距,对本科毕业生的弱项主要表现有以下三点,首先,知识严重碎片化,形成知识孤岛,无法将所学的知识融会贯通,面对多技术交叉融合,跨领域合作能力弱;其次,解决问题过程中,往往忽视问题的复杂性,解决问题不彻底,缺乏对可靠性、扩展性、稳定性等非功能性需求的考虑;最后,能够胜任某一方面具体工作,但创新能力及独立解决问题较弱。为了进一步提高学生动手实践能力和解决工程中复杂问题的能力,引入一项能够融合多项技术的实际应用系统,通过对其实现的关键技术进行解析,提升大学生解决现实工程问题能力,实现与企业用人需求形成无缝对接。

基于分布式无线传感网络的远程监控系统融合了传感网络技术、通信技术、自动控制、软件开发等多项技术的应用系统,广泛应用于农业、水文、灾害点、农业等领域,为人们不间断地提供远程监测对象状态的数据变化,是实现智能化、数字化的重要组成部分[1]。该系统涉及数字电路、通信技术、网络技术、数据库技术、软件开发技术等多项技术应用及实现细节;而且远程监控系统在我国已经广泛使用,也是技术最成熟的应用系统之一,解决方案的可选性多,硬件成本低,非常适合作为实验教学的实践项目。同时按照企业的开发环境、开发规范、质量标准进行要求,以任务为驱动,激发学生学习兴趣,提高识别问题和解决问题的能力,对已学习的专业知识再认识,构建自身知识体系,改善教学效果。

1 远程监控系统简介

典型的远程监控系统一般由部署于现场的无人值守监测站、数据传输网络和监控中心软硬件三部分组成。无人值守监测站包括数据采集节点、远程控制设备节点和网关结点组成,数据采集节点完成数据自动采集,远程控制设备节点用于响应上位机的指令,执行相应的操作,如:节水灌溉系统中的闸门开启与关闭;网关节点是监控现场数据采集的中心节点,有着承上启下的作用,负责监控现场网络组建、数据传输规约的标准化,与监控中心进行数据上报与指令下达。数据传输网络一般借助通信公网完成监控现场与监控中心长距离的通信,根据监控现场与监控中心实际影响因素,可选择GSM短信、通信卫星、GPRS/CDMA、4G/5G等通信方式。监控中心软件一般包括通信值守程序和应用软件,通信值守程序通过Scoket监听网络端口,接收检测站发送的报文,按照数据传输规约对报文进行解译,将校验后的数据存储于关系型数据库中;应用软件系统根据基于数据库系统完成实时监控、查询分析、预警预报、数据挖掘等功能。其工作活动如图1所示。

远程监控系统通信网络由数据感知区无线网络和通信公网两部分组成。数据感知区无线网络是由数据采集节点、设备控制节点和网关节点采用无线局域网、蓝牙、Zigbee、窄带物联(NB-IoT)、Lora等方式组建数据感知区无线网络[2]。通信公网则使用第三方通信运营商提供的移动通信网络技术,实现监控现场与监控中心之间长距离的通信。由于感知区内无线网络不便直接与公网进行数据交互,网关节点集成感知区无线通信模块和公网通信模块,公网通信有可插入SIM卡槽,通过SIM接入传输公网,实现数据双向传送。基于无线传感器技术远程监控系统网络结构如图2所示。数据采集节点和设备控制节点一般采用微型嵌入式结构芯片,能耗较低,一般采用電池供电即可。网关节点同时要一直保持接收数据和指令的准备,对于芯片数据处理能力和功耗上较高,可根据监控现场的实际情况,选择工控机、带有串口的平板电脑或自主开发的远程传送终端等,采用220V交流电或太阳能电池板进行供电。

2 温室监控系统的设计

设计一款用于农业大棚温室的远程监测系统,对温室内的土壤温湿度、空气温湿度和光照三项指标进行监测,并通过Web应用系统和手机App完成对数据的展示与分析。通过监测环境分析、硬件模块选型、通信方式选型、软硬件开发,解剖一个完整的监测系统项目,引导学生对电子电路设计、嵌入式编程、软件开发等方面技术的学习。

2.1传感网络设计

传感网络设计需要对温室大棚传输距离、功耗等技术参数比较分析,数据采集节点、控制节点使用Lora无线通信技术,采用以网关为中心节点,数据采集节点、控制节点为末端节点的星型网络结构,由网关节点负责组网,远距离数据传输技术将温室数据通过网关结点传输至监控中心采用GPRS通信方式。

2.2硬件设计

监控系统中硬件设计包括采集现场数据采集结点及网关节点的通信模块、传感器芯片、控制芯片及供电模块的技术,完成各个模块的技术参数、处理能力、时钟电路、复位电路、A/D转换电路及电源电路的设计[3]。

1) 数据采集节点设计:数据采集节点需要温室环境因子转化为电脑可识别处理的电信号和数字信号。数据采集节点主要由传感器模块、MCU 模块、LoRa通信模块以及电源模块组成,硬件结构图见图3。其中空气温湿度传感器选用SHT11 数字型温湿度传感、土壤温湿度传感器选用TDR-5 数字型温湿度传感器、光照强度传感器采用TSL2561 光强数字转换芯片,MCU模块选择STM32L151C8T6 超低功耗处理器芯片,通信模块选择SEMTECH公司生产的SX1278LoRa通信模块,采用12V 锂电池对整个节点进行供电。

2) 网关节点设计:网关节点是实现监控现场 Lora 无线网络组建以及数据的集中处理与转发。一方面通过 Lora通信方式与数据采集节点进行数据交互,另一方则通过 GPRS 模块以 TCP/IP 的方式与监控中心的值守程序进行通信,实现温室现场与外部网络的连接。网关结点由。硬件结构框图如图4所示。Lora通信模块选择SX1301 芯片并结合两片 SX1255 射频芯片实现电路的设计;MCU模块选择STM32L151C8T6 超低功耗处理器芯片;GPRS 采用SIMCOM 公司生产的SIM900A通信模块;采用外接 DC 24V 开关电源并从 220V 交流电中获取用电的方式,再经过 DC-DC 转换电路实现各器件的供电。

2.3软件设计

温室监控系统中软件设计包括网关节点与数据采集结点的通信协议、网关与监控中心之间的数据传输规约,数据采集节点软件、设备控制节点软件、网关节点软件、值守程序及应用程序组成。数据传输规约参照《水资源监控管理系统数据传输规约》和《远动设备及系统 应用数据的一般结构》进行设计。采集节点及网关结点软件开发使用C语言编程,IDE环境选用Keil u Vision5;值守程序和监控中心应用,选用C#、Java等面向对象高级语言开发的桌面程序、Web应用及移动App。

1) 采集结点软件:完成系统初始化、加入网络、按照设定的频率中断请求,完成数据的采集,按照通信规约对数据封装,并传输至网关结点,主要包括模块初始化、读取数据和数据组织与传输等三个过程。

2) 网关结点软件:完成硬件接口初始化、网络初始化、Lora网络创建,对采集节点地址进行管理,创建TCP/IP连接,接收来自节点监测数据,并对接收数据进行解析、整理、标准化后,将报文发送给值守程序。

3) 通信值守程序:通信值守是安装在监控中心伺服服务器上的应用程序,主要完成接收、处理、入库、存储、转发、监视等功能,接收来自采集系统的原始报文数据,并通过译码程序对原始报文进行译码,得到实际遥测数据并写入数据库。值守程序通过IP地址和通信端口号创建Socket终端节点,并开始监听服务,收到监测现场网关发送的链接请求后,完成连接请求,执行异步回调函数,开始接收请求方数据传送,接收完成后,执行回调函数完成对报文的解译。执行代码如下,在主界面调用界面钩子函数load,创建本地Scoket结点,其中CommuTCP是一个封装了Scoket的类,定义了数据状态数据和接收数据、发送指令回调函数等。主界面load代码如下:

private void frmMain_Load(object sender, EventArgs e)

{

CommuTCP myServer = new CommuTCP(this);

myServer.StartListening(m_strHost, m_intPort);

}

CommuTCP中接收數据回调函数代码如下,在回调函数中将数据接收到异步状态对象中,转化为二进制字节数组,并对字节进行校验,然后根据传输规约进行解译。

private void ReceiveCallback(IAsyncResult ar){

String content = String.Empty;

StateObject state = (StateObject)ar.AsyncState;

Socket handler = state.workSocket;

int intBytesRead = handler.EndReceive(ar);

byte[] byteData;

string strIPClient = handler.RemoteEndPoint.ToString();

byteData = ShareClass.DataConvert.GetSubByteFromBuffer(state.buffer, 0, intBytesRead);

int intTemp = CheckPackage(byteData);

if(intTemp==1){

byte[] byteAnswer = null;

GetPackageData(byteData, ref  blnNeedAnswer, ref  byteAnswer);

}

}

值守程序包括Scoket通信、异步回调、多线程、多种终端报文的解译、数据存储、人机交互界面设计等技术内容,涉及的功能模块多,业务规则复杂多变,对容错性、并发性和稳定性要求较高,非常适合面向对象设计技术学习深度的训练[4]。可以引导学生完成对象识别和抽象、软件设计模式的使用,深刻地理解和体会面向对象设计原则的应用。

4) 应用程序:应用程序是基于数据库创建的WEB应用及移动App,示例项目数据库采用MySQL数据库,后端开发语言选择Java语言,软件体系结构选择SSM分层框架,前端选择Vue+Element框架,采用MVVM模式。通过示例项目可以让学生掌握restful风格编程、Spring的依赖注入、面向切面的编程、接口测试及前端分层、封装的使用。

3检验

该实践项目已经成功应用于宝鸡文理学院计算机学院高年级学生综合实践课程,取得良好的实践效果。课程以8周为一个周期,实践环境完全模拟企业的生产环境和工作要求,包括软硬件开发规范、工作例会、项目评审等要求。实践环境配有文件服务器和配置管理服务器,为学生各种标准规范、示例项目源码、文档样例及模板的下载[5];配置管理服务器对学生周工作计划、工作日志、会议纪要、设计图纸、代码等配置项进行管理,供教辅人员监督检查。具体实践过程如下:

1) 项目师范演示:实验教师详细介绍示例项目的构建过程及实现过程中的技术关键点、注意事项等;

2) 学生组建团队:对学生进行分组,学生自主组建4~5人团队,按照给定的模板编写项目开发计划和人员配置计划;

3) 实践项目設计:依据示例项目,举一反三,学生可选择类似实践项目,如:提水灌溉、水质监测、智能家居、智慧仓库等项目作为实践项目;

4) 项目设计开发:开发过程主张先完成,后完美策略,培养学生继续学习能力。鼓励学生先利用自己掌握的技术及利用各种学习资源以项目组为单元独立解决问题。实验教师进行答疑和纠偏;通过多次迭代,循序渐进,引导学生对实现细节的关注和技术深度挖掘;

5) 项目验收:项目组进行现场演示,全体参加实训的学生对开发项目组的成果开展批评和自我批评。会后项目组成员仔细总结经验与教训,完成一个完整的PDCA循环。

4 结论

基于无线传感网络技术的远程监控系统具有应用领域广泛、技术交叉点多、可选择解决方案多、项目规模适中、难度可伸缩性强等特点,非常适合用于计算机科学与技术、物联网工程、软件工程等专业高年级学生的生产实践项目。该项目有利于学生对实际项目中多项技术融合的理解与学习,通过实践可锻炼学生的学习、沟通、识别问题与解决问题的能力以及学生了解企业开发规范与管理过程,体验团队协作成果,对于实现以产出为导向的新工科建设具有一定意义。

参考文献:

[1] 王琦,张睿曦,赵恒.基于OpenWrt的智能大棚监控系统设计[J].河南机电高等专科学校学报,2018,26(3):4-7.

[2] 赵磊.基于云平台的温室智能灌溉系统的研究与开发[D].兰州:兰州理工大学,2020.

[3] 刘远仲,谭鹤毅,张海波,等.一种基于ZigBee的智能农业温室大棚控制系统设计[J].电子制作,2020(15):23-24,17.

[4] 殷方园,郭永平.基于B2C模式的小型监测预警系统设计与实现[J].微型电脑应用,2021,37(5):30-33.

[5] 吴湘宁,彭建怡,罗勋鹤,等.高校人工智能实验室的规划与建设[J].实验技术与管理,2020,37(10):244-250.

【通联编辑:王力】