基于单片机的智能浇花系统设计与实现

摘要: 设计了一种智能湿度感应浇花系统 系统以单片机 AT89S52 为控制芯片,利用 SLHT5-1 土壤湿度传感器来检测土壤的相对湿度,再通过单片机进行信息处理,采用模糊控制方法,输出控制信号,控制继电器的动作,从而控制水泵电源的通断,完成按需按量自动浇花的工作,启动浇花之前先有蜂鸣器报警。
关键词: 智能浇花; 土壤湿度传感器; 单片机; 水泵

0 引 言

随着生活水平的提高,许多城乡居民为了美化环境,净化空气,喜欢在家中阳台上种植一些花草 植物是离不开水的,需经常浇灌。 而人们出差或有事不在家时,植物的供水就会中断,植物面临干枯 有些植物对湿度的要求很高,人为的过度浇水,植物的根茎容易腐烂,从而影响到植物的正常生长。
国内外均有自动浇花系统的应用,大多数自动浇花系统是利用虹吸原理,即利用渗透的方式浇花,这种方式浇花过程是连续的、 不间断的,采用这种方式只能保证花不会干旱而死,不是花需要浇水时才进行浇灌 。还有一些自动浇水系统,可以设定何时进行浇灌及浇灌时间,与上一种方式相同,也不是花需要浇水时才进行浇灌。 另外还有一些自动浇水系统,是采用单片机控制,利用湿度传感器采集湿度信息,需要浇水时自动浇灌,但是需要用在外部有水龙头的情况下,而家庭花草种植一般都放在阳台上,阳台上一般均没有水龙头,使用起来非常不方便。 基于单片机的智能浇花系统可以在阳台上使用,能够按需自动浇花

1 基于单片机的智能浇花系统组成

该系统主要由土壤湿度检测电路 键盘 LCD 液晶显示电路 报警电路、 水泵控制电路等组成。 具体结构如图 1 所示 通过土壤湿度传感器测量出土壤湿度信号,单片机采集土壤湿度信号并进行分析和处理,输出控制信号,控制水泵工作与否,从而达到按需浇花的目的。

2 系统工作原理

由于不同的花卉有不同的需水特性,浇花时应适时适量,按需浇花 。为此,系统采用模糊控制的方式达到精确浇花的目的。 一方面,单片机采集土壤湿度信号,并通过计算判断是否应该浇花; 另一方面,单片机采用查表的方法来实现浇水量的模糊控制 在软件设计时,根据不同花卉的需水量,将其土壤湿度值允许区间存入表格中,即模糊控制响应表,这些数据均是人们长期积累的经验值,并将表格事先置入 ROM 存储区的某一位置中供查表使用 例如: 对君子兰进行自动浇水,单片机将采集到的湿度信号与表格中的君子兰最小湿度值进行比较,当采集到的湿度值小于表格中的最小湿度值时,开始浇花; 当采集到的湿度值大于表格中君子兰的最大湿度值时,停止浇花,从而控制浇水的时机及浇水量的多少。

3 系统硬件设计

31 土壤湿度检测电路

本设计采用土壤温湿度传感器 SLHT5-1 。该传感器采用全量程标定,两线数字输出,可直接与单片机连接使用,具有非常高的一致性,湿度测量范围可达 0 ~ 100% RH。可将探头直接埋入土壤中,适合在工地农业温室大棚、花卉、苗圃、草坪等需要检测土壤温湿度的环境使用。检测电路如图 2 所示。

32 键盘及液晶显示电路

本设计采用 LCD12232F 液晶显示模块 ,它有自己的字节库,不用存储,并行连接方式,使用方便 。用来显示系统的工作状态及浇花的种类。 键盘采用独立式按键,包括复位键 选择花卉种类按键 启动按键 。开机显示: “ 欢迎使用自动浇花系统 ,之后显示 请选择花卉种类 ”。 通过对选择花卉种类按键的设置,结合液晶显示内容,确定花卉种类。 本系统共设计了君子兰 银杏 芦荟 仙人球 芍药 牡丹 香雪兰,共七个种类,对应七个湿度区间。 确定完花卉种类之后,显示花卉的名称

33 水泵控制电路

水泵控制电路如图 3 所示,三极管 Q1 的基极 B 接到单片机的 P3. 6 ,三极管的发射极 E 接到继电器线圈的一端,线圈的另一端接到 + 5V 电源 VCC 上; 继电器线圈两端并接一个二极管 IN4148 ,用于吸收释放继电器线圈断电时产生的反向电动势,防止反向电势击穿三极管及干扰其他电路; R2 和红色发光二极管组成一个继电器状态指示电路,当继电器吸合的时候,LED 点亮,这样就可以直观的看到继电器状态

