禽舍环境监测系统的设计
2013-04-29王丽芬
王丽芬
摘要:监控系统的设计基于STC89C52单片机,利用光敏、光电等多种用于检测环境参数的传感器对禽舍环境进行实时监控,以维持舍内适宜禽类生长的环境参数,节省劳动力,提高饲养收益。整体系统采用模块化设计,以温度光照监控模块为例进行详细设计,具有操作简单、工作稳定、便于调试等优点。
关键词:单片机;传感器;温度光照;实时监控
中图分类号:S831.4+5;S126 文献标识码:A 文章编号:0439-8114(2013)06-1432-03
随着养殖业的发展、科技的进步,人们越来越倾向于利用现代技术自动化管理禽舍环境,使禽舍能够投入最少的劳动力而产生最大的效益。禽舍环境自动控制系统[1]的工作原理是人工上电后,装置上的温度、光感、烟雾等传感器实时检测室内环境,当环境的某一参数偏离预设值时,系统便会自动执行相应动作,以使环境恢复到正常水平。自动控制系统的应用可大大减少人工劳力,并可高效率改善禽舍内环境,进而促进家禽生长,提高产蛋率[2]。
1 系统硬件设计
系统硬件的设计大致包括中央控制单元、温度采集部分、光照采集部分、温度显示部分四大硬件部分(图1)。系统温度光照监控部分所需器件包括STC89C52单片机(图2)、DS18B20数字温度传感器、光敏电阻、74LS245驱动芯片、ADC0804数模转换器、74HC573锁存器、4位LED数码管、继电器、发光二极管、直流风扇等。
1.1 中央控制单元——STC89C52单片机
STC89C52单片机[3]是基于80C51内核,采用PHILIPS高密度CMOS技术设计制造,包含中央处理单元、8kB非异失性Flash、只读程序存储器EPROM、256B内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时器/计数器和中断源,采用4层优先级中断嵌套结构,可用于多机通信的串行I/O口、I/O扩展、片内时钟振荡电路。其最小系统包括复位电路和由2个电容及1个12M晶振组成的振荡器。STC89C52采用低功耗静态设计,宽工作频率为DC-33MHz,宽工作电压范围为2.7~5.5 V,两种软件方式选择电源空闲和掉电模式。空闲模式下,冻结CPU而RAM定时器、串行口和中断系统维持其功能。由于是静态设计,所以掉电模式下,时钟振荡停止,RAM数据得以保存,芯片内其他功能停止。CPU唤醒后,从时钟断点处恢复执行程序。同时,STC89C52有PLCC44、DIP40和LQFP44等多种封装形式,以适应不同产品的需求[4]。
1.2 温度的采集、显示
DS18B20数字温度传感器设置于禽舍内,用于实时采集温度参数。上电后,单片机通过P1.7口向DS18B20的DQ端写开启温度采集及转换命令字,温度传感器开始工作。传感器所采集到的室内模拟温度量值经由内部模数转换后,向中央控制单元传送数字化温度值,供单片机分析处理[5]。DS18B20数字温度传感器将采集到的实时温度传送给控制单元后,由单片机P0口外设的4位8段共阴极LED数码管实时显示出来。另外数码管还兼有由4组按键来显示可自行设置的上、下限温度值。数码管的显示采用动态驱动方式,应用两片74HC573锁存器[6]分别控制4位位选端及8位段选端。锁存器的输入数据由P0口提供,并由软件动态扫描4位数码管,控制何位显示、显示何值。由于扫描速度快、周期短及人眼视觉停留,其效果与静态显示相同。
1.3 光照的采集
利用置于禽舍窗外的光敏电阻监测外界光照强度。光敏电阻利用不同光照强度下,其自身电阻值不同的特性(入射光强,电阻减小;入射光弱,电阻增大),将光照强度模拟信号首先传送给模数转换芯片ADC0804,转换成量化的光照值经P1口传送至处理单元。此时处理单元将与开灯与否的临界值进行比较,从而发出相应指令。
2 系统的软件设计
系统采用了现在流行的C语言编程[7],易于实现、移植和扩展。
2.1 流程图的设计
温度监控流程和光照监控流程分别见图3和图4。
2.2 设计的部分程序
温度监控子程序:
#include
sbit DUAN=P2^6;//74HC573的LE端,LED的段选端
sbit WEI=P2^7;//74HC573的LE端,LED的位选端
sbit TMDAT=P1^7;//DS1820温度接口
sbit fengshan=P2^2;//风扇接口
sbit jiare=P2^3;//加热器接口
sbit gao=P3^2;//显示上限温度值按键接口
sbit di=P3^4;//显示下限温度值按键接口
sbit jia=P3^6;//升高上下限温度值按键接口
sbit jian=P3^7;//降低上下限温度值按键接口
void main()
{while(1)
{get_temperature();//获得温度
if(tempdf≥8)tempdf=5;//0.5°精度显示
else tempdf=0;
if(gao==0&&di==1)
{xianshigao(); //显示温度上限值
if (jia==0){delay(20);i=i+1;}
else if(jian==0){delay(20);i=i-1;}}
if(gao==1&&di==0)
{xianshidi();//显示温度下限值
if (jia==0){delay(20);j=j+1;}
else if(jian==0){delay(20);j=j-1;}}
if(gao==1&&di==1)
{disp_temp();//显示温度
if( tempint≥i)//可以自己设定报警的温度
{ fengshan=0;delay(62);}//温度超过上限值开风扇
else fengshan=1;}
if(tempint≤j)//温度低于下限值开加热器
{jiare=1;delay(62);}
else jiare=0;} }[11]
光照监控子程序:
#include"reg52.h"
#include"intrins.h"
#include"math.h"
#define uint unsigned int//定义无符号整型变量
#define uchar unsigned char//定义无符号字符变量
sbit ADC0804_SC=P2^0;//模数转换器片选接口
sbit ADC0804_RD=P3^7;//模数转换器读接口
sbit ADC0804_WR=P3^6;//模数转换器片写口
sbit kaideng=P2^2;//灯光控制端口
void main()
{uchar ADC0804_data;
ADC0804_SC=0;//让SC一直为低
while(1)
{adc0804_start();//启动ADC0804
delay(5);//延时
ADC0804_RD=0;//RD为低
delay(5);//延时
ADC0804_data=P1;//将ADC0804的数据传出
delay(5); //延时
ADC0804_RD=1;//RD为高
delay(5);//延时
if(ADC0804_data≤100)//采光量不足,开灯操作
kaideng=1;
else kaideng=0; } }
3 小结
该系统设计的初衷是整合多路传感器,以最低成本对禽舍环境参数进行实时监控,以维持舍内适宜禽类生长的环境参数,智能化管理,提高效益。在完成硬件电路的焊接、测试及软件程序的编写与调试后,经过反复的模拟试验、观测分析,该模块大致可实现对舍内气体、温度、光照等环境参数的有效监测与控制功能。
参考文献:
[1] 赵 艳,张广庆,薛其岩,等.鸡舍内有害气体的控制措施[J].山东畜牧兽医,2010(2):57-58.
[2] 王自然.光照与温度对鸡产蛋率的影响[J]. 养殖技术顾问,2005(3):5.
[3] 张毅坤,陈善久,裘雪红.单片微型计算机原理及应用[M].西安:西安电子科技大学出版社,1998.
[4] 余锡存,曹国华.单片机原理及接口技术[M].西安:西安电子科技大学出版社,2007.
[5] 余成波.传感器与自动检测技术[M].北京:高等教育出版社,2009.
[6] 曹汉房.数字电路与逻辑设计基础[M].北京:电子工业出版社,2007.119-120.
[7] 谭浩强.C程序设计[M].北京:清华大学出版社,2005.95-121.