基于51单片机wifi物联网的浇花控制系统

发布者:满足的36号最新更新时间:2022-01-27 来源: eefocus关键字:51单片机 手机看文章 扫描二维码
随时随地手机看文章

一.硬件方案

使用51单片机运用编程与LCD液晶显示屏实现,利用温度、湿度传感器及相应的显示、驱动执行机构、报警装置等实现温室作物生长环境控制器的设计。


主要由51单片机+最小系统+lcd1602显示屏+蜂鸣器报警模块+设置按键+微型水泵+adc0832模数转换模块+YL-69土壤湿度传感器+DHT11温湿度传感器+LED指示灯+wifi模块esp8266;如图:

在这里插入图片描述

二.设计功能

(1)液晶显示检测到的土壤湿度值和环境温湿度值,有手动和自动两种控制模式;

(2)通过按键设置报警值,温度大于上限值,则声光报警滴滴响;

(3)当检测到的土壤湿湿度值低于报警值说明干燥启动水泵浇花。

(4)s1,s2,s3,s4按键分别是设置键,加键,减键,手动自动切换键。

(5)按下s1键进入报警值设置界面且光标闪烁,按下s2报警值+1,按s3报警值-1;

(6)可通过wifi,手机控制水泵的开和关;


三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:

在这里插入图片描述

(2)Protues仿真图如下:

在这里插入图片描述

四.软件设计

主程序源码


/****************************************************************************/

//主函数

//TH,TL,RH,RL分别代表温湿度的整数和小数部分

/****************************************************************************/

void main()