AT89S52 单片机的 P3. 6 引脚输出高电平时,三极管饱和导通,+ 5V 电源加到继电器线圈两端,继电器吸合,同时状态指示的发光二极管也点亮,继电器的常开触点闭合,相当于水泵开关闭合,水泵开始工作。 反之, P3. 6 引脚输出低电平时,三极管截止,继电器线圈两端没有电位差,继电器衔铁释放,同时状态指示的发光二极管也熄灭,继电器的常开触点释放,相当于水泵开关断开,水泵停止工作。系统水泵采用 220V 供电潜水泵,最大流量 1750L /H ,浇花喷头采用花洒喷头,实现均匀喷水,防止局部土壤湿度过高,测量不准确。

34 报警电路

由于本系统通常应用在客厅中,为避免水泵突然启动惊扰主人,在系统中设置了报警电路。在水泵启动之前先有几次“嘀嘀嘀”的 报警声,之后才开始浇花。 报警电路如图 4 所示 由单片机的 P3. 0 引脚控制三极管的通断,从而控制蜂鸣器的通断。

4 系统软件设计

系统软件设计包括初始化 显示子程序 选择花卉种类子程序 土壤湿度检测子程序、 数据处理子程序 报警子程序等,主程序流程图如图 5 所示

5 结语

本设计采用 AT89S52 单片机作为控制芯片,设计了一款智能浇花系统 该系统根据花盆中土壤湿度来控制水泵的开启与停止。 采用模糊控制方式,控制浇水量的多少,即对土壤湿度进行实时监测,与设定好模糊控制响应表的湿度值进行比较,判断浇水量是否符合标准,完全实现按需按量自动浇花。 系统根据不同花卉的需水情况设置了不同的浇水量,开机后只需设置好花卉的种类,便能够自动找到应控制的湿度范围。
系统放在家中阳台上使用,经实验证明效果良好 另外,系统也适合在温室大棚、 花卉 苗圃 草坪等场合使用,即方便又节约水源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/34454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PingCAP 再度入选“中国独角兽企业”,数据库领域的先锋力量

