基于VB的上位机的设计.docx
- 文档编号:23507616
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:27
- 大小:407.29KB
基于VB的上位机的设计.docx
《基于VB的上位机的设计.docx》由会员分享,可在线阅读,更多相关《基于VB的上位机的设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于VB的上位机的设计
课程设计报告
课程名称:
专业综合课程设计
报告题目:
基于VB的无线传感器网络
上位机软件的设计
学生姓名:
所在学院:
信息科学与工程学院
专业班级:
学生学号:
指导教师:
2013年12月23日
摘要
无线传感器网络是由大量无处不在的微小传感器节点组成,它能根据环境自主完成指定任务的自治监控功能,是对21世纪产生巨大影响力的技术之一。
本设计是将无线传感器网络应用于温度监测方面。
软件系统前台应用VisualBasic6.0编程开发环境。
采用VB的ADODC控件完成数据库连接,MSchart控件实现节点温度的条形图显示,MScomm控件完成串行数据接收。
软件系统后台采用MicrosoftOfficeAccess2003数据库,实现节点信息的存储。
采用定时器定时读取数据库,完成节点信息的实时更新。
通过串行口与下位机连接,接收适配器发送过来的字符数据,实现无线传感器网络温度监测功能。
关键词:
无线传感器网络;Access2003数据库;串行通信
绪论
课题背景与研究意义
人类进入21世纪以来,微电子机械系统、计算机、通信、自动控制和人工智能等学科的飞速发展孕育了一种新型的测控网络—无线传感器网络(wirelesssensornetwork,WSN)。
无线传感器网络是由大量无处不在的具有通信与计算机能力的微小传感器节点,密集布设在无人值守的监控区域而构成的,能够根据环境自主完成指定任务的“智能”自治监控网络系统。
无线传感器网络是一种超大规模、无人值守、资源严格受限的全分布系统,采用多跳对等的通信方式,其网络拓扑动态变化,具有自组织、自治、自适应等智能属性。
无线传感器网络的出现引起了全世界范围的广泛关注。
无线传感器网络技术的研究起源于20世纪70年代,最早应用于军事领域,在卡耐基一梅隆大学成立了新一代分布式传感器网络工作组。
此后,DA联合美国自然科学基金委员会设立了多项有关无线传感器网络的研究项目。
我国近两年也以多种形式支持无线传感器网络的研究。
这些研究推动了以网络技术为核心的新军事革命,诞生了网络中心战的思想和体系。
目前,无线传感器网络的应用己由军事领域扩展到其他许多领域,如灾难预警与救助、家庭健康监测、空间探索等传统方法无法完成的任务,成为一种“无所不在”的传感技术。
本课题的研究目的是设计一种基于ZigBee技术的无线传感器网络系统,进而将其应用于温度系统的监控方面。
因为这种监控网络成本较低、无需布线,多个传感器节点布置于各种监控环境。
企业设备监测系统一般需要铺设大量的电缆、网线、光纤构成传输网络,设备建设和维护成本很高,而无线传感器网络技术是一种低功耗、自组织的短距离技术,可以实现监测、感知和采集网络分布区域内的各种环境对象数据。
传感器网络配合专家系统就可以实现数据的采集和分析,从而降低人工维护成本和设备成本。
基于ZigBee的传感器网络技术如果配合有线网络(如以太网),可以实现整个工厂范围内机组的实时监控;配合无线蜂窝网络技术可以实现手机对温度的实时监测。
因此无线传感器网络的研究具有重要的应用价值。
无线传感器网络简介
整个传感器网络由无线温度传感器节点(温度数据采集终端)、协调器和监测中心计算机组成。
无线温度传感器节点分布于需要测量的现场,执行温度数据的采集、预处理、发送等工作。
协调器负责接收节点传送过来的数据,将无线网络协议的数据转化为以太网络协议的数据传送到监测中心计算机。
监测中心计算机通过与协调器间的通信,实时的显示每个温度传感器节点的温度信息。
系统框图如图1所示。
每一个传感器节点周期性的将温度数据通过无线收发模块发送到协调器,最终显示于监测中心计算机。
图1系统总体结构图
无线传感器网络下位机设计主要分为硬件设计和软件设计,硬件方面是以CC2530为主要器件,
CC2530是用于2.4-GHzIEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。
它能够以非常低的总的材料成本建立强大的网络节点。
CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大的功能。
CC2530有四种不同的闪存版本:
CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。
CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。
运行模式之间的转换时间短进一步确保了低能源消耗。
软件部分采用Zigbee协议栈,完成无线网络的网络连接和无线网络数据传输交换。
ZigBee协议依据IEEE802.15.4标准,在数千个微小的传感器之间相互协调实现通信。
这些传感器只需要很少的能量,以接力的方式通过无线电波将温度数据从一个传感器传到另一个传感器,然后传到适配器最后传到电脑端。
ZigBee协议是由IEEE802.15.4协议标准定义的PHY层和MAC层与ZigBee联盟所制定的网络层和应用层所构成。
其工作频率在2.4GHz、9l5MHz和868MHz,最高传输速率为250kbps。
IEEE802.15.4协议MAC层采用CSMA-CA机制来控制信道接入,主要负责传输信标帧、同步以及提供可信赖的传输机制。
ZigBee协议栈如图2。
图2ZigBee协议架构
设计任务
主要任务是分析CC2530协调器串口传输的温度数据格式,通过VB编程实现的数据库写入、读出处理,实时对温度进行图形显示,同时设置温度报警范围,可以进行报警事件处理等。
1无线传感器网络上位机系统概要设计
1.1系统功能简要描述
1)系统具有良好的人机界面。
2)自然美观的图形化温度显示,可以一目了然的监测所有节点温度。
3)方便的数据添加和修改功能。
4)定时更新数据库,定时更新温度数据,人性化的温度监测。
5)声光报警功能,最大限度的告诉监控人员节点状态。
6)环境模拟仿真,在没有下位机时也可体验温度检测功能。
7)串行口数据自动接收,自动分析,自动处理,无需人工干预。
8)数据备份和清理功能。
1.2系统模块功能描述
整个上位机系统由许多窗体组成,它包括出窗体main.frm、节点管理窗体net_creat.frm、节点信息设置窗体net_setup.frm、报警管理窗体alarm.frm。
具体窗体信息见表1.1。
表1.1统功能描述
序号
功能名称
窗体名称
优先级
简要描述
1
无线传感器网络监测系统
Main.frm
高
串行口设置,和温度的图形显示
2
节点管理
Net_creat.frm
中
新建节点,删除节点
3
节点信息设置
Net_setup.frm
中
节点报警温度设置,更新时间设置
4
报警管理
Alarm_m.frm
高
显示报警节点,报警屏蔽等
1.3系统设计的上位机、下位机的连接
无线传感器网络上位机通过串行线与下位机连接,按照串行通信协议发送、接收数据,串行通信发送的数据帧结构如表1.2。
数据帧由“:
”开始,表示一个网络节点数据的开始,其次是网络节点ID,用来标识检测的节点通道号,然后是网络节点温度,最后“。
”上位机一但接收到该字符,则立即进入事件处理,首先分析发送过来的字符数据,分别提取节点ID号,节点温度,然后在数据库中搜索对应的网络节点ID字段,如果搜索到成功,则立即更新节点温度,如果搜索失败,返回为空,不更新数据库。
表1.2数据帧格式
8位数据起始标志
网络节点ID号
节点温度
8位数据结束标识
当下位机增加网络节点时,必须在上位机端对应添加网络节点,并按照实际网络节点ID添加。
事件处理代码见下:
PrivateSubMSCON_OnComm()
Dimmy_end$
Dimmy_sql$
Dimmy_rsAsNewADODB.Recordset
Dimnet_id$
Dimnet_tem$
DimbAsInteger
DimcAsInteger
WithMSCON
SelectCase.CommEvent
CasecomEvReceive
my_end=.Input
mcu_msg=mcu_msg&my_end
Text2.Text=mcu_msg
IfInStr(my_end,".")Then'收到结束标志
'取用户名,查询,写如记录
c=InStrL(mcu_msg,".")
mcu_msg=Left(mcu_msg,c)
b=InStrL(mcu_msg,":
")
mcu_msg=Mid(mcu_msg,b+1,c-b-1)
net_id=Left(mcu_msg,4)
net_tem=Right(mcu_msg,Len(mcu_msg)-4)
'MsgBox(net_id)
my_sql="selectnid,ntempfrombasicwherenid='"&net_id&"'"
my_rs.Opensql,con,adOpenDynamic,adLockPessimistic
Ifmy_rs.EOFThen
Else‘写入进出记录
Image2.Visible=True
Image1.Visible=False
Timer1.Enabled=False
Timer2.Enabled=False
CallAdd_temp(net_id,net_tem)
EndIf
my_rs.Close
Setmy_rs=Nothing
mcu_msg=""
EndIf
EndSelect
EndWith
EndSub
1.4数据库设计
本设计主要采用微软公司OfficeAccess2003数据库,比起SQL此数据库功能稍稍逊色,但Access2003数据库操作简单,属于Office家族,基于它的程序开发较为快捷,它具有很好的兼容性,拓展性,受到许多VB程序员们青睐。
1.4.1数据库表的创建
首先打开OfficeAccess2003,点击新建,这时右边会出现你所要新建的对象,如图1.3。
图1.3数据库窗创建界面
进入之后如图1.4。
此时你可以选择使用设计器创建表,使用向导创建表,通过输入数据创建表。
此时选择使用设计器创建表。
图1.4数据库创建向导界面
选择使用设计器进入数据表设计,设置字段名称以及字段存储类型。
定义主键,数据表设计界面如图1.5。
图1.5数据表设计界面
设置好所有节点字段名称,设置的节点名称要与你的数据库信息有关,以便于方便调用。
设置完后可以向数据表中添加新数据,具体新数据录入如图1.6。
图1.6新数据录入
1.4.2数据库表
表1.3数据库表介绍
编号
数据表名称
描述
功能说明
1
网络节点信息表
网络节点信息
主要用于所有网络节点信息存储,比如节点温度,节点ID等。
2
节点出厂信息表
网络节点初始值信息
主要用于新建网络节点时的初始信息。
3
管理员信息表
管理员登陆信息
主要用于管理员登陆
1.4.3数据库表设计说明
1)网络节点信息表(Noteinformation)
表1.4网络节点信息
编号
字段名称
字段代码
字段类型
是否为空
是否主键
1
序号
Num
自动编号
N
Y
2
节点ID
Nid
文本
Y
N
3
节点状态
Nstate
文本
Y
N
4
节点名称
Nname
文本
Y
N
5
节点地址
Naddress
文本
Y
N
6
节点温度
Ntemp
数字
Y
N
7
一级报警值
Falarm
数字
Y
N
8
二级报警值
Salarm
数字
Y
N
9
单位
Danwei
文本
Y
N
10
更新时间
Updatetime
数字
Y
N
11
节点类型
Nstyle
文本
Y
N
2)管理员信息表(Administrator)
表1.5管理员信息
编号
字段名称
字段代码
字段类型
是否为空
是否主键
1
管理员ID
Administrator
文本
N
N
2
管理员密码
Secret
文本
N
N
3)节点出厂信息表(Notedefault)
表1.6节点出厂信息
编号
字段名称
字段代码
字段类型
是否为空
是否主键
1
节点温度
Ntemp
数字
Y
N
2
一级报警值
Falarm
数字
Y
N
3
二级报警值
Salarm
数字
Y
N
4
单位
Danwei
文本
Y
N
5
更新时间
Updatetime
数字
Y
N
6
节点类型
Nstyle
文本
Y
N
1.4.4数据库连接设计
VisualBasic6.0中的ADODC1控件拥有强大的数据库连接功能,在窗体中添加该控件后,调用如下函数,即可实现数据库连接。
PublicFunctiongetcon()
appdisk=IIf(Right(App.Path,1)="\",App.Path,App.Path&"\")
con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurityInfo=False;DataSource="&appdisk&"db1.mdb"
con.Open
con.CursorLocation=adUseClient
EndFunction
数据库连接成功后,系统软件就可以访问数据库了,但是还不能调用、修改、更新数据库中的数据表,必须建立记录集,建立记录集的函数如下,记录集与数据库表连接成功后,就可以修改数据库表中的数据了。
PublicSubgetrs()
sql="select*frombasic"
rs.Opensql,con,adOpenDynamic,adLockPessimistic
EndSub
PublicSub
2无线传感器网络(上位机)详细设计
无线传感器网络(上位机)主要实现人机对话功能,设计要求人性化,可视化,图形化。
上位机通过一根串行通信线与下位机连接,下位机定时向上位机发送一定格式的数据帧,数据帧包含节点ID,节点温度等信息,上位机接收到数据后首先存入数据库,然后更新连接数据库,图形化、图表化显示节点信息。
主程序流程图如图2.1。
图2.1主数据流图
2.1无线传感器网络温度监测系统(main.frm)
功能描述:
可视化的操作界面,主要由串行口设置模块、数据库连接模块、图形显示模块、报警模块组成,管理员可以使用串行口设置模块设置串行端口号,串行端口传输速率,是否校验,以及是否有停止位。
在串行通信前这个模块完成所有串行口初始化工作,管理员设置完串行口后,打开串行口即可实现串行通信。
数据库连接模块完成与Access2003的数据库的连接,连接完成后,显示连接成功,连接成功后软件自动初始化,将数据库中所有网络节点信息用DataGrid显示出来,管理员可以一目了然的看到所有网络节点信息,并可以清楚知道是否有节点处于报警状态。
图形显示模块的功能主要是实时显示节点温度,使用人性化、可视化的设计,用简单的条形图就可以监测所有节点,避免庞大的数据表查看,让监控过程更为轻松。
报警模块采用声光报警,当有节点温度操作设置的报警值时,报警指示灯不断闪烁,并发出报警声音,不断告知有节点温度超标。
无线传感器网络界面如图2.2所示。
图2.2无线传感器网络温度监测中心
无线传感器网络温度监测中心是整个软件的主界面,它承载着数据库连接,记录集建立,串口初始化,以及图形控件的初始化等,运行软件后,系统首先初始化串行口,然后等待用户建网,当建网成功后,数据库会连接成功,Datagrid与记录集连接,并显示记录集所有信息。
实现初始化的关键代码如下:
PublicSubk_int()
'--------------数据库记录集连接----------------------------'
Callgetcon
Callgetrs
SetDataGrid1.DataSource=rs
cb2.ListIndex=0
cb3.ListIndex=0
cb4.ListIndex=0
cb5.ListIndex=0
'--------------串口初始化---------------------------------'
MSCON.CommPort=1'设置通信端口号为COM1
MSCON.Settings="38400,n,8,1"'设置串口参数,波特率9600
MSCON.InputMode=0'接收文本型数据
MSCON.RThreshold=1'接收到一个字符就产生oncomm事件
MSCON.PortOpen=True
'------------Datagrid初始化----------------------------------'
DataGrid1.MarqueeStyle=dbgHighlightRow
DataGrid1.Refresh
DataGrid1.Columns(0).Caption="序号"
DataGrid1.Columns
(1).Caption="节点ID"
DataGrid1.Columns
(2).Caption="节点状态"
DataGrid1.Columns(3).Caption="节点名称"
DataGrid1.Columns(4).Caption="节点地址"
DataGrid1.Columns(5).Caption="节点温度"
DataGrid1.Columns(6).Caption="一级报警值"
DataGrid1.Columns(7).Caption="二级报警值"
DataGrid1.Columns(8).Caption="单位"
DataGrid1.Columns(9).Caption="更新时间"
DataGrid1.Columns(10).Caption="节点类型"
DataGrid1.Columns(0).Width=600
DimiAsInteger
Fori=1To10
DataGrid1.Columns(i).Width=1000
Nexti
DataGrid1.BorderStyle=dbgFixedSingle
'---------------text初始化----------------------------------'
Ifrs.BOF=FalseAndrs.EOF=FalseThen
cb1.Text=rs.Fields("nid")
Text1(0).Text=rs.Fields("nname")
Text1
(1).Text=rs.Fields("ntemp")
Text1
(2).Text=Trim(rs.Fields("updatetime"))
Text1(3).Text=rs.Fields("falarm")
Text1(4).Text=rs.Fields("salarm")
Text1(5).Text=rs.Fields("danwei")
EndIf
'--------------初始化MSchart---------------------------------'
MSChart1.AllowSeriesSelection=False'设置不能选中整个系列
MSChart1.RowCount=15'设置行共15行
MSChart1.ColumnCount=1'设置列1列
TT.Interval=rs.Fields("updatetime")
EndSub
2.2节点管理(net_creat.frm)
功能描述:
可视化界面,用户可以管理节点基本信息,包括节点ID,节点名称,节点状态,节点地址,节点温度,节点报警值,节点温度单位,更新时间等,每个节点的信息清晰、完整,方便管理员对每个节点的管理,同时管理员可以进行添加节点,删除节点等操作。
节点管理界面如图2.3所示。
图2.3节点管理
节点管理的核心功能是实现数据库记录集内数据的新建和删除,并及时更新数据库,在主界面显示出来。
新建记录集的时候系统首先自动由出厂设置预设网络节点初始信息,用户也可以根据自己的需求更改。
核心代码实现见下:
rs.AddNew
Fori=0To8
rs.Fields(i+1)=Text1(i).Text
Nexti
Callgetrs1
rs.Fields("nstyle")=rs1.Fields("nstyle")
Calllostrs1
rs.Update
rs.MoveFirst
Callk_int
2.3节点信息设置(net_setup.frm)
功能描述:
可视化界面,包括一级报警值设置,二级报警值设置,更新时间设置,管理员可以通过主界面右键进入,也可以通过菜单选项进入。
管理员可以根据实际需求设置每个节点的报警值,方便对每个节点特殊管理,使监控更实用,更具有广阔的监控范围。
节点设置界面如图2.4所示。
图2.4节点信息设置
节点信息设置主要实现数据库更新数据功能,包括更新一级报警值,二级报警值和更新时间。
实现核心代码见下:
PrivateSubCommand1_Click()
rs.Fields("falarm")=Text2.Text
rs.Fields("salarm")=Text3.Text
rs.Fields("updatetime")=List1.Text
rs.Update
rs.Resync
UnloadMe
EndSub
2.4报警管理(alarm.frm)
功能描述:
可视化界面,管理员可以查看所有温度超标的节点信息,包括节点ID,节点温度,一级报警值,二级报警值,和列表显示报警节点信息,人性化的设计,方便管理员对报警节点统一管理,同时管理员可以对报警节点报警屏蔽,报警值重新设置等操作。
报警管理界面如图2.5所示。
图2.5报警管理
报警管理窗体能搜索所有报警中的字段并列表显示出来,实现核心是搜索功能。
核心代码如下:
sql="select*frombasicwherenstatelike'%报警%'"
my_rs2.Opensql,con,1,1
Setdisplay.DataSource=my_rs2
Ifmy_rs2.BOF=FalseAndmy_rs2.EOF=FalseThen
Text1(0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VB 上位 设计