基于AT89C52单片机的智能花房系统
2018-01-26王维罗涛张瑾
王维, 罗涛, 张瑾
(咸阳师范学院 计算机学院, 咸阳 712000)
0 引言
随着时代的潮流,电子产业发展越来越迅速,应用于各个领域,人民的人均生活水平不断提高,对各方面的要求也越来越高,对花卉的品种、鲜艳程度、价格等各方面都有着居高不上的要求。
传统的花房需要人工借助简单的一起测试环境的各种状态参数,并根据经验手动调节各种花房装置,效率低,控制效果不好[1]。为了减轻花农的负担,并有效的控制花房的各种状态数据,采用传感器自动获取各项数据,并借助单片机进行控制,不仅简单,方便,还可以大幅提高各项技术指标。
1 智能花房系统的组成
本系统利用传感器测量花房的温湿度,经过信号处理后,将传感器测量数据送至控制系统(AT89C52),并通过显示电路将测得的温湿度值进行实时显示;同时由于不同花卉的适合生长的温湿度不一样,需要控制系统具有自动调节室内温湿度的能力。因此智能花房系统采用AT89C52单片机作为控制器,选用温湿度传感器SHT10测量花房内的温度和湿度,LM1602LCD作为显示模块,并根据测试的温度和湿度数据驱动继电器工作,自动调节温度和湿度。系统总体框图如图1所示。
图1 系统总体框图
(1) 温湿度采集模块
温湿度采集模块主要通过温湿度传感器每隔一定的时间间隔获取温度和湿度数据,并将数据实时传送到控制器,同时送到显示模块进行显示。
(2) 显示模块
显示模块主要功能是将温湿度传感器传送的数据进行显示。
(3) 自动控制模块
自动控制模块主要是当花房内的温湿度不在正常范围时,通过继电器控制对花房的温度和湿度进行调节,以便花卉更好的生长。其工作过程为:当花房内的温度高于预先设定的极限值时,继电器带动风扇转动;当花房内的温度低于预先设定的极限值时,继电器启动加热设备;当花房内的湿度高于预先设定的极限值时,继电器启动去湿设备;当花房内的湿度低于预先设定的极限值时,继电器带动水泵喷水。
(4) 电源模块
由于各器件的标准电压为5 V,而家庭用的电压为220 V,因此需要将220 V的电压转化为5 V电压,为电路中的各个器件提供电源。
2 硬件系统设计
智能花房管理系统的电路包括温湿度信息采集电路、显示电路、电机控制电路等。该系统的硬件总体结构,如图2所示。
图2 系统硬件总体结构图
2.1 元器件的选择
(1) 控制模块-AT89C52
AT89C52是一个低电压、高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
(2) 温湿度传感器-SHT10
SHT10是瑞士Sensirion公司推出的一款单片数字温湿度集成传感器,兼具相对温度和湿度的测量,数字信号输出接口简单,外围电路集成度高,响应速度快[2]。它采用CMOS过程微加工专利技术(CMOSens technology),确保产
品具有极高的可靠性和出色的长期稳定性。该传感器由1个电容式聚合体测湿元件和1个能隙式测温元件组成,并与1个14位A/D转换器以及1个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低、反应快、抗干扰能力强等优点[3]。
(3) LCD显示-LM1602LCD
LCD主要用于显示室内的温湿度数据,因此选取性价比较高的LM1602液晶屏,其显示容量为16*2个字符,采用标准的14脚(无背光)或16脚(带背光)接口[4],各引脚接口说明,如表1所示。
表1 LM1602各引脚接口
2.2 硬件电路原理图
智能花房管理系统包括SHT10传感器电路、AT89C52单片机主控电路,LCD数码管显示电路等模块,通过C52单片机来进行数据传输和交换,使用C52型单片机设计温湿度控制系统,可以及时、精确的反映室内的温度以及湿度的变化,借助直流电机完成温湿度的调节,为花卉的生长提供了更加适宜的环境。借助Protetus设计系统的电路,如图3所示。
图3 智能花房电路图
3 智能花房系统软件设计
系统软件设计采用模块化设计方法,使用C语言实现,主要分为4个大模块,即主程序模块,参数设置模块,花房数据采集显示模块和继电器控制处理程序模块。每个模块都具有一定的功能,每个模块又可分为许多子模块,既相互独立又相互联系,低级模块可以被高级模块调用。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,支持8051、ARM等多种处理器模型,支持IAR、Keil和MPLAB等多种编译器[5]。该系统开发环境采用Windows7操作系统,使用Keil uvision4开发环境编写程序控制软件,编译成功后在Proteus8.0模拟仿真实现智能花房系统。
(1) 系统主流程图
首先初始化各端口包括温湿度传感器,接着调用温湿度检测电路的测量值,判断温湿度是否适合花卉生长,若不在正常温湿度范围内,则启动继电器进行温度和湿度的调节,使花卉处在适宜的温湿度的环境当中。总体流程图如图4所示。
图4 系统总体流程图
其中,温湿度获取关键代码如下:
… …
error+=s_measure(&temp_val,&checksum,TEMP); //温度测量
error+=s_measure(&humi_val,&checksum,HUMI); //湿度测量
if(error!=0) s_connectionreset(); ////如果发生错误,系统复位
else
{
// humi_val.f=(float)humi_val.i; //转换为浮点数
// temp_val.f=(float)temp_val.i; //转换为浮点数
calc_sth10(humi_val,temp_val,&humi_val_real,&temp_val_real); //修正相对湿度及温度
// dew_point=calc_dewpoint(humi_val.f,temp_val.f); //计算e dew_point
temp1=temp_val_real*10;
humi=humi_val_real*10;
write_com(0x80);
…
(2) 仿真测试
将Keil uversion中调试生成的可执行程序main.hex文件加载到Protetus7的电路图中进行仿真调试。仿真获得的温湿度数据,如图5所示。
图5 系统获取的温湿度数据
4 总结
针对花房内温湿度的自动控制,利用AT89C52单片机设计了智能花房系统,采用温湿度传感器技术、自动控制技术及LCD显示技术,在Proteus中模拟仿真智能花房系统。下一步将采用具体的硬件实现该系统,并在真实环境中测试使用。
[1] 李增详,史国兴,杨霞,等.温室花卉智能管理系统的设计[J].广东农业科学,2010(7):197-198.
[2] 吴建,王勇,尹翠霞,等.基于SHT10的温湿度测控系统设计[J].电子质量,2009(4):8-11.
[3] 吴国宏.新型温湿度传感器SHT10的原理及应用[J].单片机与嵌入式系统应用,2009,9(4):52-54.
[4] 于志赣,刘国平,张旭斌.液晶LCD1602模块的应用[J].机电技术,2009,32(3):21-23.
[5] 张靖武,周灵彬.单片机系统的Proteus设计与仿真[M].北京:电子工业出版社,2007.