随着现代信息技术的高速发展,数据采集方面的技术也在不断地向前发展,并在信息技术中占有重要地位,是否及时准确采集数据以及数据是何方式采集都成为关注的焦点。随着嵌入式技术的不断发展,各种数据采集系统不断应用于各个领域。温度采集在智能家居、工业控制、智能农业等方面都应用。本温度采集系统下位机采用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连接,以实现数据源与界面显示相联系。[page]
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 将数据写到数据库中
[page]
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个属性;数据库具有查找、修改、删除、添加以及查找首记录、下一条记录、上一条记录和末记录的功能;能够记录开始时间、结束时间和时间差;显示当前时间和日期。
关键字:温度采集 下位机 上位机 Access
引用地址:
基于VB和Access的温度采集系统的设计与实现
推荐阅读最新更新时间:2024-03-30 22:14
PLC与上位机的高速通信实现
0、引言
工业控制领域中 PLC 作为一种高效、灵活、可靠的控制器,有着广泛的应用。以PLC控制器为核心,上位PC机为实时监控体的 控制系统 已成为工业 自动化 PLC控制系统的一个发展方向。实现PLC与PC的通信可以实现向上级提供诸如工艺流程图、动态数据画面、报表显示等多种窗口技术,使PLC控制系统具有良好的 人机界面 ,通过上位机对PLC数据的读写监控实现现场数据的采集、传送以及生产过程调度的自动化和信息化,其应用前景十分广阔。常用的各种PLC网络有差异,但表现在 PLC 通信程序、系统联结和系统配置等方面,通信机理有统一性。目前市场上通信组态系统结构复杂,价格昂贵,应用繁琐,不适应用户使用。针对上述问题笔者以西门子公
[嵌入式]
基于CC430F5137的无线温度采集报警系统设计
引言 随着科技的不断进步,现代化生产对温度采集的实时性、高效率和低耗能的要求不断提高,而且许多测量温度的现场环境非常恶劣,使操作人员难以到达现场测量。对此,需要一种能够自动采集、处理并能够无线传送数据的温度采集系统。同时,为了节省使用成本以及维护,此系统还需要具备长期稳定工作的性能。因此,开发一种低功耗并且能够无线传输数据的温度采集系统,能够弥补目前温度采集领域的缺陷。 参考文献设计的温度采集系统虽然具有低功耗性能,但是都必须用线路连接才能进行通信,这大大限制了应用场合,使其应用具有一定的局限性。参考文献设计的温度采集系统利用的ZigBee无线通信技术作为通信工具,但是其必须利用单独的外接ZigBee模块才能完成通信功能,所以
[单片机]
单片机与pc串口通信-----下位机程序
//MCS-51通过中断方式接收pc机发来的字符,并回送给主机 #include reg51.h #include stdio.h #define uchar unsigned char uchar xdata rt_buf ; uchar r_in,t_out; bit r_full,t_empty; serial() interrupt 4 //串口中断程序 { if(RI && r_full) { rt_buf =SBUF; RI=0; if(rt_buf ==0x24) { r_full=1; SBUF=rt_buf ; t_empty=0;
[单片机]
基于ATmega16单片机的实时温度采集与分析系统
随着 计算机 技术尤其是单片微型机技术的发展,温度对人们的生活与工作影响很大,所以要实时采集温度并且对其进行分析。为此,实现实时准确的测量监控。采用串口传送数据并且在PC机上进行分析。由于单片机的控制方便、简单和灵活等优点,采用了高性能avr单片机来控制GTJ4-10A固态继电器,最总实现温度的控制。从而最总在PC机上绘制温度曲线并保存数据和分析温度的数据。 1 系统组成及基本原理 本系统由温度采集模块,固态继电器控制模块,单片机模块,PC机软件处理模块。4个模块加起来实现温度的控制,以及温度采集和温度经过软件处理的分析。它们的逻辑关系如图1所示。 图1 逻辑关系图 本系统的任务是对某种特定环境的温度进行采集并进行保存
[单片机]
基于51单片机的光驱激光雕刻机源程序电路图+上位机
根据他人DIY 激光雕刻机 手绘原理图 画得不好勿怪,实验操中 电路原理图如下: 单片机源程序如下: /*z地址定义 50 1=x+,2=x-,3=y+,4=y- 51 前进后退步数高 52 前进后退步数低 53 54/55 字宽 56 57 弱光开关 58/59 激光强度 60 x轴速度 61 y轴速度 62 开始打印0,57 63 暂停 64 停止标志 65 66 左右标记 100开始时灰度图数据 */ #include reg52.h #define uint unsigned int #define uchar unsigned char #define N z //X速度 #define
[单片机]
【飞思卡尔 MC9S12】BootLoader 下位机
上一篇:【飞思卡尔 MC9S12】内部D-Flash模拟EEPROM 本篇讲述BootLoader下位机的开发。 刚到新公司第三天就接了一个项目,搞到现在才局部完成,更新比较慢了。 先上传源码比较实际,再介绍基本功能。 源码地址:https://download.csdn.net/download/u010875635/11692136 实际上搞定CAN通信和Flash读写,Bootloader下位机就没什么问题了。 注意一下Bootloader与App的分区划分。 Bootloader与App分别占用2个非分页区。 Bootloader: 0xC000-0xFFFF(实际到0xF7FF,保留一个s
[单片机]
上位机与PLC的通信与监控设计
1 引 言
PLC是专为工业控制而设计的专用计算机,其体积小,具有高可靠性和很强的抗干扰能力,因而在工业控制中得到了广泛的使用。
随着工业的自动化程度的提高,对PLC的应用提出了更高的要求:更快的处理速度,更高的可靠性,控制与管理功能一体化。控制与管理一体化也就是将计算机信息处理技术,网络通信技术应用于PLC,使PLC用于下位分散控制,用计算机提供图形显示界面,同时对下位机进行监控。本文讨论的是上位计算机与欧姆龙CPM2A型PLC的通信与监控设计。
2 通信协议
2.1 CPM2A 的通信链接方式
CPM2A有三种通信联系方式:上位链接系统、同位链接系统、ComPoBus通信系统。工
[嵌入式]
【MPC5744P】Bootloader上位机开发(CAN通讯)
此处上位机采用C#编写,界面框架为WPF。 为保证烧录过程不出现错误,上下位机采用一问一答模式,上位机发送一帧数据后,下位机接收处理完毕再回馈给上位机,上位机再决定下一步动作。 核心代码逻辑部分,将命令分成EntryBootloader, Reset, Data, DataEnd, CheckBootloader, Erase, ERR几个部分。 烧录时会先检查是否处于Bootloader,,然后执行擦写操作(擦写地址范围由上位机发送),再发送数据(地址+数据为一帧),最后发送结束命令。 注意,由于CAN长度为8字节,而32位地址已经占用4字节,Flash地址从0x800000开始,所以所有地址减去0x800000
[单片机]