无线传感网气象监测系统上位机软件设计

2022-09-09 05:50孙晓冬王庆贺黎蕾郑利华
电子技术与软件工程 2022年12期
关键词:机软件字节传感

孙晓冬 王庆贺 黎蕾 郑利华

(中国电子科技集团公司第五十八研究所 江苏省无锡市 214072)

气象数据在人们日常生活、农业工业生产以及军事等领域都十分重要,及时的气象数据能够为人们在生产生活决策中提供重要的指导依据。无线传感网是大量无线传感网节点组成的网络,节点功耗低,数据传输稳定,应用前景十分广阔。本文是用ZigBee通信技术实现气象采集节点数据的局域网的传输,使用4G网络通信技术实现远程数据的传输。无线传感网气象监测系统需要专用的上位机软件实现对多个气象采集节点的控制和气象数据的存储、处理,因此设计了该专用的上位机软件。

本文阐述的上位机根据无线传感网气象监测系统的特点和要求设计而成。使用高效的C#编程语言实现了上位机软件,采用Access数据库来存储所采集的气象数据。测试结果表明,上位机软件能够实现对气象采集节点的控制以及对气象数据的获取、存储和处理,上位机软件达到了设计要求。

1 系统整体结构

图1是无线传感网气象监测系统的整体结构图,主要分成了三个部分,分别是气象采集节点、无线网络传输系统和上位机软件,每个部分实现不同的功能。

图1:无线传感网气象监测系统结构图

气象采集节点主要实现风速、风向、温度等气象信息的采集,通过ZigBee终端模块将数据传输到ZigBee无线网络中,由于该节点的能量是有限的,所以尽可能的降低功耗以延长节点工作时长;无线网络传输系统由ZigBee路由器、无线传输网关(ZigBee协调器和4G DTU模块组成)组成,ZigBee终端、ZigBee路由器和ZigBee协调器组成的网络实现ZigBee局域网内的数据传输,4G DTU传输模块将ZigBee局域网连接到互联网中,实现了远程数据的传输;气象监测系统上位机软件负责控制整个气象监测系统,对气象节点进行控制,获取气象节点的数据,对气象数据进行处理、存储、显示以及统计分析。

2 上位机软件的设计

2.1 上位机软件的功能模块设计

一般上位机总体功能包括数据的接收和数据的处理两大部分,包含的功能有通信、指令的发送、数据接收、数据显示、存储以及后期对数据的各种处理。而编写上位机软件需要合适的编程语言实现,C#是微软公司发布的一种由C语言和C++语言衍生出来的面向对象的、运行于.NET Framework之上的高级编程语言,有许多组件、封装的函数可以使用,编程比较高效,可以节约开发时间,本文所介绍的上位机就是使用C#语言编写的。

本文所述上位机软件主要包含如下功能:通信配置、节点管理、数据上传、统计分析以及用户管理等。不同的功能模块通过不用的软件界面来实现。

2.2 上位机界面的设计

由于气象监测系统上位机的功能比较复杂,在单个软件窗体上实现所有功能过于拥挤繁杂,故采用多文档界面(Multiple Document Interface,MDI)窗体来组织软件的界面,软件的界面如图2所示。

图2:气象监测系统上位机软件界面

整个界面主要分为四部分。区域(1)是菜单区,可根据不同的菜单选择不同的功能,区域(2)是主窗口区域,是用来放置子窗口的地方,该区域放着一个Panel控件,当单击不同的菜单时,相应功能的子窗口就会切换并显示在该Panel控件中。区域(3)是节点列表信息的展示区,每个节点对应一个显示子模块,每个显示子模块都显示了当前节点的状态信息:实时数据定时上传功能是否打开、实时数据上传间隔是多少、历史数据存储功能是否打开、历史数据存储间隔是多少,低功耗模式是否打开。区域(4)是运行监视区,这是一种实时的日志监视器,可以实时显示上位机的运行信息,可以监视软件的运行状况,对于该上位机软件的使用是很有帮助的。

2.3 上位机通信的设计

2.3.1 通信协议

为了实现无线传感网监测系统各种功能的实现以及上位机软件和多个气象采集节点的正常通信,必须制定上位机软件和气象采集节点的通信协议。通讯协议的格式从左往右如下所示:

节点编号(2字节)+读写(1字节)+命令(1字节)+数据长度(1字节,值为N)+数据(N字节)+校验(2字节)。

