基于单片机的智能灌溉系统设计
2017-04-27彭汉莹王宇韩改宁张洁李颖
彭汉莹+王宇++韩改宁++张洁++李颖
摘 要:为了实现水资源合理利用,发展节水供水,改善生态环境,利用物联网技术,使传统的灌溉技术得以突破。本设计以单片机为处理器,采用AT89S52芯片,使用步进电机控制水流量,利用温湿度传感器进行数据的采集,与设定数据进行对比,进行检测并控制。通过实验验证,本系统能实时监测到数据,并对非正常情况做出报警提示。
关键词:灌溉系统;单片机;温湿度传感器
中图分类号:TP39.1 文献标识码:A
1 引言(Introduction)
世界各国越来越认识到水已成为21世纪可持续发展的一个关键问题。中国水资源已处于相当匮乏的状态,并且全国大量的废、污水未经处理或处理未达标就直接排放造成了严重的水污染,少量的河流水质低于农田供水标准。水是农业的命脉,是生态环境的控制性要素,同时又是战略性的经济资源。为了实现水资源合理利用,发展节水供水,改善生态环境,采用智能灌溉系统抽取地下水灌溉农田,是我国目前物联网农业的关键,也是实现可持续发展的基础。
利用智能灌溉系统,使传统的灌溉模式得以突破和发展,是当今世界供水、节水技术发展的总趋势。智能灌溉系统在一些发达国家应用的比较广泛,技术发展也相对成熟,起步也比较早,特别是以色列、美国和加拿大等国家,先进的物联网技术、计算机和控制技术运用到了农业灌溉中,有效地提高了用水效率和生产。
2 智能灌溉系统的组成(Composition of intelligent
irrigation system)
本系统将分为四大模块组成:
(1)数据采集模块(SHT10温湿度传感器)
本系统所采用的温湿度传感器是由瑞士Sensirion公司推出的SHT10单片数字温湿度集成传感器。该传感器具有出色的长期稳定性和极高的可靠性,是由于该公司采用CMOS过程微加工专利技术(CMOSenstechnology)[1]。该传感器是由一个能隙式测温元件和一个电容式聚合体测湿元件,同时与一个14位A/D转换器和一个2-wire数字接口在单芯片中无缝结合,使得该产品具有抗干扰能力强、反应快、功耗较低等优点。
(2)电机控制模块(控制水阀及营养液输送)
当检测到的温湿度不在规定到的范围中时,通过步进电机和直流电机来调控温湿度。用步进电机来控制湿度,通常情况下,步进电机的精度为步距角的3%到5%,同时不累积。根据电机负载及大小情况而定,大电机的起步速度一般对应较低。用直流电机来控制温度,电机旋转的角度正比于脉冲数,只有数字输入脉冲可以确定电机的响应。直流电机有很好的起停和反转响应,所以可靠性比较高,从而电机的寿命仅仅取决于轴承的寿命[2],由于速度正比于脉冲频率,因而有比较宽的转速范围。
(3)数据显示模块(LCD显示温度和湿度)
将采集到的温度和湿度的数据显示在LCD1602液晶屏幕上,该1602液晶显示屏也叫1602字符型液晶显示屏,这是一种专门用来显示符号、数字、字母等的点阵型液晶模块。该液晶屏是由多个5×7或5×11的点阵字符位组成,一个点阵字符位可以显示一个字符,每位之间都有一个点距的间隔,行与行之间也有间隔,起到了行间距及字符间距的作用,但是它显示图形的效果不佳。
(4)LED灯和报警喇叭
当温度和湿度超过管理员设置的温度与湿度,LED灯会亮,同时报警器也会报警。当温度低于所设范围时,D1亮并喇叭报警;当温度高于所设范围时,D2亮并喇叭报警;当湿度低于所设范围时,D3亮并喇叭报警;当湿度高于所设范围时,D4亮并喇叭报警。
3 硬件系统设计 (Hardware system design)
基于单片机的智能灌溉系统的电路包含几类:传感器数据采集电路、报警电路。硬件系统的总体设计如图1所示。
3.1 元器件的选择
通过市场调研,考虑性价比的前提下,在本次设计中选择的元件型号为:
(1)核心芯片:AT89S52单片机
AT89S52单片机是一种功耗低高性能的CMOS8位微控制器,內置8kB可在线编程闪存。工作电源范围:4.0—5.5V,有三个16位定时器/计数器,32条可编程I/O线,8个中断源,以及灵活的在线编程[3]。如图2所示。
(2)直流电机和步进电机
直流点电机可通过调节电压大小就可以调速,比较方便;步进电机通过脉冲数来控制其前进的步数,步进电机控制更加稳定。如图3所示。
(3)LCD液晶:LCD1602
该液晶屏主要是用于显示温度和湿度的数值,因此从性价比上考虑,选择了LCD1602字符式显示器,该显示器的显示容量是16×2个字符,带I2C模块LCD1602连接到核心芯片AT89S52单片机[3]。显示电路设计如图4所示。
(4)温湿度传感器:SHT10传感器为测量模块,如图5所示。
(5)报警系统:LED灯和报警喇叭,如图6所示。
当温度和湿度超过管理员设置的温度与湿度,LED灯会亮,同时报警器也会报警。
3.2 硬件电路原理图
采用AT89S52单片机作为核心芯片,运用步进电机控制温湿度传感器,通过LED灯和报警器发出报警,温湿度是由管理人员根据植物的生长环境手动设置,在LCD显示屏上显示当前环境下的温度和湿度。如图7所示。
4 智能灌溉系统软件设计(Intelligent irrigation
system software design)
本系统的控制元件较多,程序代码较多,所以对SHT10和LCD1602的控制程序使用封装好的库文件。因此,采用模块化程序设计方法,以C语言实现的控制程序,按模块储存在AT89S52芯片内,无需单片机扩展存储器接口,简化了系统硬件结构,减低了成本,同时又提高了系统的稳定性[5]。
该软件系统流程,如图8所示。
测量温湿度函数
chars_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)
{
unsignedfalse=0;
unsignedintx;
s_transstart(); //启动传输函数
switch(mode)
{ //发送命令到传感器
case0:false+=s_write_byte(MEASURE_TEMP); break;
case1:false+=s_write_byte(MEASURE_HUMI); break;
default : break;
}
for (x=0;x<65535;x++) if(DATA==0) break; //直到测量温度湿度完毕
if(DATA) false+=1; //判断是否在测量过程中发送错误
*(p_value)=s_read_byte(ACK);
*(p_value+1)=s_read_byte(ACK);
*p_checksum=s_read_byte(noACK); //读取校验码
return false; //返回错误标志
}
定时器中断函数:控制马达正转、反转
void timer1(void) interrupt 3 //T1溢出中断
{
static unsigned char count2; //
if(flag2==1)
{
if (count2<=PWM_ON2)
PWMZ2=1;
else
PWMZ2=0;
}
if(flag2==0)
{
if (count2<=PWM_ON2)
PWMF2=1;
else
PWMF2=0;
}
count2++;
if(count2==CYCLE2)
{
count2=0;
}}
5 软硬件测试(Hardware and software testing)
将软件应用程序下载到硬件电路中,在proteus和keilc联合测试如图9所示。
x6 结论(Conclusion)
针对目前世界各国越水资源相当紧缺的问题,利用单片机设计的智能灌溉系统,采用AT89S52芯片作为该系统的核心芯片,使用步进电机控制水流量,利用温湿度传感器进行数据的采集,与理想数据进行对比,进行检测并控制。設计了面向农业应用的智能灌溉系统。该系统还可以应用于其他需要灌溉的服务行业。
参考文献(References)
[1] 林惠贞.分布式机房温湿度集中监控系统的设计[D].汕头大学,2011.
[2] 黄俊,翁惠辉.基于单片机技术的汽车空调控制系统的设计[J].长江大学学报(自科版),2012,09(1):124-126.
[3] 韩改宁,韩丽娜,张清文.基于Arduino开发平台的学生宿舍门禁系统设计[J].单片机与嵌入式系统应用,2016,16(9):64-68.
[4] 娄国强.基于ZigBee技术的无线测控网络平台研制[D].山东轻工业学院,2011.
[5] 毕庆生,等.面向智能灌溉的物联网应用研究[J].农业网络信息,2014(5):40-43.
作者简介:
彭汉莹(1995-),本科生.研究领域:物联网工程.
王 宇(1996-),本科生.研究领域:物联网工程.
韩改宁(1977-),博士生,副教授.研究领域:单片机与嵌入式
系统应用开发.本文通讯作者.
张 洁(1995-),本科生.研究领域:物联网工程.
李 颖(1995-),本科生.研究领域:物联网工程.