kaiyun官方注册
您所在的位置: 首页> 测试测量> 设计应用> 实验室温湿度测量系统设计
实验室温湿度测量系统设计
2015年微型机与应用第21期
徐 平1,王献伟2
(1.河南工程学院 土木工程学院,河南 郑州 451191; 2.河南工程学院 机械工程学院,河南 郑州 451191)
摘要:针对当前实验室无法实现温湿度数据实时测量、数据传递不方便等缺点,以数字式温湿度传感器和通用单片机为基础,开发了实验室温湿度测量系统。该系统以AT89S52单片机为主芯片,数字式温湿度传感器SHT21为主要传感器,完成了测量系统硬件系统和软件系统的开发,并且设计了能够传递给上位机数据的通信程序。该系统可以实现温湿度测量,并且可以传递相关数据给上位机,对于实验室数据监测有着积极的作用。
Abstract:
Key words :

摘 要: 针对当前实验室无法实现温湿度数据实时测量数据传递不方便等缺点,以数字式温湿度传感器和通用单片机为基础,开发了实验室温湿度测量系统。该系统以AT89S52单片机为主芯片,数字式温湿度传感器SHT21为主要传感器,完成了测量系统硬件系统和软件系统的开发,并且设计了能够传递给上位机数据的通信程序。该系统可以实现温湿度测量,并且可以传递相关数据给上位机,对于实验室数据监测有着积极的作用。

 关键词: 温湿度;测量;实验室;数据传递

0 引言

  温湿度是重要的环境参数[1-3],特别是对于实验室环境,温湿度需要出现在许多的检测报告中。而目前实验室常用的是湿度计和温度表,基本原理是采用水银温度湿度计进行检测,缺点是在需要记录数据的时候要先读取相关数据,非常不方便;同时还无法实现温湿度的实时测量。

  目前应用较为广泛的温湿度传感器主要是热电偶[4-5]、热电阻[6-8]及湿度等模拟传感器,该类型的传感器输出为模拟信号。为了能够测量该数据需要进行模数转换,在使用过程中较为繁琐。而数字温湿度传感器将温湿度信息直接用数字量输出,能够直接输出给测量系统,因此数字式温湿度传感器在温湿度监测中应用更为方便[9]。

  为此,拟以成本较低的AT89S52单片机为控制芯片[10]、以低功耗的新型数字式SHT21作为测量温度、湿度的传感器[11]和FYD12864液晶模块[12],开发用于实验室的温湿度显示及报警系统。

1 控制系统总体结构

001.jpg

  整个控制系统包括传感器、微处理器、显示模块和电源模块,如图1所示。其中,传感器为SHT21温湿度传感器,该传感器除了配有电容式相对湿度传感器和能隙温度传感器外,还包含一个放大器、A/D转换器、OTP内存和数字处理单元,能够非常方便地测量温度和湿度信号[9];ECU是整个控制系统的核心,选用ATMEL公司的8位单片机AT89S52,能够接受输入信号和输出控制信号,同时还包含与上位机的接口,用于程序下载和数据通信;显示模块采用FYD12864液晶模块,用于显示温度和湿度值;报警模块采用蜂鸣器,如果当前温度或者湿度大于设定值就会发出报警;通信模块用于与采集系统进行通信,该通信采用串口通信,用于把温湿度信息传递给采集系统。

2 控制系统硬件设计

  2.1 温湿度信号处理

010.jpg


  温湿度传感器SHT21的管脚定义如表1所示,该传感器的供电范围为2.1~3.6 V,推荐电压为3.0 V,为了保证传感器的正常运行,在电源(VDD)和接地(VSS)之间须连接一个0.1 μF的电容,且电容的位置应尽可能靠近传感器。SCL用于微处理器与传感器之间的通信同步,SDA引脚用于传感器的数据输入和输出,当向传感器发送命令时,SDA在串行时钟(SCL)的上升沿有效,在SCL下降沿之后,SDA值可被改变;当从传感器读取数据时,SDA在SCL变低以后有效,且维持到下一个SCL的下降沿。为避免信号冲突,通常在SDA端口需要一个外部的上拉电阻(如10 kΩ)将信号提拉至高电平。

  在本电路图中,VSS接地,VDD接电源+3 V,NC保持不连接,SDA接单片机P1.6口,SCL接单片机P1.7口,并接两个上拉电阻R3,R4,其大小都为10 kΩ,在VDD与VSS之间接一个0.1 μF的去耦电容,其连接电路图如图2所示。

