• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 事迹材料
  • 申请书
  • 作文大全
  • 读后感
  • 调查报告
  • 励志歌曲
  • 请假条
  • 创先争优
  • 毕业实习
  • 财神节
  • 高中主题
  • 小学一年
  • 名人名言
  • 财务工作
  • 小说/有
  • 承揽合同
  • 寒假计划
  • 外贸信函
  • 励志电影
  • 个人写作
  • 其它相关
  • 生活常识
  • 安全稳定
  • 心情短语
  • 爱情短信
  • 工会工作
  • 小学五年
  • 金融类工
  • 搞笑短信
  • 医务工作
  • 党团工作
  • 党校学习
  • 学习体会
  • 下半年工
  • 买卖合同
  • qq空间
  • 食品广告
  • 办公室工
  • 保险合同
  • 儿童英语
  • 软件下载
  • 广告合同
  • 服装广告
  • 学生会工
  • 文明礼仪
  • 农村工作
  • 人大政协
  • 创意广告
  • 您现在的位置:六七范文网 > 其它相关 > 正文

    基于PyQt无线传感器网络监控软件开发

    来源:六七范文网 时间:2023-06-05 01:55:09 点击:

    摘 要: 将无线传感器网络(WSN)应用于战场感知等军事领域的研究已经广泛展开。无线传感器网络系统架构包括无线传感器网络、SINK节点和PC端监控软件。为了方便用户了解网络状态和管理网络,使用PyQt设计与实现了无线传感器网络PC端监控软件,PyQt是结合了Qt的C++跨平台程序框架和Python的踌平台解释性脚本语言。对此监控软件进行模块化独立设计,各子程序模块不集成于主程序模块,使程序的设计操作简单化。

    关键词: Python; PyQt; 无线传感器网络; 监控软件

    中图分类号: TN911⁃34; TP312 文献标识码: A 文章编号: 1004⁃373X(2014)16⁃0065⁃03

    Development of wireless sensor network monitoring software based on Python

    QIU Xia, DUAN Wei⁃jun, HUANG Liang, XU Zong⁃cheng

    (School of Electronics Information, Northwestern Polytechnical University, Xi’an 710072, China)

    Abstract: The research that WSN is applied to battlefield perception and other military fields has been widely expanded. WSN system architecture consists of wireless sensor network, SINK node and PC monitoring software. In order to facilitate users to understand the network status and mange the network, A PC monitoring software of WSN was designed and realized by the aid of PyQt, which combines the Qt C++ cross⁃platform program framework with the cross⁃platform interpreted language of Python. The modular monitoring software was independently designed, and each subroutine module is not integrated in the main program module, so as to simplify the design operation of the program.

    Keywords: Python; PyQt; WSN; monitoring software

    0 引 言

    无线传感器网络(Wireless Sensor Networks,WSN)是由大量的密集部署在监控区域的智能传感器节点构成的一种网络应用系统[1]。这些传感器节点以自组织(AD⁃Hoc)[2]和多跳(Multi⁃Hop)的方式交互数据,协作地感知、采集、处理和传输其覆盖地理区域内被监测对象的相关信息。其具有大规模、自组织、动态性、可靠性、应用相关和以数据为中心的特点。目前相关的无线传感器网络理论研究和应用研究已广泛展开,对战场环境进行信息采集的网络系统是研究的一大重点。

    典型的无线传感器网络系统由无线传感器网络、SINK节点和PC端监控软件组成。为方便用户了解网络状态和管理网络,需要提供界面友好和功能完善的上位机监控软件。用户通过PC机上的监控界面可方便直观看到整个网络的动态显示,并且可以与网络进行交互操作。本文介绍了基于PyQt的无线传感器网络监控软件的开发。

    1 关键技术与编程工具开发

    PC端监控软件的服务器操作系统采用Windows XP操作系统,开发平台采用Python2.6+PyQt4+eric4⁃4.2.2a。Python是功能很强大的跨平台解释性脚本语言,Qt是C++跨平台应用程序框架,二者的结合就是PyQt[3]。而Eric则是由Python开发的一款支持PyQt的IDE。Python是一种开源的脚本编程语言,收可移植的ANSI C编写,可以轻松驾驭Windows,Linux,Mac等主流操作系统,可移植性极强[4]。Eric4是一款Python,Ruby的IDE,其代码功能强大,与Qt4的完美结合,非常适合开发图形界面的Python应用程序。

    下面介绍如何搭建PyQt开发环境:

    (1) 下载Python,eric和PyQt,分别为python⁃2.7.3 msi,eric4⁃4.5.15.zip和PyQt⁃Py2.7⁃x86⁃gpl⁃4.8.5⁃1.exe。Python和PyQt的版本要一致,推荐使用2.7版本,3.0版本正在测试中。

    (2) 安装软件。首先安装Python2.7,默认安装到D:\python27目录下,安装成功后,会出现在菜单中。紧接着安装PyQt,一路回车即可。在安装Eric前,需要配置环境变量。将Python所在路径复制到环境变量里的Path里即可。再来解压Eric4⁃4.5.15.zip到D盘里。解压之后,可在DOS命令下运行 D:\python27\python D:\eric4⁃4.5.15\install.py。运行完之后,就会在D:\python27目录下生成eric4.bat文件。此时,开发环境已经搭建完成。

    2 无线传感器网络体系结构

    在监测区域里部署传感器节点,这些节点通过自组织协议构成无线传感器网络。传感器节点负责感知、采集、处理和传输网络覆盖地理区域内被感知对象的信息,并向SINK节点报告,SINK节点再通过串口将信息送达用户。用户在远端可知网络部署区域内的环境变化和网络的运行情况,也可以通过SINK节点[5]向网络发布查询请求和控制命令。图1为所描述的系统结构图。

    图1 系统结构图

    SINK节点可以充当网络的协调器,具有较强的处理、存储和通信能力。连接传感器网络与电脑终端监控中心,实现两者之间通信协议的转换。将网络节点的数据收集后处理,最后发送到电脑终端的监控中心。提供网络控制功能,将监控中心计算机的用户命令发送给网络中的节点。用户监控中心通过PC端的界面远程观察网络所处状态和发送指令,还可以随时浏览历史状态,实现对网络的远程管理和控制。

    3 监控软件开发

    网络节点作为终端,负责信息的采集和共享,实现多节点协同地执行任务;SINK节点维护整个网络,并与监控软件交互;监控软件主要对网络数据管理和显示,方便用户监测网络拓扑并进行网络调整,保证无线传感器网络的持续稳定工作。下面来介绍监控软件的开发。

    3.1 监控软件主界面

    监控软件主界面主要分为四个主要部分:系统主菜单和功能按钮、节点状态栏、二维场景显示、信息栏。用户通过操作主菜单和功能按钮使用软件的功能命令。用户设置正确的串口参数后打开串口,然后开始与SINK节点的通信。监控软件进行数据包的解析后在主界面信息栏将数据包输出,在场景显示处显示网络拓扑、数据流、节点地址等信息。右侧的节点状态栏实时显示节点当前的横纵坐标。图2为监控软件主界面。

    图2 监控软件主界面

    3.2 主要功能

    对监控软件进行模块化独立设计,各子程序模块不集成于主程序模块,子模块可独立运行,从而降低了程序的复杂度,使程序的设计操作简单化[5]。监控软件的整体功能模块结构如图3所示。

    图3 整体功能模块结构图

    3.2.1 消息获取和处理

    PC端监控软件通过串口与SINK节点连接,从而利用SINK节点来获取各个节点和链路信息。图4为消息获取和处理的流程。由于监控软件基于Python编写,为了便于操作串口,程序采用Pyserial[6]串口控制模块。Pyserial模块是一个用来控制串口的Python第三方库,支持Python调用Windows,Linux系统调用,模块启用后会自动选择后端操作系统。为了方便用户打开指定的串口并按照指定的波特率通信,软件增加了串口设置对话框GUI,负责设置串口号和波特率。完成串口设置后,就可以进行下一步操作。点击工具栏上的三个按钮就打开选择数据文件对话框,打开文件后开始接收来自串口的消息并将接收到的数据进行处理,按照数据文件格式保存到文件中,同时在主界面的显示场景中绘制各节点、通信路径等,在状态栏显示节点的状态和坐标信息。

    图4 消息获取和处理的流程

    3.2.2 节点地址等状态信息显示

    用户在系统运行的任意时刻都可查询任意节点的状态信息,能够将节点地址和坐标、节点类型、运行状态等信息显示在界面上,用户在PC端就可进行节点监控。

    3.2.3 网络场景显示

    通过主界面的二维场景显示,可以直观地看到网络当前状态。显示场景中用正方形表示小车节点,圆形代表入侵节点,两者使用不同的颜色标记。小车节点上方显示其地址以此做区分,而对入侵节点进行编号显示,小车节点周围的圆形虚线代表其感知范围。节点之间通信时记录数据的通信链路,在图中以绿色虚线显示,如果节点之间通信失败则将之前显示的链路删除。当链路上有数据包发送成功时,链路用闪烁代表。显示界面如图5所示。

    图5 二维场景显示

    3.2.4 网络控制

    在网络控制模块用户向节点网络发送控制命令管理网络,监控软件设计实现了控制对话框方便操作。用户单击工具栏中的按钮就可以弹出控制对话框。

    根据系统要求,目前支持远程控制命令有:开启小车,组网攻击,小车移动,开始通信组网等。目的地址:输入小车的16位网络地址(可以从状态栏或者3D场景小车上方看到)。消息负载内容:按照协议填写相应的负载,不同的控制命令负载类型不同。点击发送即可,可以在状态栏收到网络节点的反馈消息。

    3.2.5 场景回放

    通过从本地保存的数据文件中提取数据,重现网络某一时间段的场景,特别是攻击场景的重现,可以看到入侵节点的移动轨迹和网络节点的攻击过程。场景回放是指监控软件通过从本地数据文件(实时连接到网络保存下来的)按时间顺序读取各不同时刻的消息,获取各类节点和通信流的信息,在三维场景中重现各时刻的画面。软件根据读取的坐标信息重绘车库、小车、通信流,当有敌节点入侵时绘制入侵节点,展现小车节点和入侵节点的移动过程、攻击过程,从而回放攻击场景。

    3.2.6 网络测试

    为了实现从数据上分析网络性能,从更深的层次了解网络运行状态,增加了网络测试部分。主要实现端到端时延[7]、节点通信的丢包率[8]、组网协议的连通性这几项。在监控软件中设计和实现了网络测试模块,这个模块的主要作用是使用户在PC端就可以方便的测试当前网络的性能如何,对结果进行分析。如果出现问题那么要寻找解决方案,保证用户能够掌握战场上出现的状况快速做出反应,采取措施。实现了三项测试内容:系统响应时间测试、端到端时延测试[9]、丢包率测试。从菜单栏的Test选项就可以选择要进行哪项测试。

    系统响应时间的测试方案是SINK节点向全网节点广播一个命令要求其他节点向SINK节点返回一个响应帧,SINK节点由串口向监控中心汇报响应节点和此节点的响应时间。端到端时延的测试方案是将源节点地址、目的节点地址、负载内容这三个参数发送给SINK节点,SINK节点通知源节点发起到目的节点的时延测试,测试时的负载就是从监控软件输入的负载内容。源节点将测试到的时延值与到目的节点路由跳数一起通过网络多跳通信发送到SINK节点,然后通过串口上传到监控中心。丢包率测试的是两节点之间通信时的丢包情况,如果丢包过大则要分析原因采取一定的措施,例如调整节点部署等。

    4 结 语

    本文介绍了基于PyQt的无线传感器网络监控系统,方便用户了解网络状态和管理网络。PyQt结合Qt的C++跨平台程序框架和Python的跨平台解释性脚本语言。监控软件有六大功能模块,分别是消息获取和处理模块、节点地址等状态信息显示模块、网络场景显示模块、网络控制模块、场景回放模块和网络测试测试模块。该系统仍存在有不足之处,监控软件实现功能简单,可靠性不高,安全性不高,这需要进一步研究。

    (上接第67页)

    参考文献

    [1] 屈峰.无线传感器网络及其应用[J].四川兵工学报,2013,34(2):111⁃113.

    [2] 程皓.无线传感器网络自组织协议的研究与实现[J].传感器与仪器仪表,2009,25(12):88⁃90.

    [3] MISRA Sanjay. Estimating complexity of programs in Python Language [J]. Technical Gazette, 2011, 18 (1): 12⁃18.

    [4] 陈笑飞.基于Python的虚拟仪器技术研究及实现[J].电子设计工程,2012,20(16):48⁃50.

    [5] TIAN Yu. Design and application of sink node for wireless sensor network, COMPEL [J]. International Journal for Computation and Mathematics in Electrical and Electronic Engineering, 2013, 32 (2): 531⁃544.

    [6] 王清华.基于无线传感器网络的煤矿瓦斯监测系统软件的研究[J].煤矿机械,2012,33(12):232⁃234.

    [7] 夏永铿.基于Web的群体机器人远程控制系统研究与实现[J]. 微型电脑应用,2013,29(2):13⁃15.

    [8] 邬春学.基于Internet的网络控制系统端到端时延分析[J].计算机工程,2007,33(22):158⁃160.

    [9] 李鹏. ZigBee网络性能分析及网络规划应用研究[D].武汉:华中师范大学,2009.

    [10] COLOMB R M. End to end development engineering [J]. Journal of Software Engineering and Applications, 2011, 4 (4): 195⁃216.

    推荐访问:传感器 监控软件 开发 网络 PyQt