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

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

  • 树莓派3入门工具包

  • 12伏水泵

  • 12伏电源

  • 5伏继电器

  • 各种各样的跳线

  • 鳄鱼跳线

  • 硅胶管

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

  • 电是如何工作的

  • 如何使用继电器

  • 从微型电脑树莓派向继电器供电

  • 将12伏电源连接到继电器上

这是树莓派上GPIO别针的图片:
首先,我把继电器和树莓派连接起来,就像这样:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@reboot python3 /home/pi/Desktop/run/water_plant.py

然后保存它,按 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
译者: Yang

python树莓派 是什么_用树莓派和Python给你的植物浇水相关推荐

  1. 树莓派人脸识别_用树莓派进行简易人脸识别

    用树莓派进行简易人脸识别 前言 简易介绍树莓派 树莓派是尺寸仅有信用卡大小的一个小型电脑,您可以将树莓派连接电视.显示器.键盘鼠标等设备使用.树莓派能替代日常桌面计算机的多种用途,包括文字处理.电子表 ...

  2. 小学生python编程写游戏_小学生开始学Python,开发AI的首选编程语言:推荐一波Python书单...

    AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于全国计算机等级(NCRE)体系调整"的通知,决定自2018年3月起,在全 ...

  3. python人脸识别神器_教你用Python人脸识别自动开机,值得收藏

    这里将告诉您教你用Python人脸识别自动开机,值得收藏,具体操作方法:是不是厌烦了每次回家都要点击按钮打开电脑的操作? 你如果有看过我以前的推送,是不是厌烦了每次回家都要喊 "echo,t ...

  4. python怎么打日志_怎样调试 日志 python 代码

    展开全部 使用 pdb 进行调试 pdb 是 python 自带e5a48de588b662616964757a686964616f31333361306366的一个包,为 python 程序提供了一 ...

  5. c++中的引用和python中的引用_对比 C++ 和 Python,谈谈指针与引用

    作者 | 樱雨楼 引言 指针(Pointer)是 C.C++ 以及 Java.Go 等语言的一个非常核心且重要的概念,而引用(Reference)是在指针的基础上构建出的一个同样重要的概念. 指针对于 ...

  6. python常用库教程_这几个python常用的库你必须知道!

    随着人工智能时代的到来,python变得更加流行.受欢迎,功能强大.简单易学.容易入门.应用广泛等,掀起了学习热潮,现在越来越多人转行都会学习python语言.为了让大家快速掌握python,今天为大 ...

  7. python入门第一课_入门第一课 Python入门涉及的问题及简单示例

    很多初学者都在问:我想自学Python,该怎样入门?入门选择哪些书籍? 下面,我以自己的理解作出解答. 1.先说明大体的学习进度. Python确实入门较为容易,语法清晰易懂.一旦入了门再想提高就和其 ...

  8. python国内书籍推荐_这些都是Python官方推荐的最好的书籍

    转行学Python有前途吗?这个答案是肯定的,AI课程都已经进入小学教材了,未来Python趋势无疑是光明的,但是如何学习Python,很多Python小白都来问小编有什么适合的Python入门书籍推 ...

  9. python编码转换语句_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

最新文章

  1. 带着问题读CLR via C#(六)常量与字段
  2. 机器学习——人工神经网络之多层神经网络(多层与三层)
  3. Gradle 1.12用户指南翻译——第五十四章. 构建原生二进制文件
  4. nodejs missing script: dev_nodejs深入学习系列之v8基础篇
  5. 代码逻辑分析_致C++完美主义者:使用Visual Studio新工具分析你的代码
  6. 浪潮之巅-读书笔记一
  7. 字节跳动和OPPO:机器翻译等智能时代算法技术如何落地?
  8. lua 常用数据类型总结
  9. 【Android音视频开发】【007】SurfaceView实现H264播放器
  10. 计算机无法访问家庭组内打印机,Win7电脑无法连接共享打印机拒绝访问怎么办...
  11. 【VBA】VBA定时运行程序
  12. 通过命令符查看笔记本电脑的电池损耗
  13. jquery给input赋值 val()方法
  14. 如何用Visio画数据库实体关系图
  15. python读取excel【二】,循环行与列对应数据
  16. RabbitMQ问题排解
  17. 京东云与金山云合并!云计算行业真的要大洗牌吗?
  18. 微服务商城mall-swarm本地搭建
  19. 网络工程师日常工作总结
  20. MySQL索引的作用

热门文章

  1. 超大规模集成电路_纳米级超大规模集成电路芯片低功耗物理设计分析(二)
  2. endnote国标_Citavi 与 Endnote 在 Word 插入引用,哪个更适合你?
  3. php报表数据打印机,通过打印机打印带打印功能的php表
  4. mysql 查询 投影,MySql-连接查询
  5. 计算机文化基础重点知识归纳,计算机文化基础_第二章重点知识总结(考试必备!!!)...
  6. AngularJs 冷兵器杂谈
  7. 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
  8. nodejs MVC
  9. 实例应用 自定义页面taglib标签
  10. [人生百态]爱的样子