1. 引言
随着网络技术、计算机技术、教育技术的快速发展,远程教育平台逐渐引起了人们高度重视[1] ,但远程实验教育由于硬件设备的多样性和实验室环境的复杂性,还没有成熟的可视化网关控制平台 [2] ,目前存在的嵌入式网关存在操作复杂、控制信息不能实时查询显示的问题。为更好地搭建远程网络实验平台,本文采用嵌入式Linux与Qt结合方案,重点探讨可视化网关技术。
2. 可视化网关总体框架
在远程控制网络构架中,网关属于网络处理层,它在接入感知层和应用工传输层之间启到了连接作用 [3] ,并能实现不同网络协议的转换 [4] ,此外网关还应具备设备控制管理功能,对各种类型的感知设备实现远程检测和控制,如图1所示。
针对传统网关存在操作复杂、不能及时控制的问题 [5] ,充分考虑 Internet网络的广泛性及其应用性,本设计采用嵌入式Linux系统和QT可视化界面,将网关常用操作直观显示到操作界面上。
嵌入式网关需要接入多种传感器以便检测不同的环境数据 [6] ,例如室内环境温湿度、设备温度和设备开启或关闭状态等。不同时间段的运行数据也要求能够存储下来,以便后期遇到问题时有据可查。网关还应具备远程访问能力 [7] ,满足可视化操作要求,使得用户能够异地实时对实验室环境进行监测和控制 [8] 。因此,嵌入式可视化网关应具备以下性能:1) 对感知网络的数据接收能力;2) 对不同数据类型协议的数据转换及存储能力;3) 可视化界面操作能力;4) 远程数据传输及控制能力。如图2所示。
3. 可视化网关设计方案
3.1. 硬件平台设计
可视化网关选用ITOP4412开发平台,包括SDRAM模块、FLASH模块、电源管理模块、时钟模块、以太网接口模块、显示屏接口模块、串口模块等。其中处理器采用Exynos4412芯片,具有强大的运算处理能力,并连接了FLASH、SDRAM模块用于数据的存储,RJ-45以太网接口保证了设备能够接入互联网络中,接入感知层网络通过串口与网关连接,LCD触摸显示屏通过VGA接口模块以外接设备的形式接入到网关系统中,实现与网关的信息交互。硬件结构如图3所示。
3.2. 软件平台设计
软件平台主要基于Linux操作系统。Linux是开源的操作系统,系统的设计者可以对嵌入式Linux进

Figure 1. The network framework of remote control
图1. 远程控制网络构架

Figure 2. The function frame diagram of visualization gateway
图2. 可视化网关功能框架图

Figure 3. The diagram of hardware structure
图3. 硬件结构图
行二次开发,只保留必须的操作系统功能即可,并可以根据实际应用的需要优化操作系统的代码。该系统成熟稳定、数据处理速度快、网络功能丰富,在网络通信设计方面有独特优势。此外,嵌入式可视化网关可使用的硬件资源相对较少并且要求上电时间短,而Linux系统只占用较少的硬件资源,因此选择嵌入式Linux作为基本操作系统。软件架构如图4所示。
首先串口服务器接收底层传感器网络(Zigbee)的数据,然后运用TCP/IP协议将数据发送至可视化网关中的以太网接口,其间通过了交换机设备通信协议为TCP协议。得到数据后为了实现数据的存储,开发了一套针对Linux操作系统的数据库软件,将接收到的数据存储在MySQL过程数据库中。过程数据库为可视化网关开发中的重要环节,是自主开发的一套基于Linux操作系统用于与底层设备进行数据交互

Figure 4. The diagram of software framework
图4. 软件架构图
的中转程序;而关系数据库MySQL负责历史数据和报警信息的存储,MySQL需要从过程数据库中获取数据。软件界面采用QT平台、GUI界面开发软件以及C++语言进行开发。Qt是一个跨平台的C++图形用户界面库。Qt基本上同XWindow上的Motif OpenwinGTK等图形界面库和Windows平台上的MFC OWLVCL ATL是同类型的。结合远程网关的实际的运行环境、嵌入式Linux系统及嵌入式GUI等,实现了适合远程网关的人机界面温湿度曲线显示。
4. 视化网关系统的实现
4.1. 交叉编译环境搭建
Qt/E4.7.1使用的编译器是交叉编译器编译工具“arm-linux-gcc-4.3.2.tar.gz”。将“arm-linux-gcc- 4.3.2.tar.gz”解压到Ubuntu系统的文件夹“/usr/local/arm”中,解压后,如图5所示。
然后修改环境变量,修改环境发量前,确定是在root用户下,接着输入命令“#cd”,确定修改的是root用户的环境发量,输入命令“#vim .bashrc”后,输入回车,进入“.bashrc”文件,然后迕入最后行,如图6,将环境发量修改为“export PATH=$PATH:/usr/local/arm/4.3.2/bin。”
最后要检测编译器路径设置是否正确。在Ubuntu命令行中输入命令“#arm”,然后按键盘“Tab”,出现编译器“arm-none-linux-gnueabi-gcc-4.3.2”,返回就说明编译器路径设置正确。
4.2. 可视化的本地服务器与客户端设计
Qt提供了QTcpSocket类,它将实现TCP传输协议。TCP是一个可靠的面向连接的协议,它按照网络节点间的数据流形式进行操作。这个协议可以用于创建网络客户端和服务器应用程序。若要创建服务器应用程序,还需要QTcpServer类来处理引用的TCP连接。对于服务器来说,多线程的这个特性太有用了,因为多线程使得服务器可能同时响应多个客户端的请求,所以现在服务器大多采用多线程。不管是多线程,还是服务器,QT中已经封装好了特定的类,所以使用起来也很方便。下面建立一个支持多线程、TCP的服务器。
首先建立一个服务器。新建一个类(Server)继承QT中的QTcpServer类即可。服务器的职责是监听端口。当监听到有客户端试图与服务器建立连接的时候,分配socket与客户端连接,再进行数据通信。

