Computer Science and Application
Vol.05 No.04(2015), Article ID:15217,7 pages
10.12677/CSA.2015.54014

Visualization Gateway System Based on Linux Qt Technology

Jian Wen, Lijun Tang*, Zhongchuan Lin, Min Deng, Feng Bin, Yongjian Wang, Yu Gang

Department of Physics and Electronic Science, Changsha University of Science and Technology, Changsha Hunan

*通讯作者。

Email: *tanglj2009@163.com

Received: Apr. 23rd, 2015; accepted: May 8th, 2015; published: May 14th, 2015

Copyright © 2015 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

ABSTRACT

Aiming at the requirement of laboratory platform for remote network control, we propose a designing scheme of visualization gateway system based on Linux Qt platform, and realize a visualization gateway system based on the embedded C/S mode. The system adopts the Cortex-A9 quad- core Exynos 4412 chip as the processor cores, uses embedded Linux Qt platform as the local server and remote client, collects Zigbee network sensors’ data via the serial port and Ethernet port, and combining with embedded Linux operating system, Zigbee technology and network transmission, uses open source interface library Qt to develop interface program. The system synthetically considers the access of a variety of sensor devices in LAN, and can easily exchange the information with the outside network.

Keywords:Visualization Gateway, Remote Monitoring, Zigbee

基于Linux Qt技术可视化网关系统

温建,唐立军*,林中川,邓敏,宾峰,王永健,刚煜

长沙理工大学物理与电子科学学院,湖南 长沙

Email: *tanglj2009@163.com

收稿日期:2015年4月23日;录用日期:2015年5月8日;发布日期:2015年5月14日

摘 要

针对远程实验室平台控制需求,提出了一种基于Linux Qt平台可视化管理的网关系统设计方案,设计实现了一种基于嵌入式的C/S模式的可视化网关系统。该系统采用Cortex-A9四核的Exynos 4412芯片作为处理核心,以嵌入式Linux Qt平台作为本地服务端与远程的客户端,通过串口和网口采集Zigbee网络传感器的数据,结合嵌入式Linux操作系统、Zigbee技术及网络传输,利用开源的图形界面库Qt开发界面程序。系统综合考虑了局域网内各种传感器设备的接入,可方便与外界网络信息交换。

关键词 :可视化网关,远程监控,Zigbee

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号)。

文章引用

温 建,唐立军,林中川,邓 敏,宾 峰,王永健,刚 煜, (2015) 基于Linux Qt技术可视化网关系统
Visualization Gateway System Based on Linux Qt Technology. 计算机科学与应用,04,108-115. doi: 10.12677/CSA.2015.54014

参考文献 (References)

  1. 1. 姚静 (2015) 基于Web的辽宁农村远程教育平台设计与实现. 信息技术, 2, 26-30.

  2. 2. 王冰山, 郝延刚, 王远斌 (2014) 基于Qt的船用导航雷达显控终端软件设计. 江苏科技信息, 22, 59+65.

  3. 3. 卢爱红 (2014) 基于Qt/Embedded的水务数据监测系统. 计算机时代, 12, 22-23+27.

  4. 4. 王斌, 阮福明, 朱耀强 (2014) 基于Qt多线程多串口的综合导航模拟系统研究与应用. 天津科技, 10, 66-69+72.

  5. 5. 江立颖 (2001) 基于Web的通用远程网络教学平台系统的设计与实现. 硕士论文, 大连理工大学, 大连.

  6. 6. 范朋 (2011) 基于Qt的嵌入式Linux系统GUI的研究与实现. 硕士论文, 北京邮电大学, 北京.

  7. 7. 陈敬, 向伟 (2013) 基于嵌入式Linux的QT/Embedded移植与应用开发. 电脑与信息技术, 1, 57-59.

  8. 8. 谢辉 (2015) 基于Linux内核的网络安全策略研究与应用. 网络安全技术与应用, 2, 33+37.

期刊菜单