6月16日,2024中国(重庆)独角兽企业大会上,长城战略咨询发布了《中国独角兽企业研究报告2024》。 2023年,中国独角兽企业共375家,大数据赛道共5家。 估值排序企业名称2023年估值(亿美元&#xff…

【面试题】等保(等级保护)的工作流程

等保(等级保护)的工作流程主要包括以下几个步骤,以下将详细分点介绍: 系统定级: 确定定级对象:根据《信息系统等级保护管理办法》和《信息系统等级保护定级指南》的要求,确定需要进行等级保护的…

CRMEB开源商城系统Java版:新零售时代的技术创新与实战案例

一、引言 随着新零售概念的兴起和电子商务的飞速发展,企业对商城系统的需求也日益多元化和个性化。CRMEB开源商城系统Java版,凭借其先进的技术架构、丰富的功能模块和灵活的扩展性,成为了众多企业构建和扩展自身电商业务的首选。本文将对CRM…

【Android】我的手机在...自己下载...那个(浅析Intent基础运用)

【Android】我的手机在…自己下载…那个(浅析Intent基础运用) 在Android开发中,Intent(意图)是一个非常重要的概念。它不仅仅是用于在应用程序的各个组件之间进行通信的工具,也是启动新的Activity、Servic…

表组装示例

代码; #include <gtk-2.0/gtk/gtk.h> #include <glib-2.0/glib.h> #include <stdio.h>int main(int argc, char *argv[]) {gtk_init(&argc, &argv);GtkWidget *window;window gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDO…

光伏能源圈

2021年&#xff0c;新型电力系统之下&#xff0c;中国已形成了两网五大六小的电力新格局&#xff1a; 两大电网&#xff1a;国家电网、南方电网 五大电力央企&#xff1a;国家能源投资集团、中国华能集团、中国华电集团、中国大唐集团、国家电力投资集团。 六小豪门&#xf…

python判断语句

目录 布尔类型和比较运算符if语句的基本格式if else 语句if elif else 语句判断语句的嵌套 布尔类型和比较运算符 1、布尔类型 bool布尔类型只有两个结果&#xff1a;真或假 布尔类型的字面量&#xff1a; True 表示真&#xff08;是、肯定&#xff09; False 表示假&#x…

一切前端概念,都是纸老虎

4、listener可以通过 store.getState() 得到当前状态。如果使用的是 React&#xff0c;这时可以触发重新渲染 View。 function listerner() { let newState store.getState(); component.setState(newState); } 对比 Flux 和 Flux 比较一下&#xff1a;Flux 中 Store 是…

ChatGPT API教程在线对接OpenAI APIKey技术教程

一、OpenAI基本库介绍 您可以通过 HTTP 请求与 API 进行交互&#xff0c;这可以通过任何编程语言实现。我们提供官方的 Python 绑定、官方的 Node.js 库&#xff0c;以及由社区维护的库。 要安装官方的 Python 绑定&#xff0c;请运行以下命令&#xff1a; pip install open…

【总结】在SpringBoot项目中如何动态切换数据源、数据库?(可直接CV)

注意&#xff1a;文章若有错误的地方&#xff0c;欢迎评论区里面指正 &#x1f36d; 前言 本文参考若依源码&#xff0c;介绍了如何在SpringBoot项目中使用AOP和自定义注解实现MySQL主从数据库的动态切换&#xff0c;当从库故障时&#xff0c;能自动切换到主库&#xff0c;确…

集群开发学习(三)修改用户模块(git 使用,局域网设代理)

git 使用 参考&#xff1a;https://blog.csdn.net/weixin_60033897/article/details/136016074 在服务器端创建公钥私钥 git config --global user.email "1686660735qq.com" git config --global user.name qinliangql git config --global -l # 查看信息# 这样可…

Java-内部类成员内部类

类的五大成员 属性 方法 构造方法 代码块 内部类 什么是内部类&#xff1f; 在一个类的里面&#xff0c;再定义一个类。 举例&#xff1a;在A类的内部定义B类&#xff0c;B类就被称为内部类 内部类表示的事物是外部类的一部分 内部类单独出现没有任何意义 内部类的访问特点 1.…

YOLOv8模型代码学习

1.参考文献 链接1 2.网络模型解析 2.1卷积神经单元&#xff08;conv.py&#xff09; 在该文件中定义了yolov8网络中的卷积神经单元&#xff0c;位置如图所示。 def autopad(k, pNone, d1): # kernel(卷积核), padding(填充), dilation(扩张)"""Pad to same…

Xlua三方库Android编译出错解决办法

Xlua三方库Android编译出错解决办法 最近听老师的热更教程&#xff0c;讲到xlua编译android平台会报错&#xff0c;也是看了老师的博客&#xff0c;按照方法去解决&#xff0c;然而问题并没有解决。应该是因为代码更新或者版本不一样&#xff0c;在此简单记录一下解决过程。 参…

[RPI4] 树莓派4b安装istoreos及使用 -- 1. 系统安装

最近在研究家庭智能化的一些东西,其中包括网络,智能家居等一系列内容,然后看过的资料有的想再回来看的时候就找不到了,然后就想着开这么一个系列,做一些记录,先从智能家居开始吧。 1 安装istoreos系统 iStoreOS 目标是提供一个人人会用的路由兼轻 NAS 系统,不管是作为路…

Transformer预测 | 基于Transformer的风电功率多变量时间序列预测(Matlab)

文章目录 预测效果文章概述模型描述程序设计参考资料预测效果 文章概述 Transformer预测 | 基于Transformer的风电功率多变量时间序列预测(Matlab) Transformer 模型本质上都是预训练语言模型,大都采用自监督学习 (Self-supervised learning) 的方式在大量生语料上进行训练,…

python桌面应用

py文件 import osimport wx import wx.html2class MyFrame(wx.Frame):def __init__(self, parent):wx.Frame.__init__(self, parent, title"启动啦", size(1000, 700))# 创建一个Web视图组件self.browser wx.html2.WebView.New(self)# 加载本地HTML文件# self.brow…

考研数学|《李林880》正确率多少算合格?

李林880题是针对考研数学三的练习题集&#xff0c;覆盖了考研数学三的主要知识点和题型。如果能够熟练掌握这些题目&#xff0c;意味着对考研数学三的知识点有了较为深入的理解和应用能力。 首先&#xff0c;考研数学三的总分是150分&#xff0c;题型包括单选题、填空题和解答…

RN开发搬砖经验之—“Calculated frame index should never be lower than 0“崩溃问题分析

问题重现 崩溃堆栈&#xff1a; Back traces starts. java.lang.RuntimeException: java.lang.IllegalStateException: Calculated frame index should never be lower than 0at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.ja…

【因果推断python】53_效应异质性和非线性带来的挑战1

目录 Treatment Effects on Binary Outcomes 合成一些数据 由于缺乏基本事实&#xff0c;在单位层面预测治疗效果极为困难。因为我们只能观察到一个潜在结果 T(t) &#xff0c;我们无法直接估计它。相反&#xff0c;我们必须依靠目标变换&#xff08;也可以看作是设计巧妙的损…