Figure 5. The diagram of cross compile folder
图5. 交叉编译文件夹图

Figure 6. The diagram of modifying environment variable
图6. 修改环境变量图
QTcpServer的listen()方法执行监听过程,可以指定监听的地址和端口。若给定了QHostAddress类型的监听地址,则监听该地址,否则,监听所有地址;若给定了quint16类型的监听端口,则监听该端口,否则,随机选定一个监听端口。一个基本的TCP连接设置如图7。
4.3. MySQL关系型数据库设计
利用MySQL数据库提供的C语言API通过网络登陆数据库,获取数据并保存。系统框图如图8所示。
首先通过数据库处理语句mysql_real_connect登陆到MySQL数据库,然后用mysql_real_query()函数来发送查询语句select * from到服务器上并执行。这种查询可以是MySQL服务器能够接受的任何有效的SQL查询语句。一旦查询已经结束,如果是SELECT查询的话,产生的结果集会带一个包含mysql_store_result()函数的变量数组,这个变量数组实际上是指向MYSQL_RES结构的指针。然后可以通过mysql_fetch_row()函数访问结果集中包含的记录,该函数可以每次读一条记录,使之进入特殊的MYSQL_ROW结构。该结构仅仅是一个数组,每一个元素代表一个记录字段。一旦结果已集中完成所有记录的检索,该函数返回NULL值,然后需要使用mysql_free_result()函数来重新分配使用的内存的结果集,从而得到能正确显示的结果。当满足数据SELECT查询条件的满足数据往往不知道有几个条件,如果获得保存数据的结构,出现浪费和内存溢出问题。所以这里选择使用链表结构中的数据的保存和进一步的处理。
本设计数据库操作流程为:通过数据库处理函数将数据库的地址、用户名、密码、数据库名和端口号发送给服务器来建立连接并打开数据库,然后通过函数将数据库处理语句发送给服务器来提取数据库信息。此时提取的到的数据是数组指针,此信息存储在函数mysql_use_result()中,通过处理函数mysql_num_fields()来处理接收到的结果集,并将其逐条存入自定义的指针数组中,以实现可视化网关MySQL数据库的数据获取和存储。
5. 系统实现与结果分析
测试环境包括一个嵌入式可视化网关、一个Zigbee网络、五套温湿度传感器节点、一台Linux云服务器、一部手机终端。传感器通过RS232串口与Zigbee节点进行数据交互。Zigbee传感网络通过串口服务器与嵌入式网关进行数据交互,其中串口服务器具有IEEE802.15.4无线接口。最终嵌入式网关通过LCD显示屏将数据处理结果显示出来。
连接好所有待测设备后,上电启动可视化网关,操作界面如图9所示。首先在远程服务器部分输入远程服务器的IP地址“10.28.15.xx”和端口号“1236”,点击“连接”按钮,如果连接成功则设备继续运行,若连接不成功则操作界面弹出“远程服务器连接失败”的提示窗口。在远程服务器连接成功后继续连接WSN服务器,即传感器网络。与连接远程服务器相同,首先输入WSN服务器的IP地址“192.168.1.105”和端口号“6000”,然后点击“连接”按钮,操作界面未弹出“WSN服务器连接失败”的提示窗口,说明可视化网关已经与WSN服务器建立了连接,此时“实验日期”窗口开始显示实时时间,即本次实验的时间。最后点击“连续采集”按钮,开始记传感器网络中采集到的温度、湿度数据,并在操作界面中绘制出曲线图,同时将数据保存到本地的MySQL数据库和发送至远程服务器上接受进一步的处理。
双击触摸屏可将操作界面切换至MySQL记录查询,即对传感器网络采集到数据的记录,如图10所示。点击界面中“一号设备”至“五号设备”可以单独查询每个设备状态的记录在左侧的表格中显示,如果不单独选中则左侧表格显示五组设备的状态记录,点击“确定”按钮,开始查询。
经测试,WSN传感网将温湿度传感器采集到的数据发送至可视化网关,最终处理结果显示在了触摸屏上,显示稳定,实现设计目标。
6. 结论
基于嵌入式 Linux设计实现了可视化管理网关系统,其可视化界面以及MySQL数据库服务解决了传统网关操作复杂、数据查询困难的问题。该系统具有明显的容易移植的特性,应用于实验室温度、湿度等实验室环境监测,收到了较好的效果,为远程实验监控平台建设提供较好的支撑。

Figure 7. The setting of TCP in the QT software
图7. QT软件下TCP的设置

Figure 8. The flow chart of recording MySQL database
图8. MySQL数据库记录流程图

Figure 9. The operation interface of visualization remote gateway
图9. 远程网关可视化操作界面

Figure 10. The interface of recording and querying
图10. MySQL记录查询界面
基金项目
国家科技支撑计划项目(2014BAH28F04),湖南省重点学科,湖南省高校科技创新团队,湖南省教育厅科学研究项目(14C0031),湖南省教学改革研究项目(湘教通[2013]223号)。