每个气象采集节点都有一个唯一的节点编号,节点编号占用2字节;读写域占用1个字节,只有两个值0x01和0x03,0x01表示上位机软件向气象采集节点写入数据,0x03表示上位机软件从气象采集节点读出数据;命令域占用1个字节,不同的命令对应不同的值;数据长度域占用1个字节,表示数据域有多少个字节的数据;数据域是存储有效数据的区域;校验域占用2个字节,用于对整帧数据进行校验,使用CRC16校验的方式,防止传输过程数据出现错误。上位机和气象采集节点之间采用应答式的通信方式,上位机发送指令后,气象采集节点会返回相应的应答数据,如果上位机没有收到气象采集节点的应答数据,上位机可以重新发送命令。

2.3.2 通讯机制的设计

对于实时数据采集的上位机软件,通讯部分始终是软件的重要环节,实时性和可靠性必须有保证,但是由于无线传感网气象监测系统的气象采集节点为了减少功耗并不是时时在线,可能处于休眠状态,用常规的发送指令的方式可能会产生许多无效指令,可靠性低,效率低,因而必须设计一种特殊的通讯方式来提供通信的可靠性和高效性。本文所述的上位机软件采用了一种特殊的异步通讯方式,如图3所示。

图3:上位机和下位机的异步通讯方式

使用上位机软件时,单击某些命令按钮,上位机软件会产生某些指令,但是并不立刻发送,而是将指令放到指令双向链表中,另外有一个线程根据指令的标志决定是否将指令立刻发出去,对于不立刻发出去的指令,根据气象节点休眠时间表来发送指令数据,只有在判断当前指令要送达的节点处于非休眠状态时,才会将指令发送出去,减少指令发送的无效次数。例如1-1号节点被设置为低功耗模式后,其每分钟的前10秒处于正常工作状态,后50秒处于休眠模式,当用户发送“实时数据上传”命令时,上位机会判断当前系统时间是否处于每分钟的前10秒钟,如果处于则将命令立刻发送,否则等待节点处于非休眠模式时才会将命令发送出去。用户每次可以选中多个气象采集节点进行相关的操作,提高效率。例如如果用户想使用上位机软件使得气象采集节点将实时气象数据传输到上位机软件,那么用户可以选中多个气象采集节点,然后下达上传实时数据的指令,选中的这些气象采集节点的数据就会陆续上传到上位机。上位机软件异步监听到数据后,进行接收操作,将接收到的数据放到接收数据队列中,会有一个单独的线程对接收数据队列中的数据进行数据的分发、处理等。该通讯方式可以被动接收数据,应用灵活,对于上传到上位机的数据都会进行有效处理。

2.4 上位机软件模块的详细设计

无线传感网气象监测系统上位机软件包含以下模块:通信配置模块、节点管理模块、数据上传模块、统计分析模块以及用户管理模块等,不同的模块对应不同的界面,方便用户的使用。上位机软件功能模块图如图4所示。

图4:上位机软件功能模块图

2.4.1 通信配置模块

上位机软件和无线传输网关既可以通过移动4G网络进行通信,也可以直接通过RS232串口进行通信。通信配置模块就是来配置这两种通信方式的。如果使用串口,需要进行串口选择,配置波特率、数据位、是否奇偶校验和停止位;如果使用4G网络通信,需要配置本地IP、端口号以及注册包。

2.4.2 节点管理模块

节点管理模块包含节点信息管理和远程节点管理与维护两个子模块。节点信息管理模块主要实现添加、删除、修改和查询节点信息的功能,是对存储在PC机端的节点信息数据的维护。节点信息主要包含气象信息采集节点的编号、名称、节点ZigBee地址以及节点所处的位置等信息,这些信息都存储在Access数据库中。远程节点管理与维护模块主要实现远程节点时间的校准和节点气象数据存储间隔的设置, 上位机通过无线传输网络向气象采集节点下达命令来实现节点时间的校准和存储间隔的设置。

2.4.3 数据上传模块

数据上传模块包括了节点实时数据上传和节点存储数据上传两个子模块。节点实时数据上传模块允许用户选择多个气象信息采集节点每隔一定时间上传气象数据,允许选择其中一个节点来显示实时接收到的数据,上位机软件会自动绘制今日风速曲线、今日温度曲线等曲线图。节点存储数据上传模块主要功能是允许用户获取节点存储的气象数据,可以将节点存储的所有气象数据上传,也可以根据时间区间选择部分气象数据上传,上位机软件会以列表的形式展示收到的数据,并将收到的气象数据存储到Access数据库中。