002.jpg

  2.2 报警电路

  蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于各种电子产品中作为发声器件。而在单片机应用的设计上,大部分都会使用蜂鸣器来作提示或报警,为此本设计中也采用蜂鸣器作为报警提示。蜂鸣器驱动电路一般都包含以下几个部分:一个三极管、一个蜂鸣器、一个续流二极管和一个电源滤波电容。本设计采用如图3所示的电路驱动蜂鸣器,R5阻值为2 kΩ,蜂鸣器驱动电路与单片机的P3.3口连接;蜂鸣器的额电流小于等于30 mA,对于AT89S51单片机来说,P3.3口的灌电流是15 mA,很明显可以看出仅仅依靠P3.3口的电流是驱动不了该蜂鸣器的,这就需要使用晶体管放大电路,所以本设计选用PNP型晶体管。

003.jpg

  当外部的温度或者湿度超过设定的阈值时,基极变为低电平,蜂鸣器导通发出报警。

2.3 显示电路

  本设计中所采用的FYD12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,具有8位标准数据总线、6条控制线及电源线。为了能够实现对该模块的控制,采用P0和P2口控制,由于51单片机P0口没有内部上拉电阻,为此需要外部增加上拉电阻,本设计增加的外部上拉电阻为10 kΩ;对于FYD12864液晶显示模块来说,第三引脚VO是对比度电位引脚,本设计中采用10 kΩ的可变电阻来实现对比电压的调整,如图4所示。

004.jpg

 2.4 通信模块

  由于单片机输出是TTL电平,而PC输出是-12 V~ +12 V电平,所以需要一个MAX232串口通信模块芯片构成电平转换电路,实现通信时电平信号的匹配,其连接电路如图5所示,其中C1-和C2-表示连接点,分别连接电容的一端。

005.jpg

 2.5 电源模块

  本设计中的大部分电路都需用5 V的电压,而温湿度传感器需要用3 V电压,为了能够同时满足两者的需求,本设计采用三端稳压集成电路LM7805。其电路图如图6所示,在输出5 V电压的基础上,通过增加3个1N4007使输出的电压变为2.9 V,能够为温湿度传感器供电。

006.jpg

  2.6 单片机最小系统

007.jpg

  单片机最小系统由单片机、复位电路和时钟电路构成,如图7所示。所选用的8位单片机AT89C52具有8 KB的可编程Flash、256 B的RAM、32个I/O口、5个中断源、2个16位定时器,完全满足控制需求;复位电路采用上电复位方式;时钟电路晶振11.059 2 MHz,完全满足系统的要求。

3 控制系统软件设计

  3.1主程序流程图

  主程序主要完成硬件的初始化、子程序的调用等功能。在主程序中,首先进行SHT21和FYD12864的初始化,然后调用温湿度采集子程序,接着调用温湿度处理子程序,读取成功后,将读取成功的温湿度数据与所设定的数据相比较,如果超过所设定的温湿度数据,蜂鸣器导通鸣叫,起到报警作用,如果没有超过所设定的温湿度数据,就会直接在FYD12864显示器上显示出来。之后判断是否需要向上位机传递数据,如果需要传递则调用相应的子程序;如果不需要则重复采集温度和湿度数值,进行循环。其流程图如图8所示。

