如何利用树莓派Zero实现自动室内园丁的设计

科技观察员

描述

通过本文接下来要介绍的这个项目,我想你再也不用担心家里的植物会干枯了。这个自动化的园丁永远不会忘记给你的植物浇水并提供人造阳光。

介绍

随着我们的生活如此忙碌,有时很容易忘记关注你口渴的室内植物,直到为时已晚,只剩下一团枯叶。我们不会不断更换这些植物,而是向您展示如何制作一个紧凑的、自动化的、由 Raspberry Pi 驱动的园丁来浇灌和点亮您的植物。这位园丁的记忆力无可挑剔,永远不会忘记给你的植物浇水。

连接电子设备

第 1 步

我们首先为园丁连接电子设备。该项目由 Raspberry Pi Zero W 控制。您不需要为该项目安装 wifi,因为代码运行在调度程序之外,但您也可以通过连接到智能手机 IoT 应用程序(如 Blynk)来扩展功能。

pYYBAGK_sw2AW4LFAAH72y5wIZI536.png

电子设备连接到我们为该项目设计的 3D 打印外壳上。两半都是用 PLA 打印出来的,并且有足够的空间来隐藏额外的接线。

poYBAGK_swmATIMVAAHNZ38sdqo416.png

第 2 步

为了给 12v 泵供电,我们尝试使用连接到 Raspberry Pi 上的 5v 输入的 12v 升压适配器。但是,我们注意到我们的 Raspberry Pi 电源无法输出足够的电流让泵电机运行。我们决定将 12v 升压适配器换成外部 12v 开关电源。您也可以使用 12v 电池组或 12v 壁式适配器。它需要在 12v 时输出约 3 A。

pYYBAGK_swWAPgfRAALYn3X-NLg154.png

第 3 步

接下来,将 USB 连接器从生长灯的末端移除,露出 5v 电源线和地线。红线直接焊接到 Raspberry Pi 上的 5v 输出引脚。

pYYBAGK_swGAUJUNAAKa6upPiNE451.png

第 4 步

生长灯的地线焊接到我们其中一个 N 沟道 MOSFET 的漏极(中间)引脚。源(右)引脚连接到 Raspberry Pi 上的地,栅极(左)引脚作为信号线连接到 Pi 上的 GPIO 引脚 20。运行时,将 GPIO 引脚 20 拉高将打开此配置中的灯。

poYBAGK_sv6AHux9AAMPiXhDt-s534.png

第 5 步

两根电线焊接到泵电机上的连接器上。然后将电机插入泵的槽中,电线穿过后面的一个小开口。其中一根电线直接连接到 12v 电源。

pYYBAGK_svqAVQraAANbzjxYKLY067.png

第 6 步

我们为具有类似配置的泵添加了 N 沟道 MOSFET。12v 电源地线直接连接到 Raspberry Pi 上的接地引脚。

排水管:泵的接地线。

来源:Raspberry Pin 上的接地引脚。

门:Raspberry Pi 上的 GPIO 引脚 12。

poYBAGK_svWALNrAAALX7HGyshs809.png

连接

焊接电子设备后,我们将松散的电线塞入外壳背面的开口中。外壳背面有几个孔,可用于将两个 M3 螺栓穿过以连接 Raspberry Pi。两个 M2.5 螺栓也用于将泵固定在外壳侧面。

poYBAGK_svGAYjb3AAL9-iHKgdM345.png

箱子有一个小切口,用于 5v 生长灯的杆。4 个 M4 螺栓用于连接外壳的两半,以便它们将阀杆夹在中间并将外壳固定在灯的一半左右。

poYBAGK_su6Ab9OLAAKA3nCylRA294.png

运行代码

在本文下方下载代码。

cd Automated-Gardener

第 1 步

用 vim 打开文件

apt-get install vim

vim gardener.py

第 2 步

按“i”进行编辑。如果您的信号线连接到 Raspberry Pi 上的不同引脚,请修改引脚变量。

LIGHT_PIN = 20

PUMP_PIN = 12

第 3 步

如果向下滚动到底部,您可以看到计划的设置位置:

# Turn water on every 30 minutes for 10 seconds

schedule.every(30).minutes.do(threaded, water, forLength=10)

# Other scheduling examples

#schedule.every().hour.do(threaded, light, forLength=300)

#schedule.every().day.at(“10:30”).do(threaded, light, action=GardenerAction.turnOn)

#schedule.every().day.at(“12:30”).do(threaded, light, action=GardenerAction.turnOff)

#schedule.every().monday.do(threaded, water, forLength=30)

#schedule.every().wednesday.at(“13:15”).do(threaded, light, forLength=30)

schedule.every(30).minutes.do(threaded, water, forLength=10) 每 30 分钟打开泵 10 秒。要更改计划,您可以取消注释一些计划示例,方法是删除# 行首的 并更改时间/日期。例如,如果我想在星期三下午 2:00 开灯 30 分钟,我会写:

schedule.every().wednesday.at(“14:00”).do(threaded, light, forLength=1800)

第 4 步

修改完gardener文件后,按esc 退出编辑模式,然后:wq 保存退出。在启动程序之前安装几个依赖项。

sudo pip install schedule

sudo pip install rpi.gpio

运行程序。

python gardener.py

第 5 步

按control-c 退出。通过运行获取当前工作目录:

pwd

第 6 步

复制路径,然后打开rc.local

sudo vim /etc/rc.local

按i。在 之前exit 0,添加:

python 《pwd output》/gardener.py &

按esc 然后:wq! 保存并退出。当您重新启动 PI 时,程序应该会启动!

连接泵管

测试代码后,我们用灯夹将园丁连接到花盆上。我们的园丁把它贴在水盘上,但你也可以把它贴在花盆的边缘。

pYYBAGK_suaAZOrgAAHXfoLdYkI712.png

切割两个硅管并将其连接到现有的管蠕动泵上。右边的一个放在靠近花盆的一杯水里,另一个放在植物的底部附近,因为我们的泵是从右向左流动的。您可能需要打开泵以确定水的流向。

poYBAGK_suKAOZNeAALZOHQZ5_U823.png

最后,确保插入 Raspberry Pi,打开 12v 电源,然后打开生长灯。

poYBAGK_st2AB4RsAAPn3u2OH7w307.png

打开APP阅读更多精彩内容

电子工程师必装软件(附AD封装库

值得收藏!用过都说好!

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分