2.4.4 统计分析模块

统计分析模块的功能是对存储到电脑端数据库中的气象数据按照特定的条件进行查询统计,可以根据气象采集节点的编号、时间区间和气象要素的大小来查询气象数据,符合条件的数据会显示到窗口的ListView控件中;通过导出功能,可以将查询的数据导出到Excel表格中,方便用户对数据进一步分析。

2.4.5 用户信息管理模块

用户信息管理模块的主要功能是管理和维护用户信息,可以修改用户登录密码,实现用户账户的增加、删除以及相关信息的修改。

2.5 数据库设计

Access数据库存储方式简单,界面友好、容易操作,易于管理和维护,使用面向对象的开发方式,使得开发应用程式更为简单。本设计选用Access数据库存储数据,上位机软件通过ADO.NET方式连接Access数据库。

数据库中有3张表,包括db_UserInfo(用户信息表)、db_ NodeInfo(节点信息表)和db_WeatherData(气象数据表),分别存储用户信息、节点信息和气象数据。用户信息表中有UserName(用户名)、UserPwd(用户密码)、User ContactInformation(用户联系方式)、UserOtherInfor(用户其他信息)等字段;节点信息表中有NodeNo(节点编号)、NodeName(节点名字),NodeZigBeeAddress(节点ZigBee模块的地址)以及NodeLocation(节点所处的位置)等字段;气象数据表中有NodeNo(节点编号),Datetime(时间)、WindSpeed(风速)、WindDirection(风向)、Temperature(温度)、Humidity(湿度)和AirPressure(气压)等字段。数据库文件以“.mdb”为后缀。

3 上位机软件运行结果分析

在编写完上位机软件后,对软件的各项功能进行了测试,软件运行良好。

使用通信配置模块,配置好IP地址、端口号和注册包后,使用上位机对网络进行监听,很快便通过网络连接上无线传输网关,实现了远程通信的功能。

通过上位机软件的远程节点管理与维护界面,可以实现对远程节点时间的校准和节点气象数据存储时间间隔的设置。

为了验证节点实时数据上传的功能,实验过程中选择节点1-1每隔1分钟上传一次数据,这样接收到的数据就显示到界面中。风速、风向、温度、湿度、气压都有对应的文本控件显示和图形控件显示。由类似表盘的控件显示风速和风向,由类似温度计的控件形象的显示温度、湿度、气压。在界面的下方,有自动生成的今日风速、温度、湿度和气压的变化曲线。使用上位机软件的节点存储数据上传界面可以获取气象采集节点存储的气象数据,气象数据以列表的形式展示气象数据。上位机软件后台自动将上传的气象数据保存到Access数据库中,便于用户以后查看和处理。

通过上位机软件的统计分析模块用户可以对存储到电脑端数据库中的数据按照节点编号、起始截止时间、气象要素数值范围来查询数据,所查询的数据通过列表的形式展示出来,所查询的数据可以导出到Excel表格中。

4 结语

本文提出并设计了无线传感网气象监测系统上位机软件。根据无线传感网气象信息采集节点工作的特点、无线传感网络的特性以及效率方面的要求设计了特殊的通信机制并实现了该通信机制;对上位机软件的功能进行了分析,实现了通信配置、节点管理、数据上传、统计分析以及用户管理等多个功能,软件界面简洁,操作简单,人机交互性好;使用数据库作为存储数据的方式,可以存储海量气象数据,也便于对气象数据的查询和分析。测试结果表明:本文所设计的上位机软件可以有效地获取无线传感网气象节点的数据并对数据进行存储、处理和分析,符合设计要求。

猜你喜欢
机软件字节传感
《传感技术学报》期刊征订
新型无酶便携式传感平台 两秒内测出果蔬农药残留
No.8 字节跳动将推出独立出口电商APP
No.10 “字节跳动手机”要来了?
IPv6与ZigBee无线传感网互联网关的研究
简谈MC7字节码
道岔监测系统上位机软件设计
基于正交试验法的北斗用户机软件测试用例设计
PCI-e高速数据采集卡的驱动与上位机软件设计
某型Fabry-Perot光纤应变计的传感特性试验