用树莓派和Python给你的植物浇水

我想指出,我绝不是电子学专家。如果你让我制作一个电路图或者解释某件电子产品工作原理的细节,我会一无所知。在生活中,我对电力的工作原理有了基本的了解,我只是胡乱摆弄了一下电子元件就完成了这个工程。话虽如此,当使用电子设备,尤其是使用外部电源时,应始终保持谨慎。在尝试使用电子产品和电力设备时,务必小心谨慎!

用树莓派和Python给你的植物浇水


我不擅长照顾植物,主要是因为我经常忘了给它们浇水。于是我开始想,“我敢肯定有人已经找到了一种方法来自动化这个过程。”事实证明,很多人都有。也就是用Arduino或树莓派自动给植物浇水。在这篇文章中,我将讲述我如何使用树莓派和Python来自动浇灌我的植物。以下是我在这个工程中使用的组件:

  • 树莓派3入门工具包
  • 12伏水泵
  • 12伏电源
  • 5伏继电器
  • 各种各样的跳线
  • 鳄鱼跳线
  • 硅胶管

一旦我拥有了所有我需要的组件,就到了做一些研究的时候了。以下是我用来连接电子设备时参考的资源,并对它们的工作原理有了基本的了解:

  • 电是如何工作的
  • 如何使用继电器
  • 从微型电脑树莓派向继电器供电
  • 将12伏电源连接到继电器上
用树莓派和Python给你的植物浇水

首先,我把继电器和树莓派连接起来,就像这样:

用树莓派和Python给你的植物浇水


红线(母对母)从继电器板上的JD_VCC引脚引到树莓派上的5V引脚(引脚2)。橙色导线(母对母)从继电器板上的VCC引脚引到树莓Pi上的3.3V引脚(引脚1)。

用树莓派和Python给你的植物浇水


通过连接这些电线,我们给了继电器板能量。为了实际控制单个继电器,我们需要将继电器板上的另外两个插脚连接到Raspberry Pi、GND(接地)插脚和IN1插脚上。

用树莓派和Python给你的植物浇水

黑色的电线(母对母)是接地线,它从继电器板上的GND引脚连接到Raspberry Pi上的任何地线(我用的是34号引脚)。白线(母对母)从继电器板上的IN1引脚引到树莓派上的12引脚。白线是允许我们打开和关闭继电器与代码。

用树莓派和Python给你的植物浇水


你可以连接继电器和树莓派,如果你使用我提供的代码,一定要记得换密码。将继电器板和树莓派连接好后,接着将12伏适配器连接到单个继电器上。不要把12V的电源适配器连接到墙上的电源插座上,直到你把所有的东西都连接好之后,你才应该这样做。

用树莓派和Python给你的植物浇水


12伏电源有一个方便的适配器,你可以用它来连接电线。我把红色电线(公对公)连接到适配器的正号上,把棕色电线(公对公)连接到适配器的负号上。然后我把一个鳄鱼夹(母对公)加到棕色的金属丝上。

用树莓派和Python给你的植物浇水

继电器板有四个独立的继电器,每个继电器有三个输出,你可以在其中拧紧电线。中间的输出是你想要连接外部电源的正引线的地方,而左边的输出是你想要连接你想要供电的设备的正引线的地方。这对于板上的所有继电器都是一样的。

用树莓派和Python给你的植物浇水


从12伏适配器,把红色电线(正/电源)连接到中间的继电器输出。然后,在继电器最左边的输出端接上一根新的橙色电线(公对公),并在橙色电线的末端接上一个鳄鱼夹(母对公)。

用树莓派和Python给你的植物浇水

用树莓派和Python给你的植物浇水

用树莓派和Python给你的植物浇水


现在我们只需要把鳄鱼夹连接到水泵上。无论你以何种顺序将鳄鱼夹连接到泵上,你所做的只是设置水流。

我安装水泵的方式是,我想让水从左向右流动,所以我把黑色的鳄鱼夹和旁边有一个红点的别针连接起来,把另一个鳄鱼夹和水泵上的别针连接起来。如果我把鳄鱼夹的连接方式反过来,水就会从右向左流动。

