本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于Arduino的DIY自动植物浇水系统

发布时间:2021-08-16
分享到:

基于Arduino的DIY自动植物浇水系统

发布时间:2021-08-16
分享到:

当您听到“智能花园”这个词时,您会想到一个可以测量土壤湿度并自动灌溉植物的系统。使用这种类型的系统,您可以仅在需要时给植物浇水,并避免浇水过多或浇水不足。

该项目展示了如何制作基于 Arduino 的自动植物浇水系统。

第 1 步:工作原理

该项目基于 Arduino 微控制器。只是,从视频中可以看出,我使用了自己设计的微控制器原型。当然,您可以在此项目中使用所有其他 Arduino 模型。那么为什么我需要一个特殊的板子呢?我已经在下一步中解释了这一点。

第 2 步:植物自动浇水系统的工作原理

首先我们看一下工作原理,了解植物自动浇水系统的要求。随着土壤干燥,植物需要水,我们需要以某种方式将水与植物土壤结合在一起。如果植物土壤浇水充足,就应该停止浇水。那么我们需要哪些硬件或组件来自动执行此操作?

土壤湿度传感器探头应测量土壤湿度,探头读取的数据通过土壤湿度传感器发送到微控制器。微控制器根据指定的命令(如阈值)处理读取的数据,并与电机驱动器通信以启动水泵电机。但是,在某些项目中,可以使用继电器来触发电机。电机驱动器驱动水泵电机,水流通过与水泵电机相连的管道。当土壤湿度传感器探头达到指定阈值时,系统返回开始,水流停止。这是由微控制器作为循环执行的。

那么我们主要需要的组件和硬件列表如下:

  • 你的植物
  • 土壤湿度传感器
  • 微控制器
  • 电机驱动器
  • 水泵电机
  • 管道
  • 一些用于连接的跳线
  • 水桶
  • 电源

第 3 步:微控制器和电机驱动器

正如我之前提到的,您可以使用任何型号的 Arduino 微控制器(例如 UNO、Nano、Mega)。只要连接正确,共享源代码就会顺利运行。

但是,如果我要使用 Arduino 微控制器,我还需要一个电机驱动器,甚至可能需要一个继电器。如果我们在项目中使用像 Arduino UNO 这样的模型,我们将不得不使用以下电机驱动器一起创建一个电路:

L293D 电机驱动器屏蔽(很难连接额外的传感器)
L293D电机驱动IC芯片(需要面包板,布线复杂)
L298N 电机驱动模块(需要额外接线)
如果您打算使用 Arduino 模型,电路可能会有点复杂。为了避免这种复杂性,我创建了一个原型并从 PCBWay 获得了 PCB 打印服务。在我的设计板上,我使用了 ATmega328P、L293D 电机驱动器和 CH341 芯片,可以通过 USB 轻松对其进行编程。

此外,您可以在植物浇水系统的另一个项目中使用此板。例如,该板允许您控制伺服电机、2 个直流电机和许多传感器。我再次将这块板用于 5 合 1 机器人项目,并且我创建了一个机器人坦克,它可以在 1 个板的 5 种不同模式下工作。如需浏览,项目视频展示如下:

五合一机器人 

如果你不想处理复杂的电路,你可以很容易地从下面的链接中得到我设计的这块 PCB。您可以从 PCBWay 获得高质量和低预算的 PCB 服务。

获取 PCB 

第 4 步:2 合 1 微控制器(内置电机驱动器)

在设计 PCB 原型时,我小心地选择了易于查找和可焊接的组件。在我的设计板上,我使用了 ATmega328P、L293D 电机驱动器和 CH341 芯片,可以通过 USB 轻松对其进行编程。只是,CH341 USB 芯片可能看起来有点难以焊接。但是使用简单的烙铁,将少量焊料滴在将安装芯片的 PCB 上的焊盘上,然后正确对齐芯片腿并用焊料加热芯片腿。您可以查看此过程的项目视频。

此外,您可以在植物浇水系统的另一个项目中使用此板。例如,该板允许您控制伺服电机、2 个直流电机和许多传感器。

您可以从以下链接获取必要的组件。您可以使用我共享的指示符表来确定 PCB 上元件的位置。

所需组件

  • 带引导加载程序的 ATmega328P
  • L293D 电机驱动 IC
  • B 型 USB 插座
  • DIP 插座 28/16 引脚
  • 12/16 MHz 晶振
  • L7805 TO-220
  • 100uF 电容器
  • 电阻 10K / 1K
  • 470nF 电容器
  • 电源插孔
  • 2 针接线端子
  • 公针头
  • 10nF / 22pF 陶瓷

所需工具

  • 焊台
  • 烙铁线
  • 印刷电路板详情
  • 板型 : 单
  • 印刷电路板尺寸:53.3mm x 66mm
  • 层数:2层
  • 获取 PCB Gerber 和原理图

