APP下载

基于单片机和以太网的远程测控系统

2020-03-30王建军王守谦成艳亭乔建委许文硕

关键词:温度传感器测控以太网

王建军,王守谦,成艳亭,乔建委,许文硕

(山东理工大学 机械工程学院,山东 淄博 255049)

传统仪器仪表采用纯机械结构或者模拟电路、逻辑门电路进行设计,在自动校准、自动检测、数据处理方面有很大不足。随着大规模集成电子技术的发展,仪器仪表发展进入了一个智能仪器阶段,自动测量、远程监控成为智能化的体现。目前,基于单片机的集中数据采集和控制技术已经得到了很好的发展和广泛的应用[1-3]。但在恶劣环境下以及多地域分布的生产环境下,一方面人力难以到达现场进行集中测量,另一方面,分布式的测量需要进行联网采集,因此需要设计远程测控系统,实现远程和多地点分布式的数据采集与控制系统。

目前有较多致力于解决基于单片机实现远程测控问题的研究,如韩兴国等[4]研制了一种基于AT89C55单片机的数控机床远程测控仪,在数控机床远程控制平台上进行了直线插补和圆弧插补等插补精度的实时远程测试和误差分析;张继飞等[5]设计了水产养殖水质参数的远程实时监控系统,该系统由水质参数无线监测部件RTU、远程数据管理服务器和客户终端APP组成;邹益民等[6]基于ModBus-TCP的主从式测控网络,以单片机系统为核心,实现了对本地恒温实验装置的数据采集、闲环控制、数据通信及远程监测;郭佑民等[7]设计了一种基于BQ27750的远程测控终端电源监测系统,整个系统对电池的电压、电流、温度、剩余电量等相关参数进行监测,并采用SIM800C芯片的GPRS通信模式,在单片机的控制下将电池信息快速、有效地传输到监控中心;王建军等[8]发明了一种路基滑坡远程监测方法与装置;Jafer等[9]设计了一种多节点远程传感器测量装置;Ugur等[10]研究了远程控制装置。

为了创建一种基于51单片机和以太网的低成本远程测控系统,本文将单片机通过网络控制芯片接入互联网,通过编制单片机和服务器之间的网络通信协议,设计远程测控系统。

1 系统总体结构设计

以IAP15F2K61S2单片机为控制核心进行远程测控系统的设计,如图1所示。IAP15F2K61S2单片机开发板通过SPI总线与网络模块ENC28J60相连,采用C语言编程,通过模拟SPI时序的方式完成单片机与网络模块的通信;网络模块可通过固定IP或者DHCP的方式配置本地网络,通过RJ-45双绞线接入路由器或其他上级网关设备,然后将上级网关设备接入网络,单片机即可同时接入到以太网。其操作步骤为:(1)注册数据中心账号,申请HTTP请求接口;(2)根据HTTP请求接口改写单片机程序,编译烧录;(3)将单片机在任意现场通过网络芯片接入以太网;(4)在任意地点采用上网设备打开数据中心网站管理单片机客户端设备。

图1 基于单片机的以太网远程数据测控系统结构图Fig.1 Architecture of ethernet remote data measurementand control system based on single chip microcomputer

单片机接入到以太网后,即可通过单片机编程操作温度传感器DS18B20采集现场的温度数据。图2中,将温度传感器数据通过HTTP请求方式提交到远端托管服务器,远端托管服务器根据服务器端设定存储数据到MYSQL数据库,用户可通过任意上网设备,如手机、笔记本电脑、台式机电脑等,从网上查看和记录测量数据。另外,用户还可以通过控制中心网站,打开远程控制操作页面,对单片机系统上的客户端设备进行控制操作。如图1中,通过模拟开关操作,可通过本地浏览器远程控制LED控制开关的开断。

图2 单片机接入以太网的测控网络示意图Fig.2 Schematic of measurement and control network of single chip microcomputer connecting to ethernet

2 实物系统的开发

图3为采用IAP15F2K61S2单片机开发板开发的客户端,可实现本地被测对象的数据采集、上传和远程控制操作。主要包括:(1)单片机开发板:以IAP15F2K61S2芯片为控制核心;(2)网络模块:ENC28J60网络控制芯片;(3)温度传感器:DS18B20温度传感器芯片,安装在单片机开发板上;(4)RJ-45接口双绞线;(5)路由器;(6)LINUX VPS服务器:即提供WEB服务和HTTP接口的远端数据中心服务器。

图3 基于IAP15F2K61单片机开发板的远程数据采集与控制系统客户端组成图Fig.3 Client components of remote data acquisition and control system based on IAP15F2K61 development board

图3中,采用一个5V转接3V的电源模块给IAP15F2K61S2单片机开发板和ENC28J60网络模块两个设备供电,单片机的P03~P07口通过杜邦线与网络模块的SPI总线相连,网络模块通过RJ-45接口双绞线与路由器连接,路由器通过无线网络接入以太网,从而实现了单片机客户端接入以太网。

2.1 单片机和网络服务器的通信编程

IAP15F2K61S2单片机是单时钟/机器周期的兼容8051内核单片机,指令代码完全兼容传统8051,而速度快8~12倍,内部集成高速SPI(Serial Peripheral Interface)接口、2KB EEPROM、A/D转换模块和MAX810专用复位电路。工作电压2.4~3.8V[11]。

UIP是一种适用于小型嵌入式通信的TCP/IP协议栈,由瑞典计算机科学院人员开发编写,其通过少量代码可实现TCP/IP协议栈的一些基本功能,如UDP、ARP,还有IP、ICMP和TCP协议,可由几百字节的C语言代码编写实现;经过对UIP协议栈的进一步优化,代码容量缩减到1.2 KB以内,RAM占用更是缩减到了500 B以内,有利于充分利用IAP15F2K61S2单片机的片上资源实现上网功能[12]。UIP协议栈运行流程图如图4所示。

图4 UIP协议栈运行流程图Fig.4 Flow chart of UIP protocol stack operating

1)UIP设备的驱动程序

采用的硬件设备为IAP15F2K61S2单片机和ENC28J60网络模块,获取UIP源码后需要将ENC28J60的驱动程序与UIP的接口进行SPI口连接,然后对UIP驱动设备进行初始化。

ENC28J60 网卡驱动时,首先上电初始化,通过函数 enc28j60_init进行寄存器初始化,设定网卡物理地址、收发缓冲区位置和大小等,然后调用发送数据函数dev_send和接收数据函数dev_poll,实现数据的发送和接收功能。

2)网络应用接口程序

TCP/IP协议栈的链路层功能由ENC28J60网络模块完成,网络层和传输层由单片机处理,在单片机上运行UIP协议栈,通过网络模块可接入互联网。

UIP 协议的应用程序接口实现WEB应用服务。UIP 定义了一个宏UIP_APPCALL实现接口功能。当用户要编程实现某应用服务时,只需将宏UIP_APPCALL定义成实际的应用程序函数名。UIP 在接收到底层传来的数据包后,若需送上层应用程序处理,就调用UIP_APPCALL,不同连接通过判断当前连接的端口号确定。

UIP 还提供一些应用程序接口函数供编程使用:如关闭连接接口函数uip_close;轮询接口函数uip_poll;打开连接接口函数uip_connect等。通过调用不同应用程序接口函数实现相应功能。

2.2 服务器端WEB服务的HTTP接口

数据中心网站服务器使用方便,其WEB服务采用类C语言的PHP语言编写,并提供GET请求接口方式,方便在UIP中进行HTTP请求的发送。服务器端的控制中心网站和数据中心网站通过PHP动态语言开发,采用Codeigniter开源框架实现敏捷开发,同时在API函数编写过程中使用IF判断语句严格控制命令输出,实现高效严谨的API编写。

3 以太网远程测控系统测试实例

数据中心网站设置为:http://dc.sdut.me,具体实验步骤如下:

1)准备测试。测试单片机开发板和网络模块以及温度传感器、LED开关等是否工作正常。

2)接线电源测试。保证线路连接稳定可靠和供电正常。

3)启动设备。首先运行网络模块,然后打开电源开关和控制板数据采集开关,此时系统将自动采集温度传感器数据并通过网络模块传送到控制中心网站数据库,并查询、执行控制中心发出的控制指令。

4)客户端访问。启动设备后等待片刻,使用笔记本电脑浏览器查看控制中心网站,查看温度传感器的数据采集情况,然后发出控制指令,观察执行控制中心发出的开关控制指令是否得到执行。

5)实验结束。切断电源,使系统停止工作,检查回顾系统工作状况、数据中心网站和客户端访问情况是否正常。

3.1 温度传感器的远程数据采集实例分析

温度传感器远程测量实例结果如图5所示。

图5 以太网远程数据采集实例—温度采集Fig.5 An example of ethernet remote data acquisition-temperature acquisition

数据采集的采样频率采用服务器端控制方法,用户可在服务器端设置采样时间间隔,自选传感器类型,并设置传感器数据存储字段。只要客户端单片机运行正常,能够及时将传感器测量数据进行传输,则数据中心就可按照用户需求完成数据采集和图表分析。

3.2 远程控制实例分析

远程控制实例测试结果如图6所示。远程控制采用客户端单片机GET方式获取控制命令,控制命令HTTP包最低173字节,单包容量小、网络传输快,模拟开关控制可实现最快1 s的及时控制。另外,单片机编程时,考虑到控制可靠性设计,采用看门狗实时监控单片机程序运行,一旦程序跑飞,可及时复位单片机,有效保证了控制设备运行的可靠性。

图6 远程控制开关实例Fig.6 Example of remote control switch

通过测试可知,设计的远程测控系统有以下优点:(1)采用51单片机和10 M网卡芯片,并模拟SPI总线接口,提供了单片机接入以太网的一种低成本解决方案;(2)移植精简TCP/IP协议(即UIP)到51单片机,资源占用少,方便构建网络应用;(3)数据中心服务器采用稳定可靠的LINUX服务器,WEB服务程序和HTTP接口采用PHP动态编程语言编写;(4)克服了多地点、跨地域数据采集和恶劣环境下现场测控的不便,使远程测控方便、快捷和高效。通过手机或电脑的浏览器控制被控设备、查看测量数据,方便快捷,不存在平台、系统兼容性问题;(5)测量数据实时保存到数据服务器,保证了测量数据的安全、可靠、易获取,同时可方便扩展数据存储容量。数据中心服务器根据获取的测量数据分析绘图,提供简单的数据处理分析,并可设置警报,提供邮件、短信通知等扩展功能。

4 结束语

设计并实现了一套基于以太网的远程数据采集和控制系统,以单片机作为客户端,远程数据采集与控制软件采用网页编程实现,运行在数据中心服务器上,用户只要通过浏览器打开数据中心网站即可实现远程数据采集和控制。通过温度传感器的远程数据采集实验和远程LED开关控制实验,验证了基于单片机联网进行远程测控方案的可行性,取得了良好的测控实验效果。

猜你喜欢

温度传感器测控以太网
气象用温度传感器检定结果的测量不确定度评定与应用
基于HSIC的日光温室温度传感器优化配置策略
昆山祺迈测控设备有限公司
浅谈温度传感器原理及其应用
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
基于现代测控技术及其应用分析
基于以太网的计算机与数控系统通信技术研究
虚拟仪器技术在农业装备测控中的应用
向着新航程进发——远望7号测控船首航记录