物联网网关控制与数据采集系统设计
摘要: 本课题以FriendlyARM6410开发板作为物联网网关硬件平台开发,软件开发平台是VMWARE+UBUNTU+LINUX。具体完成的任务包括:基于LINUX下的驱动程序设计,LINUX下的平台设计,数据库设计,网络SOCKET应用程序设计,基于LINUX的SQLITE的数据库设计和多线程设计。通过系统调试和测试,该网关可以实现数据协议的双向转换,实现数据的存储,显示和管理,具有很好的应用价值。本文首先综述了物联网和物联网网关的研究现状,提出了基于FriendlyARM开发平台的物联网网关控制与数据采集系统的整体设计方案。然后对硬件和软件设计展开讨论,最后对整个程序的运行结果和调试过程进行详尽的阐述,验证了此次设计的可行性。
关键词:物联网网关;数据采集;无线传感器;数据协议转换
Abstract: The topic is based on the FriendlyARM6410 development board as the hardware platform of IOT gateway. The software is developed by VMWARE+UBUNTU+LINUX platform.The completion of specific tasks include: Driver programmingbased on the LINUX, LINUX platform design, the database design, network socket application program design, based on LINUX SQLite database design and multi thread design. Through the system debugging and testing, the gateway can realize the bidirectional conversion of data protocol, realize the data storage, display and management, and has very good application value. Research status of networking and networking gateway in this paper, proposed the overall design scheme of the IOT gateway control and data acquisition system based on FriendlyARM development platform. Then carry out hardware and software discussions, Finally, the operating results and debugging process of the entire program are described in detail, which verifies the feasibility of the design.
Key words:IOT gateway; Data acquisition;Wireless sensor;Data protocol conversion
一、概述
物联网网关的出现在物联网时代扮演着非常重要的角色,它将成为连接无线传感网络与传感通信网络的一个纽带,完成无线传感网络、传统通信网络以及其他不同类型网络之间的协议转换[1]。它可以满足区域内的接入要求,并且完成转发、控制、信息交换、协议转换以及终端管理、安全保障等功能[1]。随着物联网以及物联网产业的快速发展,现如今的智能管理、智能交通、智能家居、智能医疗、环境保护等各个领域已经离不开物联网产业[2]。物联网的产品已经深入到各家各户,各行各业,不仅可以提高人类的生活水平,也可以在一些科研和实际应用中发挥重要的作用,比如灾害预警、危险警报、环境监控、工业检测、食品溯源、公共安全、甚至是敌情侦察等。所以设计一款物联网网关设备具有重要的意义[2]。
对物联网而言,要想实现各系统的统筹管理,往往需要大量的感知节点组成传感网络,但是传感器类型十分广泛,而且使用的协议都不同,所以需要一种网元设备将这些终端设备无缝的链接到网络中,这也就是物联网网关[3]。我们将物联网网关的整体架构划分为三层,分别是应用层、网络层、感知层。本课题旨在实现一款简单的网关设备,它可以将小范围的传感器节点信息汇聚并且传送到互联网络,以实现传感器节点信息采集在本地的监控。其次,该网关设备还可以实现双向通信,完成通信协议的转换。最后,此网关设备可以将底层采集的数据储存到数据库,通过UI来实现数据的显示和控制。通过此设计可以实现上述物联网网关的基本功能,具有很高的应用价值。
二、系统设计方案
(一)硬件功能结构设计
在整个物联网网关系统中,硬件的结构分为底层,上层和中层,在本设计中主要实现的功能是中层网关实现的数据协议转换,以及双向传输。用到的硬件设备是Tiny6410,上层应用是用Linux编写的,首先对开发板进行烧写,其次是完成设备的驱动,串口驱动,网口驱动。硬件结构图中涉及到了底层传感设备、中层网关平台ARM11 S3C6410、上位机服务器。具体的连接关系如图2-1硬件结构图所示。
图2-1 网关系统硬件结构图
(二)软件功能结构分析
网关系统的上层的软件功能,也就是用户直接使用的部分。虽然此系统并不是以面向对象的软件设计为中心,网关功能的实现主要还涉及到了硬件的部分,但是网关系统终究是需要用户来使用的,所以在最终的Linux软件设计中,加入了UI字符界面,可以使网关操作清晰明了,同时方便了管理员的管理和用户的使用。网关系统的数据双向传输模型,在图2-2中展示了网关系统中数据传输的双向模型,其中pc1就是模拟底层的传感器,可以将采集到的数据从串口进入网关系统,经过一系列的协议转换,模拟上层云平台的pc2可以收到来自底层的数据,并存入数据库。同样的道理反向亦然。
图2-2 网关系统数据传输双向模型图
软件流程在程序设计中有着很重要的意义,在这个图中对进入系统后的每一步操作,以及系统编程的每一个思路有着很清晰的展示。在进入主程序入口后完整的展示了整个系统的流程,对用户进入系统后的每一步操作进行说明,网关的使用者在进入网关前必须完成身份验证,本系统采用文件操作存放用户名和密码。当用户点击开启服务之后,系统会开启四个线程并且包含多个判断,对操作进行控制,从而实现数据的双向传递以及协议转换,如图2-3所示。
图2-3 网关系统软件流程图
三、目标实现及系统测试
(一)数据通讯协议的定义
在本系统中定义的数据通信协议,可以实现数据在模块之间的传递,并且将来自底层传感系统或上层云平台的数据进行协议转换。本协议可以对硬件资源的参数标准化,从而可以采用相同的方法对模块内部资源进行访问和控制,完成数据传递的工作。接下来将对本系统中定义的上行和下行数据通讯协议进行详细的说明,如表3-1和表3-2所示。
表3-1 下行数据通信协议格式
开始
|
执行状态
|
数据1
|
数据2
|
结束
|
1字节
|
1字节
|
1字节
|
1字节
|
1字节
|
3A
|
01
|
00
|
00
|
3B
|
表3-2 上行数据通信协议格式
开始
|
执行状态
|
数据1
|
数据2
|
结束
|
1字节
|
1字节
|
1字节
|
1字节
|
1字节
|
3A
|
FF
|
00
|
00
|
3B
|
(二)系统功能模块测试
(1)管理员登陆模块测试: 在管理员登陆系统之前,首先需要通过telnet远程连接FriendlyARM6410,在自己的电脑上对开发板进行控制。管理员登陆时,输入自己的账户和密码,系统会根据输入的内容通过自动检测,跳过*对比用户名是否存在跳过#对比密码是否正确,如果正确则可以登陆系统,出现网关初始界面,如果错误则提示错误信息,如图3-1所示。
图3-1 网关初始界面
(2)管理员登陆系统: 登陆模块是由已经拥有权限的管理员输入管理员账户以及密码,根据调用系统中的文件admin.txt来判断账户和密码是否正确。成功登陆系统后系统分为5个选项,用switch语句连接每个选项登陆成功后运行程序,接下来会对这五个选项依次说明,成功登陆网关系统如图3-2所示。
图3-2 登陆成功界面
(3)系统配置模块测试: 在选择配置Configure选项之后,会出现如图3-3所示的下一级目录的四个选项,分别是设置最大连接数、增加管理员账户、增加用户账户、以及返回上一级,用户可以选择对应的数字进行操作,其中管理员比用户拥有更高的权限,这也是区别二者的意义。
图3-3 系统配置选项
(4)开启网关服务和停止服务
上行(串口-网口):根据定义的上行数据通信协议格式,进行测试用例的设计,发送的数据为6767,测试用例如表3-3所示。串口测试工具发送的数据如图3-7所示,网口测试工具接收到的数据如图3-8所示。网关系统中检测到的数据长度以及转码后的格式如图3-9所示。
图3-7 串口测试工具发送的数据
图3-8 网口测试工具接收到的数据
下行(网口-串口):根据定义的下行数据通信协议格式,进行测试用例的设计如表3-4所示,发送的数据为3344。网口测试工具发送的数据如图3-10所示,串口测试工具接收到的数据如图3-11所示。
图3-10 网口测试工具发送的数据
图3-11 串口测试工具接收到的数据
(5)查看数据库表:在选择查看数据库后,系统会调取数据库表,这个过程是通过网关系统的数据插入数据库表之后,再通过文件操作将数据库表存入.txt文件中,数据表如图3-12所示。
图3-12 查看数据库表
四、结论
本篇论文主要探究了当前物联网网关的发展现状。随着物联网的发展和智能化的需求,现有的一些物联网网关的存在着一些不足。本文主要是开发了一个基于Linux和FriendlyARM6410的简单网关平台,可以接入多种底层传感设备,并能为应用程序提供统一的数据格式。而且成本较低,操作简单,维护容易。管理员登陆后只需点击开启服务,就可以将采集到的底层数据通过网关系统完成数据格式的统一以及数据的存储。可以大大提高工作的效率,推动社会进步。
该系统利用的开发的平台为Linux内核版本2.6,硬件平台为FriendlyARM6410。用户通过在电脑中远程控制FriendlyARM6410,实现对数据的双向的协议转换,数据的存储。数据库使用的是sqlite3,由于它所占内存很小,而且不用安装,处理速度也很快所以在使用和维护中都很方便。本系统虽然实现了一些网关的基本功能,但仍然存在着很多不足,例如可以将上层的操作系统改为安卓系统。还可以将UI字符界面改成UI图形界面。这样会使Linux的界面美观实用,会给用户带来更好的体验。还有程序在功能方面也有些欠缺,如可以加入警报系统显示、GPRS传输等功能。当前的网关系统在小规模的数据传输中表现良好,运行稳定,用户操作安全快捷,但随着科技的快速发展,以及人们需求的不断提升,当前的网关系统功能还不够全面,设计还不够完善。如果可以进一步提升硬件软件,以及一些细节和功能,就可以给系统带来很大的提升,功能也会进一步完善,也会给用户的使用带来更好的体验,同时可以让网关系统在智能化方面更加彻底。希望日后可以对系统的不足予以改善和弥补,争取把物联网智能网关系统做成一个智能高效快捷的网关平台。
参考文献
[1] 羡慧竹.基于物联网的智能网关系统研究与实现[D].北京工业大学硕士论文,2014
[2] Gao F, Wang Y, Shen W, et al. Design and Implementation of Linux-Based IPv4/IPv6 Translation Gateway[C]. Internet Technology and Applications, 2010 International Conference on. IEEE, 2010:1-4.
[3] 罗俊海,周应宾,邓霄博.物联网网关系统设计[J].电信科学,2011(2):56-59
[4] 王森,何建忠.基于Linux系统的字符设备驱动研究与设计[J].微计算机信息,2012(3): 114-118