(1)掌握智能温室大棚物联网架构、组网等设计原理与方法,培养学生具有物联网工程项目规划、实施的能力。
(2)掌握MODBUS协议、MQTT协议的内涵,基于上述协议的数据采集与传输的原理及其编程实现方法,培养学生的物联网系统设计和开发能力。
(3)熟悉和掌握温室大棚温度控制策略及其实现方法,熟悉和掌握人工智能在农业物联网中的应用,培养学生解决复杂工程问题的能力。
(4)了解物联网领域的前沿发展动态与趋势,培养学生具有良好的人文素养、职业道德,团队合作精神和终身学习能力。
智能温室大棚物联网系统虚拟仿真实验项目,针对西红柿的喜温特性,以大棚温度参数为研究对象,从温室大棚物联网架构搭建与组网模块、温度采集模块、采集数据传输模块、温度控制模块等四个实验内容入手,根据西红柿周年化种植对温度要求高,而一天中温度的变化大的特点,对西红柿生长各个时期的温度进行调控,建立西红柿温度生长模型。实验将传感器技术、MODBUS通信技术、MQTT通信技术、C语言和Android物联网开发技术,应用到西红柿温室大棚种植温度自动调控系统中,学生综合运用程序设计语言、算法设计与分析、计算机通信与网络、计算机接口与控制等计算机专业知识设计并实现该系统,培养学生解决复杂工程问题的能力和创新能力。
知识点:共6个
(1)总线型网络架构
(2)设备及传感器选型
(3)MODBUS组网
(4)MODBUS采集协议
(5)MQTT传输协议
(6)温度控制策略
一、实验教学过程及实验方法
1、实验教学过程
实验采用任务驱动式教学方法,6个核心知识点、16个步骤,4个学时。实验教学过程按三阶段,三个层次进行。实验教学过程及实验流程如图1所示。
图1智能温室大棚物联网系统虚拟仿真实验总体设计流图
阶段二:实验操作及分析。本阶段是实验项目的主体,分三个层次。
层次一、基础先导层次
学生要完成总线型物联网搭建和MODBUS组网。通过构建总线型物联网系统架构,完成传感器的选型、设备的连接和485组网,掌握物联网系统的总体架构。
层次二、探索层次
温度数据采集仿真模块。选择不同的串口地址、功能码、温度数据存放位置、数据长度等参数,通过系统仿真和验证,探索MODBUS数据采集指令的构成规则。更进一步,学生可在自主开发的可视化编程环境下设计数据采集程序,熟悉基于MODBUS协议的数据采集实现方法,特别考查串口地址选取错误、协议格式错误等情况下,无法正确实现数据采集的情况。
温度采集数据传输仿真模块。学生根据采集温度数据的位置,依据主题、地址、功能码、数据长度等参数,通过系统仿真和验证,探索MQTT传输协议的原理。更进一步,学生可在自主开发的可视化编程环境下设计数据传输程序,熟悉基于MQTT协议的数据传输实现方法,特别考查串口地址选取错误、协议格式错误、数据标识错误等情况下,无法正确实现数据传输的情况。完成测试题
层次三、应用层次
阶段三:实验报告及讨论。
学生提交实验报告,并进行学习讨论;实验报告记录实验者所有的实验数据,并以图表形式呈现;系统根据标准的答案和实验数据进行比对,给出相应的分数;设置了ZigBee组网设计、移动端编程等作为实验的补充,拓展学生知识面。
2、实验方法
本实验分别采用观察法、比较法、探究法、自主设计法。
(1)观察法:了解西红柿的适宜温度以及温室内降温,升温的调控方法,观察各种控制手段对降温和升温效果之间的差异。让学生感受下智能温室大棚的场景,以及不同的地理位置、设备的联动对温度变化的影响。
(2)比较法:学生搭建不同的物联网架构,比较不同架构的合理性;选择不同的传感器,比较其价格和性能;在温度控制策略的设计和优化方面,设计不同的隶属函数,比较其温度调控的速度和超调量的大小。
(3)探究法:选择不同的串口地址、功能码、温度数据存放位置、数据长度等参数,通过系统仿真和验证,探索MODBUS数据采集指令的构成规则。在自主开发的可视化编程环境下设计数据采集程序,探索MODBUS温度采集的原理;学生根据采集温度数据的位置,依据主题、地址、功能码、数据长度等参数,通过系统仿真和验证,探索MQTT传输协议的原理。在自主开发的可视化编程环境下设计数据传输程序,探索正确实现数据传输的原理。
(4)自主设计法:在温室执行设备控制模型阶段,根据不同环境数据学生可自行设计控制模型,设计隶属函数,在虚拟环境中,控制温度的高低和均匀性。
二、实验内容及步骤
本实验共分为三个阶段,即实验背景及介绍,实验操作及分析和实验报告及讨论。现主要介绍实验操作及分析阶段的三个实验层次16个交互步骤。
实验阶段一:实验背景及介绍阶段
实验阶段二:实验操作及分析阶段
层次一、基础先导层次:
系统架构搭建和组网模块。学生通过构建总线型物联网系统架构,并完成传感器的选型、设备的连接和485组网,掌握物联网系统的总体架构。基础先导层次图如图2所示。
图2基础先导层次
模块一:总线型物联网搭建
交互步骤1:构建总线型物联网系统架构。
操作目的:掌握总线型物联网系统架构设计的一般方法,学习构成智能温室物联网系统的设备。
操作过程:学生领取任务后,进入物联网架构构建界面。为了搭建温度控制物联网,首先进行设备选型。选择所需要的设备,如PC机、服务器、RS-232转RS-485接口、Modbus采集器,Modebus继电器等,以及连接线路,如EtherNet总线、RS-485总线等,如图3所示。完成后将设备及线路连接起来,在这里,虚拟环境支持设备接口方向的调整,从而使得设备更易同线路相连。连线后,保存结果,完成温度控制物联网搭建,如图4所示。
操作结果:网络搭建完成后,点击“校验”,保存搭建的网络。此时,系统会自动检查网络架构是否正确,若正确,则提示实验成功,若有误,则提示学生返回上一步继续修改,直至网络搭建正确。操作结果如图5所示。
图3选择设备及线路
图4温度控制物联网搭建
图5温度控制物联网搭建结果
交互步骤2:传感器选型。
操作目的:学生在此步骤中可以了解常用温度传感器的类型及其参数,理解在实际工程中需要考虑经济效益、成本等多种因素的影响。
操作过程:本实验主要实现温室大棚中温度的调节与控制,因此,所用传感器主要是温度传感器,实验提供了五种不同性能的传感器,让学生根据需求进行选择。学生领取任务后,进入任务查看界面,其中描述了本步骤的要求,主要包括选择温度传感器时所需要考虑的因素。然后进入选型界面,显示5种传感器及其参数,主要有量程、温度分辨率、输出信号范围和价格,如图6所示。学生根据这些参数选择传感器,然后提交结果。系统根据学生所选传感器综合性能的优劣,自动给出评价得分。
图6不同型号传感器及其参数
操作结果:根据价格、性能等方面选择第三个传感器是最佳。系统评判结果图如图7所示。
图7传感器选择结果
交互步骤3:设备的连接。
操作目的:学生在此步骤中可以了解温度传感器在采集网络中的地位以及需要连接的设备,掌握传感器的不同线制及对应的接线方式。
操作过程:本步骤要求根据所选的温度传感器的线制,将其连接到MODBUS模拟量采集模块ADAM-4117的Vin2接口,主要考察将传感器正确连接电源以及对应的模拟量接口。学生领取任务后,进入采集网络搭建界面,在虚拟界面中,学生需要将温度传感器与电源和MODBUS模拟量采集模块正确连接,如图8所示,完成后进行提交。三线制如图9所示,四线制如图10所示。系统根据学生提交的结果进行评判,给出得分,若正确,进入下一步,若有错误,则提示返回重新完成。
图8传感器二线制的接线方式
图9传感器三线制的接线方式
图10传感器四线制的接线方式
操作结果:系统随机产生二线制,三线制,四线制,学生接线,若连接错误,系统有提示,并给出相应的分值。
模块二、MODBUS组网
交互步骤4:MODBUS采集器部署。
操作目的:掌握温室大棚内温度采集模块安装的位置。
操作过程:本次实验根据要求,采集温室大棚内不同位置的温度,点击“接线设置”,进入安装界面,选择采集器安装示意图中要安装的4117模块,点击场景中的4117模块上的标签按钮即可完成安装。如图11所示,将采集器安装在分布在大棚内部的8个有代表性的位置。当温度采集模块驱动激活会采集到该位置的温度。尤其是在白天有阳光的时候,南边的温度比北边的温度高,中间的温度比边上的高。但出现这种温度不均匀的现象,物联网系统的控制器会判断,并打开内通风而使得大棚温度均匀。
操作结果:安装完成,系统会自动判断其正确性,并且在后面的针对设备编号编程时,若错误,就会显示不能打开串口。
图11数据采集模块部署
交互步骤5:485组网设计。
操作目的:掌握温室大棚485组网的方式,了解终端匹配电阻对于长距离数据传输网络的意义。
操作过程:本步骤要求对现场已经安装好的MODBUS模拟量采集器模块进行设置,配置其对应的从机地址,并在合适的位置配置终端电阻,同时对整个网络进行单点接地设置。学生领取任务后,在虚拟的温室大棚场景中找到查看集线器以及连接的MODBUS模拟量采集器模块,如图12所示,并选择连接的COM口,为每一个COM口配置从机地址,并配置终端电阻,完成后进行提交。
操作结果:从图13可见,操作完成,A1-A8均安装在相应的安装的,且设备编号对应1-8,当设备的安装超过100米时,在两端均要加匹配电阻。
图12集线器示意图
图13配置从机地址及适配电阻结果图
层次二、探索层次:
探索层次,包含温度采集仿真模块和温度采集数据传输仿真模块。温度采集仿真模块:选择不同的串口地址、功能码、温度数据存放位置、数据长度等参数,通过系统仿真和验证,探索MODBUS数据采集指令的构成规则。更进一步,学生可在自主开发的可视化编程环境下设计数据采集程序,熟悉基于MODBUS协议的数据采集实现方法,特别考查串口地址选取错误、协议格式错误等情况下,无法正确实现数据采集的情况。
温度采集数据传输仿真模块:学生根据采集温度数据的位置,依据主题、地址、功能码、数据长度等参数,通过系统仿真和验证,探索MQTT传输协议的原理。更进一步,学生可在自主开发的可视化编程环境下设计数据传输程序,熟悉基于MQTT协议的数据传输实现方法,特别考查串口地址选取错误、协议格式错误、数据标识错误等情况下,无法正确实现数据传输的情况。探索层次图如图14所示。
图14探索层次图
模块一、温度采集仿真模块
交互步骤6:MODBUS指令仿真。
操作目的:掌握通过MODBUS采集器采集温度的通信的原理,通过设置从机地址、操作指令和数据地址,巩固和加深学生对MODBUS通讯协议理解。
操作过程:本步骤要求学生通过查看MODBUS模拟量采集器的从机地址,编辑MODBUS指令,从其寄存器地址为40001位置读出温度数据。学生领取任务后,进入虚拟的温室大棚,找到MODBUS模拟量采集器,确定其所对应的从机地址,如图15所示。进入指令生成器界面,学生输入从机地址、操作指令和数据地址,系统自动生成发送数据,此发送数据即为MODBUS采集指令,如图16所示。之后进入MODBUS采集指令界面,选择串口号,设置波特率,数据位,停止位,是否进行奇偶校验,输入上一步生成的发送数据,打开串口,发送数据。
操作结果:系统根据MODBUS协议生成返回数据,此返回数据为采集的温度数据,如图17所示。系统根据学生提交的结果进行评判,给出得分,若正确,进入下一步,若有错误,则提示返回重新完成。从图17中可以看出,其返回的温度数据为0000H,说明没有采集到温度,原因是安装的位置有误,需重新部署。当部署正确,且配置正确,会返回温度数据,如图18所示。其温度数据为6694H,其温度值计算算法:
温度值=((第一个单元数据*256+第二个单元数据)/65535)*130-30=((102*256+148)/65535)*130-30=22C
图15MODBUS模拟量采集器对应的从机地址
图16指令生成器
图17返回错误结果图
图18返回正确结果图
交互步骤7:MODBUS采集可视化程序设计仿真。
操作目的:掌握温度数据采集可视化编程的方法。通过程序设计完成串口打开、数据发送、数据解析和奇偶校验等MODBUS通讯协议的全过程。学生在Node-RED环境中完成程序编写和模块连接后,系统基于学生的设计进行仿真,将仿真结果反馈给学生,学生根据结果调整之前的设计,通过不断迭代,实现温度数据的采集。
操作过程:本步骤要求学生通过软件程序设计,完成温室大棚温度数据的采集。学生领取任务后,进入图形化程序设计环境Node-RED,在该环境中,学生可以通过程序来设计每一模块的功能,如图19所示,再将这些模块通过可视化的方法连接起来,完成MODBUS通讯协议的软件设计,实现将温度数据由传感器传输到MODBUS采集器,如图20所示。
操作结果:完成后,系统根据学生提交的结果进行评判,若正确,进入下一步,若有错误,则提示返回重新完成。
图19图形化程序设计环境Node-RED
图20Node-RED中功能模块的程序设计
模块二、温度采集数据传输模块
交互步骤8:MQTT数据传输仿真。
操作目的:掌握配置MQTT服务器地址方法。
操作过程:学生根据采集温度数据的位置,依据主题、地址、功能码、数据长度等参数,通过系统仿真和验证,探索MQTT传输协议的原理。更进一步,学生可在自主开发的可视化编程环境下设计数据传输程序,熟悉基于MQTT协议的数据传输实现方法,特别考查串口地址选取错误、协议格式错误、数据标识错误等情况下,无法正确实现数据传输的情况。采集的温度数据用MQTT(消息队列遥测传输)上传到MQTT服务器:打开MQTT服务器,启动MQTT服务,配置MQTT服务器IP地址为:127.0.0.1,端口号为:1883。实验虚拟仿真了MQTT服务器。如图21所示。
操作结果:配置成功后,启动,显示“运行中”。
图21MQTT服务器配置
交互步骤9:MQTT数据传输可视化程序设计仿真。
操作目的:本步骤重点考察学生对MQTT协议的理解和掌握。通过编程实现该协议,进一步加深了学生对MQTT协议的理解,强化了学生将理论知识用于实际应用的能力。
操作过程:本步骤要求学生通过软件程序设计,完成温室大棚温度数据的上传。学生领取任务后,首先启动MQTT服务端,为系统虚拟的MQTT服务器配置IP地址和端口号,如图21所示。服务器启动成功后,进入可视化编程环境Node-RED。根据实验要求,分别上传A1(从机地址:1)串口:COM501,A2(从机地址:2)串口:COM501和A3(从机地址:3)串口:COM501,三个MODBUS采集器的采集到的温度数据,学生通过编写程序,实现MQTT协议,完成温度数据的上传,如图22所示。完成后,系统根据学生提交的结果进行评判,若正确,进入下一步,若有错误,则提示返回重新完成。
操作结果:学生编程实现A1、A2、A3点的温度采集和传输,A1、A2、A3点对应大棚的南、中、北。在有阳光时三点的温度若相同,就不开启内通风。若相差5C则开启内通风。
图22MQTT协议的软件实现
层次三、应用层次:
图23应用层次图
模块一、温度控制及其策略设计优化
交互步骤10:中控配置。
操作目的:本步骤重点考察对中控设备的连接与配置。通过不同设备间的连线,使学生了解和掌握如何对温室大棚中的设备进行连接,从而实现对各设备的控制。
操作过程:本步骤要求学生对中控设备继电器进行配置,通过不同的通道连接执行器,实现对相应设备的控制。学生领取任务后,进入虚拟的智能中控配置界面,其中包括电源、MODBUS继电器和控制器。首先将控制器和电源连接,连接时注意正负极性,如图24所示。再将MODBUS继电器和控制器相连,连接时注意端口的对应,如图25所示。
操作结果:根据连接的位置,决定设备的地址。如内通风、外通风设备在MODBUS继电器上的地址为:00019和00020。
图24MODBUS继电器连接电源
图25中控设备连接
交互步骤11:MODBUS控制指令仿真。
操作目的:本步骤重点考察学生对MODBUS发送指令实现设备控制这一原理的理解和掌握。通过对从机地址、数据地址、操作数据等参数的配置,实现对不同设备的不同操作。
操作过程:本步骤要求学生通过编辑和发送不同的MODBUS指令,实现对相应设备的控制。学生领取任务后,进入MODBUS指令生成界面,如图26所示。在本实验中,温度调控执行设备通过控制器连接在MODBUS继电器上(从机地址:21),设备包括内遮阳、外遮阳、内通风、外通风、湿帘、天窗和加热器等,对应的数据地址分别为0017、0018、0019、0020、0021、0022和0023,操作数据有FF00(打开)和0000(关闭)。设置好参数后,系统自动生成发送数据。打开串口调试工具,输入串口号、波特率等参数以及之前生成的发送数据,系统生成返回数据。比较发送数据和返回数据,若两者相同,则表示设置正确,若不同,则进行修改。若设置正确,设备会执行相应的操作,学生可以在虚拟环境中观察到该设备状态的变化。最后,提交本步骤的结果。
操作结果:实验中,温度调控的执行设备有内遮阳、外遮阳、内通风、外通风、湿帘、天窗、等,它们连接在MODBUS继电器上(从机地址:21),其中内通风、外通风设备在MODBUS继电器上的地址为:00019和00020。实验中用串口调试工具,向MODBUS继电器发送指令,“15050013FF007EEB”,”MODBUS继电器从机号21+写+内通风00019+打开FF00,关闭0000+校验码”,发送成功,MODBUS继电器工作正常,返回数据与发送数据相同。打开内通风的成功示意图如图27所示。
图26指令生成
图27返回数据
交互步骤12:MODBUS控制可视化程序设计仿真。
操作目的:掌握不同的控制策略,执行的操作不同。
操作过程:在可视化编程环境中设计控制策略,建立智能温室大棚温度控制模型。编写控制程序。温度控制可视化编程图如图28所示,温度控制程序如图29所示,
操作结果:不同的控制策略,观察温度变化的趋势。
图28温度控制可视化编程图
图29温度控制程序
交互步骤13:控制器输入输出量的确定及模糊化。
操作目的:根据模糊神经网络控制器的目的,掌握控制器输入输出量的确定以及模糊化的方法。
操作过程:本步骤要求学生确定控制器的输入和输出量。本实验设计智能温室大棚温度模糊神经网络控制器的目的就是使室内温度值满足作物在生长发育过程中对温度环境的需求。因此确定控制器的输入量为智能温室大棚室内温度偏差e(t)和温度偏差变化率ec(t)。其中智能温室大棚内部实际温度值和设定值的差值为温度偏差。温度偏差变化率为ec(t)=de(t)/dt。
由于智能温室大棚室内只安装简易的控制设备,当冬季室外温度较低时,室内升温机构暂且只考虑加热器,冬季智能温室大棚内部温度不会很高,降温措施考虑风扇、天窗、湿帘。因此选取风扇、天窗、湿帘和加热器为输出量u(t)。
控制器输入输出量模糊化。本实验选取的输入量温度偏差e(t)和温度偏差变化率ec(t)及输出量u(t)都是精确量,但是模糊控制器只接收模糊量。因此要将输入输出的精确量做模糊化处理转换成模糊量。设定模糊集合ET和ECT为经过模糊化后的输入变量。模糊集合UT为输出控制量。
本实验设定智能温室大棚温度偏差ET的基本论域为[-1,1],设温度偏差变化率ECT的基本论域为[-1,1],输出控制量的基本论域为[-1,1]。我们将划分等级的参数组成的模糊集合称为参数的相应子集。若想使得系统控制精度高,就需要越多的模糊子集。本实验设定温度偏差模糊集ET和温度偏差变化率模糊集ECT的模糊子集均为7,隶属度函数曲线分别如图30和图31所示。
操作结果:智能温室大棚输出控制信号UT使用7个语言变量来定义:
UT的模糊子集={NB,NM,NS,ZO,PS,PM,PB}
NB:智能温室大棚大降温,风扇打开,天窗打开,湿帘放下。
NM:智能温室大棚适中降温,风扇打开,湿帘放下。
NS:智能温室大棚小降温,风扇打开。
ZO:保持不变,不操作。
PS:智能温室大棚小升温,加热器小功率工作。
PM:智能温室大棚适中升温,加热器中功率工作。
PB:智能温室大棚大升温,加热器大功率工作。
输出控制量UT也选取三角形隶属函数,隶属函数曲线图如图32所示。
图30ET的隶属函数曲线图
图31ECT的隶属函数曲线图
图32UT的隶属函数曲线图
交互步骤14:模糊推理规则确定。
操作目的:根据期望的目标温度,设计模糊推理规则。
操作过程:本步骤要求学生根据期望的目标温度,设计模糊推理规则。在本实验中,选择控制量的基本原则是:对于大或者比较大的误差,以快速消除误差为首要目标;对于较小的误差,最重要的是保证系统稳定,防止超调。
当温度偏差为一个较大的负向误差时,表明智能温室大棚室内温度实际值远小于设定值,这时根据基本原则以消除误差为主,要采取措施快速增加控制量,即其取值正大,使温室大升温。
当温度偏差为一个中等或较小的负向误差时,最重要的是保证系统稳定,要注意防止超调。此时温度偏差变化率起决定性因素,如果它是负数,说明温度误差还将继续增加,为了解决这一问题,控制量必须要取正大;如果它是正数,说明温度误差将减小,选择控制量时也可适当偏小。
当不存在温度偏差时,最重要的也是保证系统稳定,注意防止超调现象的发生。此时起决定性因素的依然是温度偏差变化率,如果它是负数,说明温度误差将向负向变化,控制量取正中或正小。如果它是正数,说明温度误差将向正向变化,无需对温室做控制操作。
操作结果:系统给出控制规则表作为本交互步骤的结果。如表1所示。
表1模糊控制规则表
交互步骤15:控制器学习算法。
操作目的:通过实验掌握控制器的学习算法和推理的手段。
操作过程:为了记忆和推理控制器的模糊规则,实验选取3层BP神经网络。如图33所示。令x1~x11为输入量温度偏差ET的模糊子集,x12~x22为温度偏差变化率ECT的模糊子集,y1~y11为输出控制量的模糊子集。因为一条规则对应一个样本(本实验中共有如表1所示的7条规则),所以一一对应后就会出现49个样本。将这些样本送入神经网络进行离线训练。训练后,它就被神经网络存储记忆,当温度环境出现波动时,控制器会迅速联想到最适宜的控制规则。
图33BP神经网络结构图
操作结果:通过学习算法,控制器会迅速联想到最适宜的控制规则。
交互步骤16:控制器的仿真。
操作目的:学生通过不同的隶属函数的赋值,得到不同的温度控制曲线。观察温度控制的结果。
操作过程:本步骤要求学生确定ET和ECT隶属函数赋值表,观察仿真结果,设计调整隶属度函数的值,实现控制策略的优化。
操作结果:图34和表35分别为实验1的ET隶属函数赋值表和ECT隶属函数赋值表。从图36的仿真结果可以看出,使用该组隶属函数值的使得降温操作执行过度,超调量大,大棚温度在2000s内持续下降到不利于番茄生长的温度且无法回升至适当温度。