49、基于51单片机GSM湿度远程浇花系统设计

编程入门 行业动态 更新时间:2024-10-10 03:26:39

49、基于51<a href=https://www.elefans.com/category/jswz/34/1769836.html style=单片机GSM湿度远程浇花系统设计"/>

49、基于51单片机GSM湿度远程浇花系统设计

毕设帮助、开题指导、技术解答(有偿)见文末。

目录

摘要

一、硬件方案

二、设计功能

三、实物图

四、原理图

五、PCB图 

六、Proteus仿真

七、程序 

部分代码

八、资料包括

 


摘要

本设计是基于STC89C51单片机和ADC0832的GSM远程浇花系统。本设计的电路内部包含湿度采集和AD转换等主要功能以及GSM收发短信功能。远程浇水系统设计的浇水部分是通过单片机程序设计浇水的上下限值与感应电路送入单片机的土壤湿度值相比较,当低于下限值时,单片机控制GSM模块发送缺水短信,用户收到短信后回复浇水,单片机收到回复的短信后输出一个信号控制浇水,高于上限值时再由单片机输出一个信号控制停止浇水,并回复短信浇水完成到用户手机上。这样可以帮助人们及时地给心爱的盆花浇水。

关键词:STC89C51;湿度的采集与显示; LED

一、硬件方案

单片机的LCD 1602屏GSM湿度远程浇花系统设计的实现主要有电源5V供电、单片机最小系统、GSM短信模块,按键电路,LCD 1602显示屏电路,电源开关,DHT11温湿度传感器,蜂鸣器,继电器驱动水泵模块,AD转换模块,水位检测模块。

二、设计功能

1. 单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。

2.LCD1602液晶显示器,显示当前测量湿度和报警的上限和下限阀值。

3.按键可设置上限、下限值,低于下限报警并启动水泵浇水,高于上限停止浇水。

4.采用继电器驱动微型潜水泵,继电器优点就是可以驱动更大电流的负载,方便更换,实用性更强。

5.通过ADC0832将土壤湿度传感器检测到的模拟量信号转换成数字量信号给单片机,单片机控制1602液晶显示出当前的湿度百分比

6.加GSM短信模块,当湿度低于下限不直接启动继电器控制水泵加水,而是发送短信给主人,主人可以通过短信来控制是否需要浇花。

7.主人手机号码可通过按键随时更改(仅限移动用户)。

三、实物图

四、原理图

五、PCB图 

六、Proteus仿真

七、程序 

部分代码

	byte_write(0x2003, dianhuahaoma[1]);byte_write(0x2004, dianhuahaoma[2]);byte_write(0x2005, dianhuahaoma[3]);byte_write(0x2006, dianhuahaoma[4]);byte_write(0x2007, dianhuahaoma[5]);byte_write(0x2008, dianhuahaoma[6]);byte_write(0x2009, dianhuahaoma[7]);byte_write(0x200a, dianhuahaoma[8]);byte_write(0x200b, dianhuahaoma[9]);byte_write(0x200c, dianhuahaoma[10]);byte_write(0x2060, a_a);	
}/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{MH   = byte_read(0x2000);ML   = byte_read(0x2001);dianhuahaoma[0]=byte_read(0x2002);dianhuahaoma[1]=byte_read(0x2003);dianhuahaoma[2]=byte_read(0x2004);dianhuahaoma[3]=byte_read(0x2005);dianhuahaoma[4]=byte_read(0x2006);dianhuahaoma[5]=byte_read(0x2007);dianhuahaoma[6]=byte_read(0x2008);dianhuahaoma[7]=byte_read(0x2009);dianhuahaoma[8]=byte_read(0x200a);dianhuahaoma[9]=byte_read(0x200b);dianhuahaoma[10]=byte_read(0x200c);a_a      = byte_read(0x2060);
}/**************开机自检eeprom初始化*****************/
void init_eeprom() 
{read_eeprom();		//先读if(a_a != 1)		//新的单片机初始单片机内问eeprom{MH  = 80;ML  = 20;dianhuahaoma[0]=0;dianhuahaoma[1]=0;dianhuahaoma[2]=0;dianhuahaoma[3]=0;dianhuahaoma[4]=0;dianhuahaoma[5]=0;dianhuahaoma[6]=0;dianhuahaoma[7]=0;dianhuahaoma[8]=0;dianhuahaoma[9]=0;dianhuahaoma[10]=0;a_a = 1;write_eeprom();	   //保存数据}	
}/****************************************************************************
函数功能:AD转换子程序
入口参数:CH
出口参数:dat
****************************************************************************/
unsigned char adc0832(unsigned char CH)
{unsigned char i,test,adval;adval = 0x00;test = 0x00;Clk = 0;       //初始化DATI = 1;_nop_();CS = 0;_nop_();Clk = 1;_nop_();if ( CH == 0x00 )      //通道选择{Clk = 0;DATI = 1;      //通道0的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 0;      //通道0的第二位_nop_();Clk = 1;_nop_();} else{Clk = 0;DATI = 1;      //通道1的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 1;      //通道1的第二位_nop_();Clk = 1;_nop_();}Clk = 0;DATI = 1;for( i = 0;i < 8;i++ )      //读取前8位的值{_nop_();adval <<= 1;Clk = 1;_nop_();Clk = 0;if (DATO)adval |= 0x01;elseadval |= 0x00;}for (i = 0; i < 8; i++)      //读取后8位的值{test >>= 1;if (DATO)test |= 0x80;else test |= 0x00;_nop_();Clk = 1;

八、资料包括

 

需要完整的资料可以点击下面的名片,找我要资源压缩包的百度网盘下载地址及提取码。

更多推荐

49、基于51单片机GSM湿度远程浇花系统设计

本文发布于:2024-03-07 08:17:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1717305.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:单片机   湿度   浇花   系统   GSM

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!