• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 实验室温湿度测量系统设计

实验室温湿度测量系统设计

录入:edatop.com    点击:

  摘  要: 针对当前实验室无法实现温湿度数据实时测量、数据传递不方便等缺点,以数字式温湿度传感器和通用单片机为基础,开发了实验室温湿度测量系统。该系统以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.

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:安捷伦发布通过LXI认证微波合成式仪器
下一篇:基于多因素模糊和灰色关联度综合的 AIS与雷达数据关联

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图