第 5 步:编程(源代码)

在进行电路连接步骤之前,我建议您上传源代码。因为,如果在水泵电机连接电路的情况下通过USB连接计算机对电路板进行编程,则可能会损坏计算机。

使用任何 Arduino 型号或我设计的 2 合 1 板,源代码与两者兼容。上传代码时,二合一开发板的BOARD选择应该是Arduino UNO。如果您正在使用任何其他 Arduino 型号(例如 UNO、Nano、Mega),则应根据您使用的型号选择板。您需要下载并使用 Arduino IDE 编辑器打开并上传代码

获取源代码

第 6 步:连接 - 土壤湿度传感器

土壤水分传感器如何工作?土壤湿度传感器的工作非常简单。

带有两个裸露导体的叉形探针充当可变电阻器(就像电位器一样),其电阻根据土壤中的含水量而变化。

该传感器包括一个用于测量的探头和一个能够与 Arduino 连接的模块。

该模块根据探头的电阻产生输出电压,并通过 LM393 高精度比较器转换为数字信号。并且在数字输出 (DO) 引脚上可用。

土壤湿度传感器易于使用,只需连接 4 个引脚。该项目使用了 3 个引脚。

  • DO(数字输出)引脚提供内部比较器电路的数字输出。您可以将其连接到 Arduino 上的任何数字引脚。项目中使用了数字 6 引脚。
  • VCC 引脚为传感器供电。建议使用3.3V – 5V之间的电压为传感器供电。
  • GND是接地连接。
  • 最后,通过在模块和探头之间建立电源和接地连接来完成传感器连接。

第 7 步:连接 - 水泵

我在项目中使用了我自己设计的二合一板,它包含一个内置的 L293D 电机驱动器。因此,电机连接变得更容易。但是,如果您打算使用不同的 Arduino 板和外部电机驱动器,则连接可能会稍微复杂一些。首先,您应该了解有关“如何使用”您将使用的电机驱动器的基本信息。

板上的内置 L293D 电机输出引脚直接连接到板的输入电压,电机的电源通过连接到 ATmega328P 的数字引脚控制。电路板的电源电压用于电机控制和微控制器。也就是说,电机直接从电源获得动力,不会损坏电路板。

6V-12V水泵通常有两个引脚:

  • 负极 (-) 引脚需要连接到 L293D 电机驱动器的 OUTPUT1 引脚。
  • 正极(+)引脚(红色)需要连接到 L293D 电机驱动器的 OUTPUT2 引脚。

电源连接:

  • 7.4V - 9V 电源正极(+)引脚需要连接到 L293D 电机驱动器的 VS 引脚。
  • 7.4V - 9V 电源负极 (-) 引脚需要连接到 L293D 电机驱动器的 GND 引脚。

L293D 电机驱动器和 Arduino 连接:

  • L293D 电机驱动器 INPUT1 引脚需要连接到 Arduino 的 Digital 2 引脚。
  • L293D 电机驱动器 INPUT2 引脚需要连接到 Arduino 的数字 4 引脚。
  • L293D 电机驱动器 VSS 引脚需要连接到 Arduino 的 +5V 引脚。

第 8 步:感应土壤湿度

该模块有一个内置电位器,用于调节数字输出 (DO) 的灵敏度。您可以使用电位器设置阈值;这样当水分含量超过阈值时,模块将输出 LOW,否则输出 HIGH。当您想在达到特定阈值时触发操作时,此设置非常有用。例如,当土壤中的水分含量超过阈值时,您可以激活电机驱动器以开始抽水。除此之外,该模块还有两个 LED。模块通电时,电源 LED 将亮起。当数字输出变为低电平时,状态 LED 将亮起。

通过转动电位器的旋钮,您可以设置一个阈值。这样当水分含量超过阈值时,状态 LED 将亮起,模块将输出低电平。

现在要校准传感器,当您的植物准备好浇水时,将探头插入水中,顺时针调整盆,使状态 LED 亮起,然后逆时针调整盆,直到 LED 熄灭。就是这样,您的传感器现在已经校准并可以使用了。

如果你想更详细地看到这个过程,你可以看一下共享的项目视频。

第 9 步:完成最后的安装

如果一切准备就绪,让我们构建自动浇水系统。当然,为此选择您的植物。在这个项目中,我决定同时在浇水系统中放置 3 株植物。

  • 我使用了一个储物盒来保护电子元件免受水的侵害。我用旧的焊接工具为管道和电线打了孔。
  • 我用了一些杆来固定水管。我将杆子固定在植物土壤中,并在适当的高度安装了水管作为洒水器。我用了一些电缆扎带来固定它。
  • 将土壤湿度传感器探头固定在土壤中。我建议将它放置在远离水管的地方,这样水就不会接触到探头。
  • 将水管的另一端固定到一桶水上,一切准备就绪,可以启动系统了!
加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论