008.jpg

  3.2 串口通信

  为便于后续数据的分析及处理,编写了串口通信程序,使用RS232串口,将单片机采集到的数据上传到上位机。

  上位机和下位机通信分为上位机串口初始化和下位机串口初始化,其中上位机串口初始化程序如下:

  Private Sub Form_Load()

  MSComm1.CommPort=1//使用Com1口

  MSComm1.Settings="9600,n,8,1"

  //设置通信参数,波特率9 600,无校验位,发送8位,1个停止位

  ′MSComm1.PortOpen=True//开串口

  End Sub

  下位机串口初始化程序如下:

  /********串口初始化函数**********/

  void Serial_Init(void)//串口通信初始设定

  {

  SCON=0x50;//UART为模式1,8位数据,允许接收

  TMOD=0x20;//定时器1为模式2,8位自动重装

  PCON=0x00;//波特率9 600

  TH1=0xfd; //定时器赋初值

  TL1=0xfd;

  TR1=1;//启动定时器TH1

  ES=1;//允许串口中断

  EA=1;//开中断总开关

  }

  在实际工程中,下位机根据上位机发送的不同数据请求分别发送相应的数据,下位机数据发送程序如下:

  /********串口接收中断函数**********/

  void Serial_Recieve_Inter() interrupt 4 using 3

  {

  if(RI)

  {

  RI=0;

  if(SBUF==0) //收到发送温度数据请求

  {

  AT24C64_RD(0xa1,AT24C64_Inter_Address_Read_Temp);

  AT24C64_Inter_Address_Read_Temp++;

  //读温度地址加1

  SBUF=Temp_Val;//向串口发送温度数据

  while(TI==0);//等待发送,直到8位数据发送完毕

  TI=0; //TI清零

  }

  if(SBUF==1) //收到发送湿度数据请求

  {

  AT24C64_RD(0xa3,AT24C64_Inter_Address_Read_Pres);

  AT24C64_Inter_Address_Read_Pres++;//读湿度地址加1

  if(SBUF==3) //收到发送操作数据请求

  {

  AT24C64_RD(0xa3,AT24C64_Inter_Address_Read_Pres);

  AT24C64_Inter_Address_Read_Pres++;//读操作地址加1

  SBUF=Proc_Val;//向串口发送操作数据

  while(TI==0);//等待发送,直到8位数据发送完毕

  TI=0;//TI清零

  }

  }

  }

  上位机界面采用VB6.0编写,添加其自带的MSComm控件,可以很方便地实现串口通信。上位机采集到的数据以*.text格式存储,便于其他软件的调用分析。

4 实物图

009.jpg

  为了对所设计的温湿度监控系统进行测试,利用普通万用板进行制作,其实物如图9所示。此时,显示模块、单片机最小系统和串口通信模块分开布局,便于各自调试。

  经过实际调试,该系统可以正常显示温湿度数据,同时也可以利用自编的上位机程序读取相关数据。

5 结论

  本文介绍了实验室温湿度测量系统的设计过程,分别从控制系统的总体结构、硬件系统和软件系统进行了介绍,并且利用万用板实现了该系统。该系统结构简单、应用方便,对于实验室温湿度检测有着积极作用。

  参考文献

  [1] 范满红,马胜前,陈彦,等.基于多传感器数据融合的温湿度监测系统[J].压电与声光,2012,34(3):459-462,465.

  [2] 钟晓伟,宋蛰存.基于单片机的实验室温湿度控制系统设计[J].林业机械与木工设备,2010,38(1):39-42.

  [3] 刘明波,顾夏华,周琳琦.基于FPGA的远程温湿度监测系统设计与实现[J].计算机测量与控制,2011,19(11):2619-2622.

  [4] 刘庆赟,焦斌亮,刘永富.仓库温湿度监测与nRF905无线传输系统的设计[J].传感器与微系统,2011,30(5):101-103.

  [5] 刘希明.热电偶线性温度测量装置[J].仪器仪表学报,2007(S1):53-59.

  [6] 许卓,杨雷,何志伟.多通道热电阻精密测量中温度漂移的补偿法[J].化工自动化及仪表,2011,38(8):32-36.

  [7] 才智,范长胜,杨冬霞.PT100铂热电阻温度测量系统的设计[J].现代电子技术,2008,31(20):172-174,177.

  [8] 谭长森.基于PT100型铂热电阻的测温装置设计[J].工矿自动化,2012,38(3):89-91.

  [9] 刘洋,金太东.基于CAN总线的智能型温湿度采集系统设计[J].现代电子技术,2010,33(1):126-128.

  [10] 迟钦河,赵仲生,乔桂芳,等.89C51单片机在多通道数据采集系统中的应用[J].自动化仪表,2000,21(6):33-35,39.

  [11] 鲍爱达,张庆志,郭涛,等.基于FPGA和SHT21传感器的温湿度测量系统的设计[J].计算机测量与控制,2012,20(11):2885-2887.

  [12] 范春辉,何广平.DAC7714和中文液晶模块与单片机的接口设计[J].电测与仪表,2005,42(12):62-64,61.


此内容为AET网站原创,未经授权禁止转载。
Baidu
map