远近一体的农用电磁阀控制系统研发
2022-03-08王运圣胡雯雯吴颖静徐识溥
刘 勇,王运圣,胡雯雯,吴颖静,徐识溥
(上海市农业科学院农业科技信息研究所,上海数字农业工程与技术研究中心,上海 201403)
电磁阀是一种控制各种流体(气体、液体)管道通断的电子开关设备,其基本工作原理是通过线圈通电后产生的磁场吸合阀体来实现阀门的开关控制,目前在普通工业、武器工业、船舶工业、石油化工等行业应用广泛[1-6]。电磁阀在农业上主要用于灌溉管道、营养液管道以及喷药管道的开关控制,以取代传统的机械开关,实现控制方式由手动到自动的升级[7-8]。
近年来,随着农业物联网技术的发展和普及,农业生产中许多设备需要进行电气化和网络化改造,而电磁阀作为物联网系统的一种执行机构,其使用量也在迅猛增长。从目前的使用状况来看,现有的电磁阀控制系统多以现场通过物理按钮进行手动控制为主,少数引入农业物联网的场所可实现远程自动控制,但是又缺乏现场控制,导致远程控制失效时所有的阀门都无法使用。为此,本试验拟研究一种远近一体的农用电磁阀控制系统,在实现基于农业物联网技术的远程控制的同时,保留近场控制方式。其中远程控制使用Wi-Fi 技术作为控制节点连接互联网的方式,近场控制使用工业触摸屏取代常用的物理按钮或拨杆开关,通过触摸屏上的虚拟按钮实现现场控制。两种控制方式并不是孤立进行的,通过状态同步的方式将其集成一体,任何一方进行控制操作后都会将控制状态同步到另一方,从而真正实现远近控制的一体化。
1 系统设计
1.1 系统总体架构
远近一体的农用电磁阀控制系统以现场嵌入式控制器和云服务器为核心,包含远程控制终端和现场控制终端,其中远程控制终端以手机APP、web 网页端或者微信小程序的方式呈现,现场控制终端为一块10.1 英寸(1 英寸=2.54 cm)的工业触摸屏,触摸屏和控制器一起集成在一个控制箱里,系统的总体架构如图1 所示。本系统作为一个农业物联网系统,除实现对电磁阀的远近一体控制之外,还实现了农业环境数据的采集功能,采集的数据通过4G∕5G 模块使用现有的移动通信网络进行传输,以保证数据采集的长期连续性,同时也避免了与控制命令共用同一通道造成数据冲突,保证控制命令响应更加及时。
图1 系统总体架构Fig.1 Overall system architecture
1.2 控制器硬件架构
现场控制器使用意法半导体的32 位微控制器STM32F103VET6 作为主控芯片,该芯片拥有ARM Cortex M3 内核,运行主频高达72 MHz,具有64k RAM 和512k flash 存储器,所以能够以足够快的速度响应对多路电磁阀的控制。最关键的是它有4 个通用串行接口,正好满足系统对串口数量的要求。如图2 所示,STM32 微控制器的串口1 接4G∕5G 模块,用于传感器数据的远程传输;串口2 接触摸屏,用于实现近场控制功能;串口3 接485传感器,用于采集农业环境参数,传感器类型可根据需要选择,只要满足485 接口且遵循Modbus RTU 协议即可;串口4 接Wi-Fi 模块,用于实现远程控制功能。除4 个串口之外,还使用了6 个通用IO 口PE7—PE12 来控制6 路继电器,继而控制6 个电磁阀,本研究选用的微控制器共有100 个引脚,其中超过70 个可作为通用IO 口使用,所以可控制的电磁阀远不止6 个,可以根据需要增加数量。
图2 现场控制器硬件架构Fig.2 Hardware architecture of field controller
1.3 嵌入式软件设计
远近一体控制系统的核心功能都是通过嵌入式软件实现的,嵌入式软件运行于前文所述的STM32F103VET6 芯片之上。为保证控制的实时性,嵌入式软件采用了无操作系统的前后台架构,前台软件主流程如图3 所示,系统上电后首先完成时钟、串口、中断系统等的初始化,之后进入主循环中,无限往复执行一些需要前台处理的功能,如对触摸屏命令的解析与处理、每隔40 s 对传感器数据的定时采集并上传给Wi-Fi 模块、每隔5 min 将采集的最新数据上传给4G 或5G 模块等。
图3 嵌入式软件主程序流程Fig.3 Main program flow of embedded software
后台系统主要是指4 个串口数据的接收与处理,本系统中串口数据都是通过中断函数接收的,每个串口每接收到一个字节数据都会产生一个串口中断并调用相应的中断函数,在该函数中实现对接收字节的暂存,当超过一定时间仍无数据接收时,即认为一帧数据接收完成,串口产生空闲中断并调用中断函数,在该函数中可设置数据接收完成标志位,供前台程序调用以对数据进行处理,如本系统中对触摸屏命令的处理即为这种方式。这种处理方式适合数据量大且通信次数频繁的情况,主要是为了减少中断函数占用的处理器时间,保证其他串口数据的接收不受影响。如果串口接收的数据量不大且处理较快,则可以在空闲中断发生时直接在中断函数中对数据进行处理,如本系统中Wi-Fi 控制命令的执行采用的就是这种方式。远程控制和近场控制命令的处理方式上之所以有此区别,是因为远程控制使用的Wi-Fi 模块已经将云端发来的控制命令解析和简化了,而且控制命令发生的频率不高,所以可以直接在串口中断函数里执行,而近场控制的触摸屏与主控通信频率较高,应尽量减少其对中断函数的占用时间,故中断函数中设置标志位在主函数中处理,具体的控制实现方式在后续章节中详细论述。
2 远程控制功能的实现
随着物联网技术在农业上的应用,远程监测农业生产环境中各种参数的系统逐渐增多,但仅仅监测还不够,很多时候希望在知道监测参数的同时还能对相关设备进行控制,这就产生了远程控制的需求。物联网是一个使得万物都能联网的技术,远程控制功能的实现也需要解决接入互联网的问题。对本系统而言,就是要解决现场嵌入式控制器联网的问题,目前联网的方式总体上可分为有线和无线两种方式,其中有线方式连接稳定、速度快,但是需要布设网线,这对于农业生产环境而言很多时候都不易实现;无线方式多指通过移动通信基站接入移动互联网,这种方式虽不用布线,但需要增加通信模块和流量卡,且流量卡需要定期充值,使用和管理成本都有所增加,为此,本研究选用了一种折中方案,使用Wi-Fi 技术接入互联网。
Wi-Fi 是一种将互联网接入“最后一公里”进行无线化的技术,具有少布线和高稳定性的特点,而且也免去了流量卡需要实名开卡和定期缴费的问题,从技术层面看,Wi-Fi 技术与手机可以直接连接,所以使用上会有很大的便利性,因此,目前Wi-Fi 技术已在农业上有了一定应用[9-13]。
本研究使用一款国产Wi-Fi 芯片ESP8266,集成了32 位Tensilica 处理器、标准数字外设接口、天线开关、射频巴伦、功率放大器、低噪放大器、过滤器和电源管理模块等,仅需很少的外围电路,可将所占PCB空间降低。如图4 所示,ESP8266 的Wi-Fi 模块将芯片所需的外围器件和Wi-Fi 天线都集成在一个PCB上,只需要电源、地线、串行数据收、串行数据发4 根线即可与现场嵌入式控制器进行通信。
图4 Wi-Fi 模块接线示意图Fig.4 Wiring diagram of Wi-Fi module
Wi-Fi 模块接入互联网的第一步是先接入无线路由器,一般而言需要通过AT 指令先将模块配置为站点模式,再使用AT+CWJAP=“Wi-Fi 名”,“密码”指令连接到路由器,对于不同的路由器,“Wi-Fi 名”和“密码”都是变化的,如果在程序中写死则不能更改,因此本研究使用了乐鑫信息科技(上海)有限公司开发的ESP-TOUCH 技术,在手机上安装ESP-TOUCH APP,该APP 中可设置“Wi-Fi 名”和“密码”,并通过UDP 包发送给Wi-Fi 模块,Wi-Fi 模块只要开启Sniffer 模式即可探测到UDP 包中的“Wi-Fi 名”和“密码”信息,并据此与无线路由器建立连接,继而通过IP 地址和端口号与云服务器建立连接。
入网之后即可进行电磁阀的控制。控制过程涉及到手机APP、云端、Wi-Fi 模块以及现场控制器,具体过程如图5 所示。用户通过手机APP 等终端发送控制命令到云服务器,云服务器不做处理直接转发给Wi-Fi 模块,Wi-Fi 模块收到后进行解析,变成长度1 Byte 的短命令再发送给现场控制器。
图5 远程控制数据传输流程Fig.5 Data transmission process of remote control
Wi-Fi 模块从云端收到的命令格式如表1 所示,其中第7 和第8 部分为有效载荷,Ctrl_flags 为控制对象标志位,表示此条命令要控制哪些电磁阀,总长度为1 byte,bit0—bit5 分别对应电磁阀1—6,对应值为1表示要控制该电磁阀,为0 表示此次不控制该电磁阀。Ctrl_vals 为具体的控制值,bit0—bit5 分别对应电磁阀1—6,1 表示打开电磁阀,0 表示关闭电磁阀。Wi-Fi 模块收到该命令后将其解析,并简化为表2 所示的单字节命令发送给现场控制器,现场控制器收到单字节命令后立即对相应电磁阀进行控制。
表1 云端下发控制命令数据包格式Table 1 Data packet format of control command from cloud server
表2 Wi-Fi 模块处理后的控制命令Table 2 Control commands processed by Wi-Fi module
3 近场控制功能
近场控制即现场控制。之所以要实现近场控制主要是为了照顾部分用户的使用习惯,同时也可以作为远程控制出现通信故障而无法使用时的备份。近场控制在农业上通常是使用机械拨杆开关或按钮、旋钮等方式实现的,这些方式都存在着使用时间长易发生机械劳损的问题,且农业生产中高温高湿的环境经常会导致机械开关未到使用年限就发生严重锈蚀的情况,因此,本研究创新性地引入了触摸屏作为现场控制的操控接口,用触摸屏上的虚拟按钮取代传统物理按钮和指示灯,实现电磁阀控制和状态指示的效果。
触摸屏是一种集显示技术与触控技术于一体的全新人机交互设备,其基本原理是由触摸屏控制器检测手指或其他物体触摸屏幕的位置及动作类型(单击、双击、滑动等),并据此在屏幕的相应位置上显示相关触控动作执行的结果,目前触摸屏已经在工厂、物流、核电等行业得到很好的应用[14-16]。
本研究选用一款10.1 英寸(1 英寸=2.54 cm)TFT LCD 触控屏,具有Cortex A8 600 MHz 处理器和1 024 ×600 像素的显示分辨率,这类触摸屏将屏幕和控制芯片集成一体,通过串口和其他设备进行通信,稳定性极高,且提供专用的界面开发环境,开发便捷。目前,触摸屏在农业环境控制和育苗上已有一些应用[17-18],但都是和PLC 配合使用的,PLC 作为一种可编程逻辑控制器在工业上应用广泛,具有稳定可靠的特点,但体积大、价格高,并不适用于产值不高的农业。本研究的解决方案是研究触摸屏的通信协议,在STM32 微控制器上实现与触摸屏的通信,从而取代PLC。触摸屏的控制界面可以通过专用的开发环境进行设计,图6 为本研究设计的一套水肥一体化灌溉控制系统的触控界面。
图6 触摸屏控制界面设计Fig.6 Design of touch screen control interface
界面设计完成之后要实现界面上各个按钮与现场控制器的通信。触摸屏是通过串行接口依照Modbus RTU 协议与外界通信的[19-20],图6 中每个按钮控制一个电磁阀,有开和关2 种状态,点击任意一个按钮之后都会下发一条控制命令,命令格式如表3 所示,功能码0x05 表示此条命令为控制命令,此时起始地址表示控制第几个电磁阀,数据值为0xFF 时表示关闭相应的电磁阀,否则为打开。除0x05 功能码之外,本系统还对其他功能码进行处理,例如0x01 为查询电磁阀的开关状态,触摸屏每1 s 会发送一次此命令主动读取当前状态;0x03 为读取传感器的当前数值。
表3 触摸屏控制命令示例Table 3 Example of touch screen control command
4 远程控制与近场控制状态的同步
远程控制和近场控制之所以能一体化进行,关键是实现二者控制状态的同步,这也是本研究解决的另一个核心问题。解决这一问题的基本思想是要有一个角色专门负责记录电磁阀的当前状态,并且远程和近场任何一方对任意一个电磁阀进行操控之后都要实时更新状态,并将最新的状态通知给另一方。在本研究中,由现场控制器负责记录状态,如图7 所示,当用户通过触摸屏操控电磁阀后,现场控制器在执行命令的同时更新状态,并将新的状态上报给Wi-Fi 模块继而反馈给手机APP,同时触摸屏上的按钮也会自动更新状态;当用户通过手机APP 操控电磁阀之后,现场控制器同样会在收到命令后执行控制动作并更新状态标志位,不同的是触摸屏会以每秒一次的频率主动读取现场控制器记录的状态标志位,从而更新自身的按钮状态。
图7 状态同步实现过程Fig.7 Implementation process of state synchronization
5 结论
本试验研究并实现了一套远程控制与近场控制一体的农用电磁阀控制系统,该系统引入Wi-Fi 技术用于现场控制器接入互联网实现远程控制,同时为适应农业生产人员的使用习惯并作为远程控制方式的备份,还实现了近场控制功能。近场控制用工业触摸屏上的虚拟按钮取代传统的物理按钮或开关。工业触摸屏一般是与PLC 配合使用的,但PLC 造价较高,农业生产中往往对设备投入的成本比较敏感,所以本研究使用价钱更低的STM32 微控制器取代PLC,从底层协议上实现了对触摸屏的融合,并最终实现了远程控制与近场控制的操控状态互相实时同步,远程和近场任何一方控制时另一方的状态也同步更新,真正做到了远程控制和近场控制的一体化。
该系统可应用于大田或温室中管道式供水场所灌溉阀门的控制,也可用于无土栽培中营养液输送的控制,或水肥一体化灌溉系统的控制等,远程与近场结合的控制方式扩大了系统的应用范围,提高了接受度。系统在实现控制功能的同时还具有数据监测功能,并且监测数据传输使用专用的无线信道,从而保证控制命令响应的及时性。本系统目前已在位于上海市崇明区的上海瀛西果蔬专业合作社的大田蔬菜水肥一体化控制中得到了应用,起到了显著的节省人工和降低生产成本的作用,大面积推广应用后可大大提高农业物联网的应用范围,提高我国农业信息化水平。