用树莓派和Python给你的植物浇水

用树莓派和Python给你的植物浇水


水从左管流入,进入泵,从右管流出,然后进入植物最后,我们来看看我真正擅长的部分,代码。为了与树莓派上的GPIO交互,我使用了gpiozero库。它真的很容易使用,并抽象出了许多低层操作,你通常需要学习,以开始与GPIO引脚交互。你可以在这里找到相关文档的链接。在我们真正开始编写代码之前,您必须将树莓派连接到监视器、鼠标和键盘,或者您可以通过SSH连接到树莓派。一旦你登录到你的树莓派,导航到你的桌面,并创建一个名为“run”的文件夹。在“run”里面,你会有另一个叫做“classes”的文件夹。现在在“classes”文件夹中,创建一个名为"Hardware.py"的文件,它应该是这样的:在这个文件中,我只定义了一个名为Relay的新类,它继承自OutputDevice类。接下来,在“classes”文件夹中,创建一个名为“TimeKeeper.py”的新文件。应该像下面这样:

用树莓派和Python给你的植物浇水


本质上,这个类的目的是记录当前时间和我们的植物最后一次浇水的时间。“Harware.py”和“TimeKeeper.py”都在“classes”文件夹中。然后我创建了一个名为“water_plant.py”的新文件。我把它放在“classes”文件夹之外。 "water_plant.py"文件看起来是这样的:

用树莓派和Python给你的植物浇水

你可以随意更改“WATERING_TIME”和“SECONDS_TO_WATER”变量的值。第一个变量决定一天中的什么时候植物应该收到水,而第二个变量决定植物收到水的时长。 我还设置了电子邮件提醒,这样当你的植物浇水时,你就会收到一封电子邮件,每周五还会收到一封电子邮件,提醒你查看水位。默认情况下,我已经禁用了这些提醒,所以程序在启动时不会崩溃,但如果你想启用它们,你必须做三件事: 1)必须更改第26行和第27行来包含您的Gmail和密码 2)必须取消第63、65和68行注释 3)必须到这里,用你想要接收提醒的Gmail登录,并切换到“on”,否则当你尝试用你的Gmail帐户发送电子邮件时,你会收到一个错误提示。同样重要的是,电子邮件提醒只适用于Gmail帐户。 现在所有的文件都设置好了,你应该有如下目录树结构:

用树莓派和Python给你的植物浇水

你可以把这个“run”文件夹放在树莓派的任何地方,但我只是决定把它放在桌面上。最后,当我们想要运行“water_plant”脚本时,我想让脚本在我们打开树莓派时运行,而不是在每次我们想要运行树莓派的时候都将它连接到显示器上,这样我们就可以关闭树莓派并将它移动到任何地方。一旦我们打开它,我们就不需要SSH到树莓派或将它连接到监视器来运行脚本。为此,我们需要使用“crontab”命令。如果你打开树莓派上的一个终端窗口,要么把它连接到显示器上,要么把它转到显示器上,然后输入以下命令:

sudo crontab -e你应该看到类似这样的东西:

用树莓派和Python给你的植物浇水

在这个文件中,你要添加以下代码片段:


<code>@reboot python3 /home/pi/Desktop/run/water_plant.py/<code>

然后保存它,按 CTRL+X → Y → Enter本质上,我们只是告诉树莓派“嘿,无论何时你重启,在桌面上运行‘run’文件夹内的python脚本‘water_plant.py’”。如果你没有把“run”文件夹放在你的桌面上,只需更新你放置“water_plant.py”脚本的路径。你可以在这里查看完整的代码,或者你可以用下面的命令克隆存储库:git clone https://github.com/AlanConstantino/rpi-plant-project.git就是这样!现在你应该有一个工作的树莓派,每24小时浇灌你的植物!它甚至会在你的植物浇水的时候给你发邮件提醒,以及每周五提醒你检查水位。


英文原文:https://blog.alanconstantino.com/articles/water-your-plant-using-a-raspberry-pi-and-python.html


分享到:


相關文章: