王 宾
(安徽电子信息职业技术学院电子工程学院,安徽 蚌埠 233000)
温度和湿度与人们的生活息息相关,在工农业生产方面经常需要对环境温度和湿度进行检测及控制。特别是在一些规模不大的农业大棚和饲养业,没有太多的资金投入到环境温湿度自动检测控制上,一般采用传统的温度计和湿度计,虽然它们结构简单、价格便宜,但是不易读数,精度也不高,更不能对温湿度进行自动调节。而采用单片机对温湿度进行测量控制,不仅具有控制方便、简单灵活,成本低,能实现温湿度自动控制等优点,而且可以大幅度提高温湿度技术指标,并且用液晶屏显示温湿度数值,看起来更加直观[1-3]。
本设计以STC12C5A60S2单片机组成的最小系统为控制内核,具有温湿度实时检测、温湿度上下限设置、温湿度自动调节、温湿度LCD显示和声光报警等功能。
(1)对环境中的温度和湿度实时进行采集并显示,同时显示预先设置的温度和湿度的上下限值。
(2)可通过按键对不同的使用环境设置温湿度的上下限值,与实时采集的温湿度值进行比较,若当前温湿度超出阈值范围,系统就会发出声光报警信号并自动启动相应的加热、加湿、通风除湿、散热模块,从而实现温湿度自动控制[4]。
该温湿度控制系统由STC12C5A60S2单片机组成的最小系统、温湿度传感器AM2301B模块、按键控制模块、LCD显示模块、温度控制模块、湿度控制模块和声光报警模块等组成。系统框图如图1所示。
图1 温湿度控制系统框图
单片机最小系统也就是最小应用系统,是指用最少的元件组成的单片机可以工作的系统,包括STC12C5A60S2单片机、C1、C2和X1组成的时钟电路以及C3、R1组成的上电复位电路和S1和R2组成的手动按键复位电路组成。如图2所示。
图2 单片机最小系统
本设计显示电路采用LCD1602液晶显示,LCD1602显示模块是一种字符型显示模块,它具有显示质量高、功耗低、体积小、重量轻、数字式接口等特点。它能够同时显示16×2(16列×2行)个字符。第一行显示温度TH、温度当前值和温度上下限设定值,第二行显示湿度RH、湿度当前值和湿度上下限设定值。LCD1602的数据/命令选择端RS、读写选择RW和使能信号端E分别接单片机P2.0、P2.1和P2.2三个端口,考虑到P0口的驱动能力,在P0口和液晶模块之间加了一个8路双向总线收发器74LS245来驱动液晶显示器[5]。显示电路如图3所示。
图3 显示电路
声光报警电路如图4所示,它是由LED、PNP三极管和扬声器LS1组成。当温湿度传感器AM2301B检测来的温度或湿度值超出系统所设定的上、下限值时,单片机P1.7输出一定频率的高低电平控制LED闪烁,同时P1.1输出低电平信号,使PNP三极管Q1导通,驱动蜂鸣器发出报警声。
图4 声光报警电路
按键控制电路由S2、S3和S4组成,分别连至单片机P1.0、P3.2和P3.3三个端口,如图5所示,它的主要功能是通过三个独立按键,可对本系统的温湿度控制范围的上下限值进行设置。其中,S2按键是模式选择按键,可对温度上、下限和湿度上、下限设置模式进行切换,即按一次为温度上限设置模式,按第二次为温度下限设置模式,按三、四次分别为湿度上、下限设置模式。当在不同的切换模式下时,S3按键使相应的设定值增加,S4按键是使相应的设定值减小。
图5 按键控制电路
本系统采用AM2301B传感器对环境温湿度进行实时采集和转换。AM2301B是一款包括有数字校准输出的温湿度传感器,它采用独特的数字采集模块和高新温湿度采集传感技术,可以确保产品可靠性高、稳定性好。它配置了专用的ASIC传感器芯片、高性能的半导体硅基电容式湿度传感器和一个标准的片上温度传感器,并使用了标准I2C数据输出信号格式。该传感器具有响应快、抗干扰能力强、性价比高、体积小、功耗低和信号传输距离远等优点。它温度测量范围-40~+80℃,测量精度为±0.3℃;湿度测量范围0~100%RH,测量精度为±2%RH。通信端口选用P2.6连接传感器串行时钟SCL引脚,用于单片机与传感器之间的通信同步;P2.7连接串行数据SDA引脚,用于数据的输入和输出[6-8]。如图6所示。
图6 温湿度检测电路
温湿度控制电路的功能是当环境的温湿度超出设定范围时,启动相应的温湿度控制电路,进行加热、加湿、通风(制冷或除湿)。电路如图7所示,分别用单片机的P1.2、P1.3和P1.4控制三个PNP三极管的基极,从而控制相应的继电器来启动模拟加热电路、加湿电路和通风电路。当温湿度都在设定的上、下限范围时,P1.2、P1.3和P1.4输出均为高电平,三个PNP三极管都截止,加热、加湿和通风电路不工作。当温度低于设置的温室下限温度时,P1.2端口输出低电平,三极管Q2导通,继电器RL1吸合,加热器通电加热;当温度高于上限温度时,P1.3输出低电平,三极管Q4导通,继电器RL3吸合,启动通风电机进行降温;当湿度低于下限湿度时,P1.4输出低电平,三极管Q3导通,继电器RL2吸合,启动加湿电机进行加湿;同理,当湿度高于上限湿度时,P1.3输出低电平,三极管Q4导通,继电器RL3吸合,启动通风电机进行除湿。
图7 温湿度控制电路
软件设计采用模块化设计,主要包括温湿度检测和系统控制两部分组成。系统运行后,首先进行端口初始化(设置报警电路、温湿度控制电路为关闭状态)、LCD1602初始化、温湿度传感器初始化,然后进入按键检测、温湿度实时采集、温湿度显示、温湿度实时值与设置上下限值比较,实现温湿度自动控制大循环。软件设计流程图如图8所示。根据实时温湿度数值,单片机判断当前温湿度是否在设置的温湿度上下限范围内,如果温湿度超过预设值,单片机就会输出控制信号将相应继电器吸合,执行加热、降温、加湿、除湿操作,同时LED闪烁、蜂鸣器响进行声光报警。经过实时控制,温湿度恢复至设定范围内时,单片机就会输出相应信号关闭继电器和报警电路。如此,单片机不断开启关闭继电器就可实现整个环境的温湿度控制[9]。
图8 软件设计流程图
通过单片机仿真软件对所设计电路进行搭接,利用Keil软件完成系统程序的编写与调试,两软件联调对系统进行测试。
(1)当AM2301B采集的实时温湿度在预设值范围内时,继电器不动作、无声光报警。
(2)当AM2301B采集的实时温度低于预设温度值下限时,P1.1、P1.7和P1.2同时输出低电平,发出声光报警信号,同时继电器RL1吸合,启动加热器。当温度恢复后,P1.1、P1.7和P1.2输出高电平,继电器断开,关闭加热电路,同时关闭声光报警电路。
(3)AM2301B采集的实时温度高于预设温度值上限时,P1.1、P1.7和P1.3同时输出低电平,继电器RL3吸合,启动通风降温电路和声光报警电路。当温度恢复后,P1.1、P1.7和P1.3输出高电平,继电器断开,关闭通风降温电路,同时关闭报警电路。
(4)当AM2301B采集的实时湿度低于预设湿度值下限时,P1.1、P1.7和P1.4输出低电平,继电器RL2吸合,启动加湿电路和声光报警电路。当湿度恢复到设定范围后,P1.1、P1.7和P1.4输出高电平,继电器断开,关闭加湿电路,同时关闭报警电路。
(5)同理,当AM2301B采集的实时湿度高于预设湿度值上限时,P1.1、P1.7和P1.3输出低电平,继电器RL3吸合,启动通风除湿电路和声光报警电路。当湿度恢复到设定范围后,P1.1、P1.7和P1.3输出高电平,继电器断开,关闭通风除湿电路,同时关闭报警电路。
本文采用AM2301B温湿度传感器模块,基于STC12C5A60S2单片机设计了一款温湿度自动控制系统,给出了详细的硬件和软件设计方案,并通过软件仿真和实际电路搭接,验证了系统方案的正确性和可行性,适用于规模不大的农业大棚和饲养业,为后续的系统设计提供了理论技术支持,对相同类型温湿度自动控制系统的设计具有一定的参考价值。