随着现代信息技术的高速发展,数据采集方面的技术也在不断地向前发展,并在信息技术中占有重要地位,是否及时准确采集数据以及数据是何方式采集都成为关注的焦点。随着嵌入式技术的不断发展,各种数据采集系统不断应用于各个领域。温度采集在智能家居、工业控制、智能农业等方面都应用。本温度采集系统下位机采用STC89C52单片机为主控制器,采用DS18B20温度传感器采集温度,上位机使用VB编写程序,通过串口采集数据,存入Access数据库,并实时在界面上显示温度变化曲线。
1 系统的整体设计
本温度采集系统的总体框图如图1所示,系统下位机即单片机系统采用的是现成的开发板,开发板上自带了DS18B20的温度传感器,开发板也自带了能够维持单片机正常工作的外围电路;上位机用的Microsoft Visual Basic 6.0中文版集成开发环境和Microsoft Office Access 2003数据库开发软件。
2 上位机的设计与实现
上位机设计的主要重难点在于串口从下位机接收到数据和把数据送到数据库里并把数据实时用曲线显示出来。上位机总体设计流程图如图2所示。
从串口接收数据主要采用Mscomm32.ocx控件,在Microsoft Visual Basic 6.0中添加该控件,需要设置COM口(可修改)、波特率(9600)、数据位(8)、停止位(1)、校验位(0)等,通过OnComm()事件驱动方式接收数据。
数据库采用的是Microsoft Office Access 2003,先要建立数据库,建立的数据库如图3所示,有4个字段,分别是编号、温度、采集日期、采集时间,数据类型对应的为自动编号、数字、文本、文本。
在Microsoft Visual Basic 6.0中编程对数据库Access进行操作,首先连接数据源,然后打开数据库并设置相应的数据操作,接着更新数据库,最后关闭数据库,在实际的操作中通过控件Adodc与控件Datagrid连接,以实现数据源与界面显示相联系。
2.1 主要设计步骤
1)先在VB开发环境下新建一个EXE工程,然后再在窗体上安放一些必须的控件,如按钮(Command)控件、文本框(Textbox)等;
2)在添加部件里添加Microsoft conmm control 6.0、Microsoft datagrid control 6.0和Microsoft ADO data control 6.0在这3个控件;
3)在数据库软件中新建数据库,并新建一个表temp;
4)连接数据库Access,并测试是否连接成功;
5)通过Adodc与Datagrid连接起来,实现数据源与界面显示联系起来;
6)通过Command按钮与数据库的查找、删除、修改和添加联系起来,能够实现相应的功能;
7)通过picturebox控件实现绘图的功能;
8)使串口数据与数据库和picturebox控件连接起来。
2.2 上位机程序设计(程序段)
2.2.1 串口处理程序
2.2.2 将数据写到数据库中
3 下位机的设计与实现
3.1 下位机硬件以及原理
温度采集系统下位机采用STC89C52单片机为主控制器,采用DS18B20温度传感器采集温度,硬件电路图如图4所示。
STC89C52单片机具有:
1)它是MCS-51系列单片机的派生产品,在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051兼容均为Pin-to-Pin,使用时容易掌握;
2)高速(最高时钟频率90 MHz)、低功耗、价格低、稳定可靠、应用广泛、通用性强,在系统/在应用可编程(ISP,IAP),不占用户资源。本系统利用STC89C52单片机的1个中断,2个定时器以及P0~P3 4个端口。采用外部11.059 2 MHz晶振,并使用30 pF的电容接地,以提高系统的稳定性和可靠性。
DS18B20具有:1)只要求一个I/O口即可实现通信;2)在DS18B20中的每个器件上都有独一无二的序列号;3)实际应用中不需要外部任何元器件即可实现测温;4)测量温度范围在-55~125℃之间;5)数字温度计的分辨率用户可以从9位到12位选择;6)内部有温度上、下限告警设置。
DS18B20的使用方法:DS18B20采用的是1—Wire总线协议方式,而对单片机STC89C52来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。
3.2 软件设计
软件设计重点是把温度采集回来并正确的采集回来的温度通过串口发送出去,软件设计流程图如图5所示。
软件开始初始化各种端口以及定时器、串口等,在判断是否有中断产生,如果接收到X,则开始发送数据,如果接收到字符S,则停止发送数据,否则判断是否到达0.5 s的间隔,如果达到,开始采集温度并将数据发送出去,否则继续判断是否有中断产生。
4 测试结果
图6为本温度采集系统的实际运行的效果图。
5 结论与前景
本温度采集系统通过单片机能够采集到DS18B20温度传感器采集到的数据,并用串口实时的传送到上位机;上位机有实时接收数据的能力,并将实时接收到的数据存入Access数据库里;能够实时地把温度曲线显示到界面上;数据库具有编号、日期、时间以及温度4个属性;数据库具有查找、修改、删除、添加以及查找首记录、下一条记录、上一条记录和末记录的功能;能够记录开始时间、结束时间和时间差;显示当前时间和日期。