{

  init1602();

  Com_Init();//串口初始化

//   tr=byte_read(0x2000); 

//   shr=byte_read(0x2200);

//   stemp=byte_read(0x2400);

Delay_1ms(2000);   //延时几秒时间等模块启动

  beep=0;

wifi_init

  beep=1;

          while(1)

          {


keyscan();

if(kai==0) 

{

EA=0;//开总中断

ES=0;//开串口中断

write_com(0x80+12);

write_date(' ');write_date('Z');  write_date('D');write_date(' ');


if(yyp==1)

{

display(255-adc0832(0X00));

              keyscan();

if(yyp==1)GET_TRH();

baojing();

}   

else

{

write_com(0x80+12);

write_date('w'); write_date('i');write_date('f'); write_date('i');

}

if(kai==1)

{

EA=1;//开总中断

ES=1;//开串口中断

if(Buffer=='o') //

{  

Buffer='o';

jdq=0;

delay(50);

di();

}

if(Buffer=='c') //

{  

Buffer='s';

jdq=1;

delay(50);

di();

}

}         

          }      


关键字:51单片机 引用地址:基于51单片机wifi物联网的浇花控制系统

上一篇:基于51单片机的GSM智能快递柜设计
下一篇:51单片机 8x8LED点阵屏循环显示数字0~9

推荐阅读最新更新时间:2024-11-11 13:53

8051单片机波特率计算公式
8051单片机使用定时器1工作在方式2的情况下作为串口波特率发生器,其波特率=(2smod /32)×(定时器T1溢出率),其中smod是PCON 7 ,表示是否波特率加倍,Fsoc是系统的晶振大小。 波特率公式中:T1溢出率=溢出周期的倒数;溢出周期=(256-TH1)×12/Fosc; 最终公式: 波特率:Baud=(2smod × Fsoc)/(32 ×12×(256-TH1)) 我们一般不太关注波特率的计算,而是关心选用的传输速度(波特率)去反算定时器1(自动重装模式)的初值(TH1),所以将上面的公式导一下,得到TH1的公式: TH1=256-(Fsoc×2smod)/(12×32×Baud) 下面针对串口发送程序,水寒
[单片机]
51单片机学习笔记———7.按键法配置定时器
如果用延时函数来对按键进行检测的话,会消耗单片机的内存,不是很好,于是我们有以下方法: unsigned char cnt1 = 0XFF; cnt1 = (cnt1 1)|KEY1; if(cnt1!=0x00) { KeyLock = 0; } else if (KeyLock==0) { KeyNum = 1; KeyLock = 1;//防止按键触发 }
[单片机]
51单片机+74LS160频率计,最高可测频10M
因为51单片机晶振的原因,测频的范围有限制,这时就需要外置74LS160分频器,进行分频。 本程序采用了定时器的方式2定时,8位自动重装计数器,精准定时。 单片机源程序: #include reg52.h #include intrins.h #define Duan P2 #define Wei P1 sbit mr = P3^0; unsigned char code smg_duan ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code smg_wei ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0x
[单片机]
<font color='red'>51单片机</font>+74LS160频率计,最高可测频10M
51单片机PID控制垂直风力摆设置角度
#include reg52.h #include i2c.h #include delay.h #include display.h #include math.h #define uchar unsigned char #define uint unsigned int #define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址 void timer0_init(); //定时器0初始化 void motor_run(); void control(); uchar time; uint motor_pwm; double count=0; //定义占
[单片机]
基于51单片机太阳能电池太阳跟踪装置程序设计
#include reg51.h #include intrins.h #include absacc.h #define uchar unsigned char #define uint unsigned int #define ysfs 600 //宏定义 预设风速 #define shuiping 1500 //宏定义 水平位置AD转换结果 #define fuyang 1500 //宏定义 俯仰位置AD转换结果 #define PA XBYTE //8255芯片端口4个基地址宏定义 #d
[单片机]
51单片机实现printf函数
使用printf打印函数在调试的时候十分方便,因此在开发过程中首先实现此函数是非常有必要的。在经常整理网上资料后发现实现printf函数非常简单,首先添加stdio.h头文件,然后在串口函数中添加如下代码即可。 char putchar(char c) { Uart1_SendChar(c); return c; } 串口的发送函数可以使用这个: /*********************************************** *函数名称:Uart1_SendChar *功 能:串口1发送单个字符函数 *入口参数:Udat:欲发送的数据 *返 回 值:无 *备 注:无 ********
[单片机]
51单片机运行过程
注: 1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。 51单片机是EPROM,所谓的EPROM是可擦除的只读存储器。可以把原来的程序擦除了,再写一个新的进去。 断电后是可以保存的,数据存储器(RAM)是不能保存的。 RAM只能在程序执行的时候不断地重新存储定义的变量。如int x,int y 可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源 2.RAM:随机存取存储器,用于存储定义的变量等,速度快 51单片机的RAM存储容量远小于ROM,但是速度非常之快 内部详细图示 内部的结构看似十分复杂,但是大致上可以分为两个部分:运算器(红色框)和控制器(蓝色
[单片机]
<font color='red'>51单片机</font>运行过程
基于51单片机智能计数器的设计
一、任务以及要求 对外部信号脉冲进行计数,并将脉冲个数显示出来。基本要求:计数至少65536个脉冲,并将脉冲个数显示出来。 二、方案选择 用中断方式进行计数,利用定时器/计数器0的方式2。使用查寻方式进行计数,利用定时器/计数器0的方式1。本程序使用第一方案进行设计,并能实现计数99999999次 三、系统硬件设计 设计思路 1)、通过按钮产生脉冲信号。 2)、由于按钮按合会出现机械弹跳过程,使得电平跳变发生多次。为了克服按钮抖动而产生的误计数,接入脉冲消抖电路,克服按钮的抖动现象。 3)、脉冲计数可采用定时器/计数器来实现。 4)、选择8279作为6位LED显示器的译码驱动电路,实现累进计数。 2、硬件电路组成:
[单片机]

推荐帖子

照明用LED驱动电源设计--新手指南
采用恒压设计会危害LED未来!1.LED肯定是需要恒流方式点亮,还是有些使用恒压方式设计,主要原因:一是,恒流方式限制达不到某些客户要求,迫于无赖!二是,电源IC厂家为了自己利益,会有些偏离实际的宣传。恒压方式是暂时的过度,很快会被成熟的恒流技术取代。2.不能很好的选取恒流设计方式,主要是设计参考线路选择目前还有限。市场急需要更多、更好的设计恒流驱动方式出现。3.更需要的是驱动新概念,突破性驱动设计概念是指引LED照明线路设计,及IC规划设计未来的基础。为LED
led123 电源技术
基于ARM Linux的图像采集与蓝牙传输
上网搜索到一篇“基于ARMLinux的图像采集与蓝牙传输”的论文,觉得挺好·想做为毕业设计··但是不东怎么进行··请大家给点资料或者建议··诸如用什么样的蓝牙芯片,等等·基于ARMLinux的图像采集与蓝牙传输
aikchun Linux与安卓
联网运动设备、桌面玩具和医疗可穿戴将面临安全新挑战
给大家分享一篇新闻稿,文中提到的安全方面的问题,确实是需要我们更多的去关注的。联网运动设备、桌面玩具和医疗可穿戴将面临安全新挑战编辑:muyan由PaloAltoNetworks(派拓网络)委托完成的一份全新报告显示:在中国,运动设备、桌面玩具和医疗可穿戴设备等联网设备通常会连接到企业的网络中,这促使相关技术部门领导提高警惕,并告诫企业需采取行动以免这些设备被利用进而危害企业网络。这是根据全球网络安全领导企业PaloAltoNetworks(派拓网
okhxyyo RF/无线
MicroPython几个问题
1.内置硬件驱动库需要外部PY引用的二次封装,太麻烦,直接用c写的硬件驱动函数进行外部引用多好!!!2.发现circuitpython的内置硬件驱动库没有进行外部PY引用的二次封装,直接就是C写的驱动函数,调用LL库3.对于第二条,如果有大神知道解释解释,固件内部硬件驱动用C写,那真的是方便不少,主要是占用空间和速度肯定不一样了MicroPython几个问题micropython提供了一个基础使用环境,虽说已经很方便了,但是大家的要求可能千差万别,所以不可能在固件中集成
hengshu MicroPython开源版块
Fluke敏感设备电能质量故障诊断在线交流会问答
系统消息:如果会议结束后,大家还有问题的话,可发邮件至ping.shen@fluke.com询问Q:开始了?A:开始了Q:研讨会改版了效果不错。A:我们将继续做好Q:继续支持A:谢谢Q:在计算机机房的电能质量统计和诊断方面有没有相应的方案或者解决办法?A:有几个案例可以参考,会后可以讨论,农行数据中心,渣打数据中心,宁波财税局等Q:在计算机机房的电能质量统计和诊断方面有没有相应的方案或者解决办法?A:首先要进行测量,确定电能质量问
pa2792 测试/测量
敲重点,西门子PLC与不同传感器的接线方式及应用
导语:了解西门子PLC与NPN、PNP传感器的接线方法对于工业自动化控制至关重要。本文将为您详细介绍西门子PLC的特点、NPN和PNP传感器的应用场景,以及如何正确地完成接线操作。一、西门子PLC特点西门子PLC是一种广泛应用于工业自动化控制的设备,具有以下特点:1.稳定性高:西门子PLC采用先进的微处理器技术,能够在恶劣的工作环境下保持稳定运行。2.高精度:西门子PLC的模拟量输入输出模块具有高精度,适用于各种高精度控制需求。3.易操作:西门子PLC的
2020da 工控电子
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved