基于VB的无线温度采集系统设计.docx
- 文档编号:13713010
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:27
- 大小:241.77KB
基于VB的无线温度采集系统设计.docx
《基于VB的无线温度采集系统设计.docx》由会员分享,可在线阅读,更多相关《基于VB的无线温度采集系统设计.docx(27页珍藏版)》请在冰点文库上搜索。
基于VB的无线温度采集系统设计
基于VB的无线温度采集系统设计
摘要:
针对传统温度检测系统中有线数据传输方式存在布线复杂、成本高等问题,设计了一种基于单片机、数字温度传感器DS18B20和无线射频收发芯片nRF905的无线温度检测系统,由单片机、温度传感器、射频收发芯片构成下位机,完成温度的采集以及数据传送,上位机通过无线的方式采集温度信号,并在VB开发的界面上实时显示温度参数。
本系统用单片机对整个测量电路进行管理和控制,使得整个系统智能化、体积小、功耗低、使用电子元件较少,内部配线少,成本低,制造、安装、调试及维修方便。
关键词:
温度检测;无线传输;VB
WirelesstemperatureacquisitionsystembasedonVB
Abstract:
Accordingtowireddatatransmissionoftraditionaltemperaturedetectingsystemexistingproblemofcomplexity,highercost,designawirelesssinglechiptemperaturedetectionsystem,digitaltemperaturesensorDS18B20andRFtransceiverchipbasedonnRF905,bysinglechipmicrocomputer,temperaturesensor,RFtransceiverchipcomputer,completethecollectionoftemperatureanddatatransmission,computerthroughtheacquisitionofthetemperaturesignalinwirelessway,andintheVBdevelopmentoftheinterfaceofreal-timedisplayoftemperatureparameters.Thesystemusingsinglechipcomputertomanageandcontrolthewholemeasurementcircuit,makingthewholesystemofintelligent,smallvolume,lowpowerconsumption,theuseofelectroniccomponentsisless,theinternalwiringofsmall,lowcost,manufacturing,installation,debuggingandrepairconvenience.
Keywords:
Temperaturedetection;Wirelesstransmission;VB
目录
第一章绪论1
1.1选题背景及意义1
1.2相关领域的发展现状1
1.3设计方案的概述2
1.3.1系统硬件结构2
1.3.2系统的设计目标3
第二章系统介绍4
2.1传感器的介绍及选择4
2.2微控制器和无线射频模块6
2.2.1.微控制器STC89C526
2.2.2无线射频模块7
第三章VB与单片机通信建立9
3.1串行通信及RS-232总线9
3.2VisualBasic6.0简介9
3.3数据库设计说明11
第四章总体程序设计12
4.1系统总体设计及功能介绍12
4.1.1系统人机界面设计12
4.1.2串口通讯设计13
4.1.3背景显示程序设计15
4.2子程序模块设计15
4.2.1参数设置模块设计15
4.2.2数据采集模块设计16
4.2.3数据处理模块设计19
4.2.4实时数据显示模块设计20
第五章结论22
参考文献:
23
附录VB程序24
第一章绪论
1.1选题背景及意义
温度的测量和控制是许多行业的重要目标,无论是日常的加热,温室种植或谷物仓库,中药仓库,保存的书籍都需要在环境温度条件下指定的线。
然而,温度是不容易保证的一个指标,针对这种情况,它是多点无线温度测量和控制系统的研究和发展是很重要的。
在这种情况下,开发一个结合现代计算机技术、控制技术、图形技术的工农业生产的温度监控系统,将具有非常重要的意义。
随着我国生产力的发展,科学技术也得到了快速发展,而我国的温室环境检测与控制技术得到了迅速发展也是科学技术快速发展的一个体现,现代化程度不断提高,在室内环境和温度非常恶劣,如夏季强烈的光线、湿度高、有一定的酸等,这些因素都会导致电缆的老化,从而降低了系统的可靠性和抗干扰能力。
在正常情况下为了自动检测科学合理,实现对温室环境参数,检测设备和驱动设置的项目是比较大的,而且施工、安装、维护复杂、工作量大;设施扩建更新困难;因此,在工业生产和生活中应用基于无线技术的传感器数据采集系统,将会很好的解决有线系统的局限性。
nRF905是单片射频收发芯片,如果我们将射频技术应用于无线温室环境参数控制系统,在工业生产和相应的制动器连接的探测器代替环境参数之间的电缆,从而避免了工程中大量电缆的铺设。
本文的方案是利用单片机STC89C52采集的实时温度外,再使用无线传输实现VB上位计算机结果显示温度和数据与相应的比较。
1.2相关领域的发展现状
国外的温度检测技发展的比较早,首先以1984年成立的英国达塔帕克公司为代表。
而且该公司是温度检测技术的代表。
其主要产品为精加工工业炉温度跟踪生产,热处理行业的高温炉炉温追踪、追踪仪、陶瓷工业。
国际上在此领域上拥有先进技术的还有波兰,他们应用温度监测法预报煤井的瓦斯状态。
国外还有很多温室智能控制系统,例如,约书亚门多萨杰为了减少价格和实时远程监控系统的设计。
使用了FPGA;贝利认为,温度和热屏蔽的效果,整个供热系统的经济性进行了分析,提出了温度控制模型的优化。
1.3设计方案的概述
1.3.1系统硬件结构
计算机系统由计算机作为整个系统的管理,安装的多点温度测量系统管理软件和本机通过RS-232串口模块控制。
下位机通过RS-232串口模块接收上位机的控制命令,通过传感器采集温度值,实现温度数据检测和转换。
系统上位机管理分析软件:
VB相对C语言而言比较易学,而且具有可视化界面设计和面向对象程序设计的重要特点。
因为VB简单易学编程量少且具有可视化界面设计的特点,VB已经在很多工农业控制应用软件领域广泛应用,它完全能够满足数据采集速度,并且具有能快速准确的处理数据编程灵活的特点,这样可以缩短开发周期,降低开发成本,减轻设计负担,无疑是一种理想的选择。
界面友好、操作方便、很多计算机管理的结果,并显示实时数据分析,整体结构图如图1。
图1系统总体结构图
1.3.2系统的设计目标
本论文是基于VB的上位机多点无线测温系统,主要完成温度的监控和管理。
主要实现的功能有:
1、串行收发的温度校准信息;2、温度数据存储;3、历史曲线;4、实时温度数据显示。
第二章系统介绍
2.1传感器的介绍及选择
温度传感器的发展历程很悠久,粗略的经历了三个过程:
1)由敏感元件组成,主要应用电量和非电量之间的相互转换。
2)模拟集成温度传感器。
模拟集成温度传感器主要是用来完成温测和模拟信号的输出在20世纪80年代问世的主要是将温度传感器集成在芯片上。
3)智能温度传感器。
目前国际上传感器正向智能化和网络化发展,其具有输出温度数据和显示温度数据的特点。
温度传感器按照是不是与被测介质进行接触可分为两大类:
接触式温度传感器和非接触式温度传感器。
而本文用的传感器是DALLAS公司生产的1—Wire,该温度传感器是DS18B20数字温度计,即单总线器件,具有线路简单,体积小的特点。
用DS18B20数字温度计组成一个测温系统,在一根通信线上,可以挂接多个数字温度计,方便且实用。
1.DS18B20的功能特点
1)DS18B20有独特的单线接口方式,完成双向通讯只需要一条端口线;
2)每个器件都有且只有一个64位的序列号存储在内部存储器中,且多点简单测温时不用外部器件;
3)电压测量范围比较宽,一般在3.0V~5.5V之间,工作在寄生电源方式下的测量范围为-55~+125℃;
4)测温范围在-40℃到85℃之间,精确度为±5℃
5)温度计分辨率可选择在9~12位,所对应的可分辨温度为0.5℃,0.25℃,0.125℃和0.0625℃,还可实现高精度测温;
6)负压特性是实用的特点,电源极性接反时,芯片不会发热,但不能正常工作。
7)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时传递CRC校验码,具备极强的抗干扰纠错能力。
2.DS18B20的工作原理
DS18B20的测温原理:
DS18B20电路中低温系数晶振的振荡频率受温度影响小,将产生的固定频率脉冲送给减数器,高温系数晶振受温度影响,它所产生信号作为另一个减数器的输入。
DS18B20内部结构电路中隐含有计数门当计数门打开时会对低温晶振产生的脉冲计数,且计数门开的时间有高温晶振控制。
计数是通过件数器中的预置减到零温度寄存器的值加1,然后减数器从新预置再进行对晶振脉冲计数,这样循环直到另一计数器计数到零。
DS18B20的操作要按协议进行:
先初始化再发ROM功能命令再发存储器操作命令最后处理数据,DS18B20内部结构框图如图2所示,ROM中的64位序列号,它是记录DS18B20的独特的ROM码,高速暂存器中的温度寄存器是用来存储温度传感器输出的数据。
每一个DS18B20都有且只有一个地址序列码,在组成大型温控系统时,可以在一根总线上挂接多个DS18B20的目的。
非易失性温度报警触发器TH和TL可通过软件设置用户报警高低限值。
配置寄存器在DS18B20工作时按此寄存器中的分辨率将温度转换成相应精度的数值。
高速暂存器供应一个存放高温度和低温度的触发器(TH和TL),和一个寄存器。
其中,低温触发器和高温触发器是用于设置高低温的报警数值。
2.2微控制器和无线射频模块
2.2.1.微控制器STC89C52
本系统采用单片机是STC公司生产对的STC89C52,作为温度采集点和控制端的微处理器。
STC89C52是一种特性为低功耗、高性能CMOS8位微控制器,使用的具有8k在系统中可编程Flash存储器和经典的MCS-51内核。
但有很多51单片机不具备的功能。
如在52单片机芯片上有灵巧的8位CPU和可编程Flash存储器,使得STC89C52为很多嵌入式控制应用系统提供很好的解决方案。
STC89C52的主要性能参数:
(1)STC89C52支持在线可编程(ISP)写入技术,改写单片机存储器内的程序不需要把芯片从工作环境中剥离,串行写入、速度更快、稳定性更好;
(2)工作频率范围:
0~40MHz实际工作频率可达48MHz;
(3)通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围;
(4)看门狗计时器的内部整合,不需要外接看门狗计时器电路;
(5)工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机);
(6)工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级);
(7)外部中断4路,下降沿中断或低电平触发电路,功率下降可以由外部提供的中断低电平有效的中断唤醒;
(8)有32个I/O口,复位后为:
P0/P1/P2/P3是准双向口/弱上拉,P0口不用上拉电阻在作为总线扩展用时,作为I/O口用时,要加上上拉电阻。
2.2.2无线射频模块
本系统用nRF905射频模块作为无线传输的媒介。
1.nRF905无线模块特点
(1)433Mhz内免许可证开放ISM频段使用;
(2)最高工作速率50kbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合;
(3)125频道,满足多点通信和跳频通讯需求;
(4)内部有CRC检错和点对多点通信地址控制硬件;
(5)低功耗1.9V-3.6V工作,待机模式为2.5uA;
(6)收发模式切换时间小于650微秒;
(7)模块可以通过软件设置地址,收到本机地址时会输出数据,可直接接单片机使用,软件编程方便;
(8)TXMode:
在+10dBm情况下,电流为30mA;RXMode:
12.2mA;
(9)有DIP间距接口,有利于嵌入式应用;
2.nRF905接口电路管脚说明
nRF905接口电路管脚说明如表2-1所示。
表2-1接口电路管脚说明
管脚
名称
管脚功能
说明
1
VCC
电源
电源+3.3~3.6VDC
2
TX_EN
数字输入
TX_EN=1TX模式TX_EN=0RX模式
3
TRX_CE
数字输入
使能芯片发射或接收
4
PWR_UP
数字输入
芯片上电
5
uCLK
时钟输出
本模块该脚废弃不用,向后兼容
6
CD
数字输出
载波检测
7
AM
数字输出
地址匹配
8
DR
数字输出
接收或发射数据完成
9
MISO
SPI
接口SPI输出
10
MOSI
SPI
接口SPI输入
11
SCK
SPI
时钟SPI时钟
12
CSN
SPI
使能SPI使能
13
GND
地
接地
14
GND
地
接地
第三章VB与单片机通信建立
3.1串行通信及RS-232总线
由于串行通讯技术的简单容易实现,已经成为电气产品对外数据交换的重要技术。
串行数据传送的特点是:
1)串行传送数据信息和传送联络控制信号;
2)有固定的数据格式,分异步与同步数据格式;
3)串行通信中对信号的逻辑定义与TTL要进行逻辑关系与逻辑电平转换;
4)串行传送信息的速率需要控制,要求双方设定通信传输的波特率。
串行通信是指在单根数据线上按照顺序进行传送数据。
在传送数据的过程中,每发送完一个数据,紧接着发送第二个,直到发送完最后一位为止。
在接收数据的过程中,每一次从单根数据线上一位一位地依次接收,直到最后收到一个完整的数据为止。
因此,串行口通信方式一般用在远距离数据通信,符合通信线路少、成本低等优点。
3.2VisualBasic6.0简介
VB是Microsoft公司为开发Windows应用程序提供的开发环境和工具,它是有图形用户界面的程序设计语言,采用面向对象和事件驱动的程序设计两种新机制,程序和结构化编程结合在一起。
程序开发图形化的构思使开发者易创建一个窗体(Form),从VB工具箱中选择控件放入窗体中,不需要编程设计界面。
VB使用方便,具有Windows开发环境所支持的一些主要功能:
1.创建各种程序对象,如文本框和命令按钮等。
2.创建多个多种类型的窗口,如窗体等。
3.实时地响应光标和键盘事件,如鼠标选中的事件过程等。
4.可根据需要显示或隐藏各种对象,如命令按钮可不见。
5.直接控制打印机输。
6.控制RS-232串行通迅接口,实现串行数据通迅。
7.可实现和其它Windows程序之间的相互通信。
8.有强大的图形图像处理功能。
9.能创建和管理数据库。
VB有许多独特的性能:
1.成功地简化了界面设计,为应用程序开发提供了通向Windows操作环境
的快捷途径。
2.提供了应用程序开发了窗体、控件等代码。
3.让开发者以可视化方式和代码方式进行工作。
4.完善的运行错误处理功能。
5.丰富的图形指令,可生成和机制作各种图形。
6.强大的数据和字符处理功能。
7.具有丰富的控件库。
8.可编译成.EXE文件脱离VB环节时能单独运行。
VB的窗口化设计遵循了以下四个主要的步骤:
1.选择对象(Object):
有一个特定的名字,就是一个对象。
在VB应用程序的设计中,窗口、鼠标、图片、按钮等都是对象。
一个对象就是含数据和操作该数据代码的逻辑实体。
对象是程序的基本元素,在程序中有对象的存在时,动作和信息与对象一定有关。
所以VB程序设计首先要根据选择所需的对象。
在VB中对象和面向对象在概念上相同,但是面向对象中对象是有程序员设计,对象是有系统设计好的且可以直接作用或操作。
2.设置属性(Property):
特征存在的每个对象,称为属性。
每个对象的属性可以根据其需要进行设置,并且可通过属性窗口显示,在单击对象时显示所有属性。
属性可以通过属性窗口和程序语句两种方式来设置。
3.引发事件(Event):
事件是由VB事先定义的、对象能识别的动作。
当有时间被引发时,对象会与外界互动。
一个对象可以有多个事件引发,如鼠标可以通过单击、双击、拖移、移动等事件引发被引发。
4.确定方法(Method):
方法是面向对象程序设计为程序员提供的用来完成特定操作的过程和函数。
在软件编译方法上,有两种结构的模式主要是利用:
BS和CS结构。
3.3数据库设计说明
①关系数据库
如今大中型关系数据库有IBMDB2,Oracle,MSSQLServer:
中小型数据库有Access,Paradox,等。
现在个人比较常用的主要是基于中小型数据库MSSQLServer和Access。
②本地数据库和远程数据库
本地数据库:
本地数据库位于本地磁盘或局域网上,当多个公户同时访问数据库时,数据库采用基于文件的锁定方式。
本地数据库与数据库应用程序在同一系统中,访问本地数据库快存储数据较少,远程数据库存储多但访问慢。
远程数据库:
远程数据库适合多个用户同时访问,因为远程数据库提供了基于事务的多用户支持,远程数据库又叫SQL服务器或RDBMS。
由于远程数据库存储的数据很多,所以数据一般不在一个服务器上。
第四章总体程序设计
4.1系统总体设计及功能介绍
本系统软件设计主要有:
1.用户人机交互界面设计,主要包括系统登陆主界面,系统参数设置界面。
2.数据显示主要分为两大部分,分别是曲线形式和数据报表的形式标示出来。
VB编程的特点是事件驱动,模块化明显,用VB所编译出的程序有明显的模块化,所以编辑时可以按照模块进行逐一编辑。
根据系统设计要求和数据流模型建立后,针对系统各个模块,定义出软件各功能子模块。
4.1.1系统人机界面设计
界面设计是利用VB6.0的图形界面设计功能来完成的,设计思想是在完成系统的全部功能的前提下,尽可能简单可靠,外形美观。
系统界面分成了多个功能块,以下将主要功能界面作简单介绍。
窗体造型的设计:
用户看到的是窗口过程,形成内部控件的排列直接影响用户对系统的理解和操作,该系统有两种主界面窗体和系统参数设置窗体。
设计完成后的程序主界面和参数设置窗体如图4.1和图4.2所示:
图4.1程序主窗体
图4.2参数设置窗体
4.1.2串口通讯设计
1、通讯协议
在多点测温系统中为保证通信电路的畅通和数据传输可靠性,串口通信直接选用VB自带的串口通讯控件:
MSComm。
该控件提供了进行RS232数据通信的所有协议,具有与串行通讯相关的属性及事件,可对串行通讯进行各种操作,能使用户访问WINDOWS串行通信驱动程序的很多特性,包括输入、输出缓冲区的大小及使用起来非常方便,图4.3是串口驱动程序的结构图。
图4.3串口驱动程序的结构
2.MSComm控件特点
MSComm控件是Microsoft提供的扩展控件,用于支持VB程序对串行通讯的访问,该控制“隐藏”了部分串行通信的底层运行过程,同时支持查询方法和事件驱动通信的机制,交互方式处理串口事务有效方法是事件驱动。
在通信过程中,当收发数据产生传输错误时,会触发MSComm控件中的OnComm事件,再通过判断CommEvent属性值可知事件类型,最后根据事件类型处理数据。
下面简单介绍本系统通信控件MSComm属性的设置。
CommPort:
设立并返回通讯端口号,即肯定打开某串行端口。
因为PC机一般只有两个通讯端口,所以属性值在温室控制界面中只能选择设置为1到2之间的整数。
系统默认设置为:
MSComm1.CommPort=l。
Settings在4800-19200之间选取波特率时是以字符串形式设置或者返回波特率、校验位、数据位、以及停止位。
波特率可以在4800-19200之间选取,这样我们可以满足通讯中不同速率的要求。
停止位设置为1,系统默认设置为:
MSComm1.Settings="9600,N,8,1"。
InputLen:
字符集和返回输入会读到其数量,默认值为零。
如果InputLen属性设置为0,那么在使用InputLen属性时,MSComm控件将读出接收缓冲区中的所有内容。
在使用Input前,用户可以选择检查InBufferCount属性来确定缓冲区中是否己有需要数目的字符。
系统采用缺省设置。
PortOpen:
设置并返回端口状态(打开和关闭真假):
当系统启动时,该PortOpen自动设置为True,当系统退出时,该PortOpen自动设置为False。
端口打开时就创建了接收和发送缓冲区。
在进行管理缓冲区时,要对MSComm控件的属性进行设置如下:
InBufferSize和OutBufferSize:
设置并返回接收和发送缓冲区的大小,以字符为单位,属性指定了为接收和发送缓冲区分配的内存数量,缺省规定1024字节和512字节。
缓冲区的大小不易过大也不易过小,过大会占用应用程序内存,过小会有溢出的危险。
Input:
从接收缓冲区获取到的数据属性,然后删除接收接收缓冲区中的数据流。
Output:
向发送缓冲区发出命令和数据用Output的属性。
InputMode:
设置Input属性或返回Input属性取回的数据的类型。
有两种形式,设为ComInputModeText(默认值)时,按字符串形式接收:
设为ComlnputModeBinary时,看成是字节数组中的二进制数据来接收。
多点测温板和PC机的通讯大多利用ComInputModeBinary形式,本系统采用字节接收方法。
MSComm有一个对一个端口的不同事件作出反应事件,即事件OnComm。
4.1.3背景显示程序设计
背景显示设计主要是对程序运行后显示温度和时间坐标的一个PictureBox进行设计。
主要用到的函数有PictureBox1.line,用来画直线,PictureBox1.print,用来打印刻度值。
该文画线是先从左到右画竖线,默认程序画7条竖线,把PictureBox分成6份,然后从上到下画横线,在画横线的时候需要考虑画多少条横线,经过函数计算:
(最高温度值-最低温度值)/10,若是最后结果>20的话,设置横线的条数是20,若小于10的话,设置横线的条数为10。
然后按照奇数设置为实线,偶数设置为虚线,绘制横线。
4.2子程序模块设计
4.2.1参数设置模块设计
参数设置模块设计直接影响后期程序编写,本文先对测温点所包含的数据设置成自定义的一个类,建立一个名为ClsSamplePoint类模块,以纪录每个采样的信息,和保存临时采样数据。
程序通过一个窗体编辑采样点信息,窗体形成有两个主要的程序,首先是改变温度测量点对应的按钮程序,另一个是保存按钮对应的程序。
编辑采样点信息的运行后,通过读取当前各测温点的信息一一加载,每个采样点的信息是在相应的文本框或组合框显示。
当温度测量点的变化并且按下改变数目的按钮时,根据新的温度测量点的程序建立了一个新的点集,然后新的点存储的信息点建立一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VB 无线 温度 采集 系统 设计