前言:想要写出一篇引人入胜的文章?我们特意为您整理了设施农业物联网网关设计研究范文,希望能给你带来灵感和参考,敬请阅读。
摘要:在设施农业中应用物联网技术,可以对设施农业进行升级,提高设施农业的现代化水平,使用物联网网关可以简化物联网的设计和实施。介绍了一种采用无线接入和有线接入、可级联的设施农业物联网网关的设计方案。
关键词:网关;物联网;设施农业
在设施农业中应用物联网技术,可以对设施农业进行升级,提高设施农业的现代化水平,实现智能农业,比如在远程就可实时监控生产环境的温湿度、光照等情况,可实现天窗开闭、风机运行和水帘降温等程序的远程控制或自动控制。在实施物联网过程种也存在一些问题:1)在物联网的三层架构体系中,包含传感器的感知层的信息种类较大,比如有温度、湿度、光照度、二氧化碳浓度等,传感器的类型较多,它们的接口和协议也是多种多样,比如模拟接口、RS485接口、Zig⁃Bee接口;2)不同类型的通信技术都只能各自组网,通信的接收端必须有对应通信发送端的接收器才能完成数据通信,因此控制中心的计算机需要连接不同的接收器接入不同的传感器的网络,还需要解析不同的协议;3)传感器网络的通信技术,比如Zigbee、RS485等属于近距离通信,如果要传输数据到远程服务器,就需要增加设备进行网络转换;4)大量传感器接入到服务器,会增加服务器的负担,需要更高性能的服务器。物联网网关是连接感知层和网络层的关键节点设备,是物联网的重要设备,具有网络转换、协议转换、数据交换等功能,使用物联网网关可以简化物联网的设计和实施,可以解决上述问题。
1系统总体结构和功能配置
1.1系统结构和原理
本方案的物联网网关,由上行通信接口、下行通信接口、主控模块等部分组成(见图1)。1)上行通信接口,连接远程服务器(云端系统)、用户终端,在硬件上主要包括上行通信模块、接口电路,在软件上主要包括模块驱动程序、上行通信协议处理程序。2)下行通信接口,连接传感器、控制器等设备终端,在硬件上主要包括下行通信模块、接口电路,在软件上主要包括模块驱动程序、下行通信协议处理程序。3)主控模块是网关的核心部分,在硬件上由高级单片机和外围接口电路构成,在软件上主要包括数据转发程序、协议转换程序等。上行接口主要是连接远程服务,需要使用远程通信技术,主要包括Internet通信、移动通信等。上行通信模块主要包括用于接入Internet网络的以太网通信模块、WiFi通信模块,用于接入移动通信网络的GPRS通信模块、4G通信模块、NB-IOT通信模块等。下行接口主要是连接传感器和控制器,一般使用的是短距离通信技术,主要包括RS485、Zig⁃Bee、WiFi、LoRa等;而对于4~20mA等模拟量的设备,并不直接接入网关,需要一个变送器或采集器进行转换,以数字通信的方式接入到网关。下行通信模块主要包括RS485通信模块、ZigBee通信模块、WiFi通信模块、Lora通信模块等。主控模块通过UART、SPI、I2C等接口和上行通信模块、下行通信模块连接,通信模块由主控模块进行配置和控制。网关的工作原理如下:网关通过WiFi或RS485等下行通信接口连接到传感器终端或风机、遮阳等控制器,通过WiFi或以太网等上行通信接口接入到Internet网络或局域网连接远程服务器;服务器的数据或指令通过上行接口传输到主控模块,主控模块根据上行通信协议取出数据后,进行处理,根据下行协议重新打包,经下行通信接口转发到传感器终端、控制器;传感器终端、控制器的数据,由下行接口上传到主控模块经处理后转发到上行接口,传输到远程服务器。在此过程中,网关完成了网络转换、协议转换、数据转发等功能。
1.2系统功能配置
本方案的网关功能配置如下:1)上行接口:具有1个WiFi接口、1个以太网接口,支持TCP/UDP、HTTP通信协议,采用Client工作模式,可通过上行接口连接远程服务器。2)下行接口:具有1个RS485接口,半双工、波特率可配置、主站工作模式,支持Modbus通信协议;具有1个WiFi接口,主站工作模式,支持TCP/UDP、Modbus通信协议,可通过下行接口接入传感器或控制器。3)工作电压:DC5V;4)指示灯:电源指示灯、通信指示灯、状态指示灯。
2硬件和软件的设计
本方案的网关采用模块化设计,通信模块直接选用市面上已有的通信模块,需要根据选定的具体通信模块设计接口电路、编写模块驱动程序。
2.1硬件设计
2.1.1主控模块主控模块以32位高级单片机STM32F407ZG为控制核心,该单片机使用3.3VDC工作电源,具有1024kB的flashROM、192kB的RAM,并支持通过FSMC接口扩展RAM,具有3个I2C接口、6个UART接口、2个SPI接口、1个SDIO接口,内部RTC模块。
2.1.2上行通信接口上行通信模块主要包括1个WiFi通信、1个以太网通信模块。其中WiFi通信模块使用ESP8266通信模块,通过UART连接到主控模块的UART3;以太网通信模块使用W5500通信模块,通过SPI连接到主控模块的SPI2。
2.1.3下行通信接口下行通信模块主要包括1个WiFi通信模块、1个RS485通信模块。其中WiFi通信模块使用USR-WIFI232-XXX通信模块,通过UART连接到主控模块的UART2;RS485通信模块使用MAX485通信模块,连接到主控模块的UART4。
2.1.4存储、显示部分主控模块通过FSMC接口连接IS62WV51216扩展RAM,可存储512k双字节(1024kB)大小的数据,用于在协议处理、数据转发过程的变量存储;通过I2C接口I2C1连接EPROM存储器24C02,可存储256×8(2kbits)大小的数据,用于存储配置参数;通过SDIO连接SD卡,用于存储运行中产生的数据。网关具有1个电源指示灯、1个运行状态指示灯、1个上行接口通信指示灯、1个下行接口通信指示灯,主控模块通过4个IO口驱动4个LED灯。除了指示灯,没有其他显示器件,可通过调试串口或者上行接口查询系统信息和状态。主控模块的UART1作为调试串口。
2.1.5电源部分电源部分使用外接5VDC稳压电源,负载能力不小于10W。通过电源接口接入电路板,在电路板上通过LDO稳压电路输出3.3VDC稳压电源作为工作电源。
2.2软件设计
2.2.1软件设计的主要内容和方案软件设计主要包括:通信接口驱动程序、模块的驱动程序、通信协议处理程序、配置程序、数据采集程序、数据转发程序,完成通信接口接入、远程连接、网络转换、协议转换、数据转发。由于RTOS实时操作系统在系统层已经实现了任务的调度,在多任务系统开发中比较有优势,同时本方案的硬件支持运行RTOS,因此采用基于RTOS进行开发。
2.2.2软件的层次结构采用分层结构进行软件设计,软件的结构从下到上分成:硬件驱动层、模块驱动层、网络通信层、应用层。硬件驱动层完成对硬件的配置和驱动,包括系统时钟的配置、IO的配置、UART接口的驱动、SPI接口的驱动、I2C接口的驱动、FSMC接口的驱动等。模块驱动层完成对通信模块、存储模块等外接模块的配置和驱动,包括上行接口中的WiFi通信模块、以太网通信模块的驱动,下行接口中的WiFi通信模块、RS485通信模块等的驱动,存储模块的驱动等。网络通信层完成网络连接和数据传输、协议的处理,包括RS485通信、TCP/UDP、HTTP、Mod⁃bus等。应用层完成业务功能,包括系统配置、协议转换、数据转发、信息采集、数据存储等。
2.2.3任务的分配和调度系统使用了FREE—RTOS实时操作系统,在RTOS系统层采用分时调度的方式实现系统线程(简称线程)的切换。系统分配6个线程,各线程优先级一致,由RTOS系统分时调度,将各种业务定义成不同的业务任务(简称任务),每个线程执行一个或多个业务任务。线程1完成系统配置、系统监测、系统指示任务;线程2完成上行接口处理任务;线程3完成下行接口处理任务;线程4完成协议转换、数据转发任务;线程5完成数据存储任务;线程6完成信息采集任务。由于各个线程是无限循环并且是并行执行的,为了对各个线程进行监测,取一个状态字并为每个线程设定一个状态位。每个线程在循环一轮都给对应的状态位置位,线程1每隔100ms要对各个线程的状态位进行检测。如果所有线程对应的状态位都置位,则清零状态字并驱动状态指示灯亮或灭。因此系统正常运行时,状态指示灯是闪烁的。
3主要功能的设计
接入功能、数据转发功能、协议转换功能,是网关要实现的主要功能。
3.1上行接口的设计
上行接口主要是连接远程服务,需要使用远程通信技术,使用的通信协议是TCP/UDP,以及基于TCP/UDP的HTTP、Modbus等。TCP/UDP属于传输层协议,由通信模块实现,在模块驱动层通过对模块的配置,可以启动相关功能,因此在硬件设计上,需要选择支持TCP/UDP功能的通信模块。本系统所用的上行通信模块均支持TCP/UDP功能,其中WiFi通信模块通过UART通信使用相应的AT指令进行配置,以太网通信模块通过SPI通信配置模块相应的寄存器进行配置。HTTP、Modbus等运行在TCP之上,属于应用层协议,由主控模块实现,通过协议处理程序完成。HTTP协议在Web应用中得到广泛的应用;Modbus协议在工业领域广泛应用,是工业电子设备之间常用的连接方式。通过上行接口,实现以下功能:1)使用的是HTTP协议对网关参数的配置和查询:网关实现一个WebServer,可以处理HTTP协议的GET方法请求。通过浏览器打开配置页面对参数进行查询和配置,网关作为TCPServer,需要打开监听端口。2)使用Modbus协议将传感器数据传输到服务器:网关作为TCPClient连接到TCPServer,由服务器发起请求网关作为从设备响应数据。Mod⁃bus协议有专门的TCP格式,这里只是将TCP作为数据链路,报文使用的是Modbus-RTU格式。
3.2下行接口的设计
下行接口主要是连接传感器、下级网关,包括1个WiFi接口、1个RS485接口。WiFi接口配置成AP模式,下级网关的上行WiFi以及采用WiFi通信的传感器可以连接到到这个AP。在通信上,配置成TCPServer,打开监听端口,下级网关、传感器作为TCPClient连接到这个端口,使用TCP协议进行数据传输。由于RS485通信是半双工的,模块需要配置成主机模式,由网关发起通信。RS485通信的校验位和波特率等参数设计成可配置以适应实际设备的通信参数。在往下行接口发送数据的时候,会发送到所有通过WiFi接口连接的传感器、通过RS485接口连接的传感器以及通过WiFi接口连接的下级网关。
3.3数据转发和协议转换功能的设计
数据转发指的是将数据从下行接口转发到上行接口,或将数据从上行接口转发到下行接口。在转发的过程中,由于两个接口的通信协议不用,需要根据接收口的协议将数据接收读取解析出来,经过一定的处理后,按发送口的通信协议重新打包发送,这个就是协议转换。整个过程就是实现对数据的接收、解包、处理、封装、转发。网关采用多种可配置的模式实现对数据的转发,运行的时候根据配置执行下列模式中的一个模式:模式1为直接透传模式。运行此模式的时候,系统将上行接口的数据直接转发到下行接口,由于下行接口有多个端口,数据将依次转发到各个端口,下行接口的数据也依次直接转发到上行接口。模式2为协议透传模式。运行此模式的时候,会对收到的数据进行协议核对,符合Modbus协议格式的数据将被转发,不符合的数据将在本地被处理:按其他协议处理或丢弃。
3.4级联功能的设计
级联功能可以给系统带来灵活性,通过级联功能可以实现:通信的中继进而达到延长通信距离的功能;分级扩展进而达到扩大接入能力的功能;分组接入进而提高系统性能和简化系统管理。本系统的级联功能通过WiFi通信接口实现:本级网关的上行WiFi模块打开STA模式,上级网关的下行WiFi模块打开AP模式;本级网关的上行WiFi接入到上级网关的下行WiFi;上级网关把本机网关看成一个传感器终端,本机网关把上级网关看成一个服务器;按正常的模式进行数据转发和协议转换。级联之后的系统,只有一个顶级网关连接到服务器。从顶级网关看,所有的传感器设备都是连接在本网关的下行WiFi接口上,可以把下级的级联网关看成透明的。
4结束语
使用物联网网关可以简化物联网的设计和实施,但是目前并没有标准的、通用的物联网网关可以选用,需要针对具体的应用而开发相应的物联网网关。本方案的物联网网关主要针对设施农业,以无线通信为主要通信方式,这样便于设备的安装和布置,同时也保留了以太网、RS485有线通信方式以满足现场的实际需求。在通信接口的设计上,并没有把所有的通信方式都接入。上行接口只接入WiFi通信模块和以太网通信模块,用于接入Internet网络;如果想使用移动网络实现远程通信,可以考虑把通信模块替换成GPRS通信模块、4G通信模块、NB-IOT通信模块等。下行接口只接入WiFi通信模块、RS485通信模块,可实现传感器和控制器的无线接入和有线接入;如果需要实现ZigBee、LoRa、蓝牙等通信的接入,可以增加相应的通信模块。
参考文献:
[1]叶长榄.应用物联网推动现代农业发展[J].福建农机,2019(1):6-8.
作者:叶长榄 单位:福建省农业机械化研究所