Raspberry Pi 自动浇灌网站
设置您的 Pi通过读取湿度传感器并在需要时浇水,自动照料室内植物。
故事
这篇文章从两个事实开始:
- 我喜欢杀死植物。
- 荷兰人在室内种植的东西非常好。
在阅读了有关植物在室内生长的能力之后,我开始思考自动化可能是我通往健康植物的途径。所以我决定建造最低限度的东西——得到一个植物、一个泵和一个水传感器。当水传感器说“这里没有水”时,使用泵将水放在那里。
我还决定通过 Raspberry Pi 运行它,以此作为与 RPi GPIO 交互的借口。
我就是这样做的!
材料:
- 树莓派 3
- 土壤湿度传感器
- 灵活的水线
- 5V 继电器
- 3-6V 微型微型潜水泵
- TOLI 120pcs 彩色杜邦线
- 5v 电源(任何 USB 电缆 + USB 壁式充电器
接线:
我做的第一件事是用 USB 电缆制作 5V 电源。使用旧的 iphone 数据线,我将 iphone 的一面切掉,取出一根红黑相间的电线。我在上面焊接了一些更坚固的电线,然后将其插入墙上的适配器。用电压表检查,这给了我 5V 输出。
现在是 GPIO 的时候了。
RPi 接线:
遵循此 GPIO 布局:
水传感器 – 将水传感器的正极插入引脚 2,负极插入引脚 6。将信号线(黄色)插入引脚 8。
继电器 – 将正极引线从引脚 7 插入继电器板上的 IN1。也将引脚 2 连接到 VCC,将引脚 5 连接到继电器板上的 GND。
泵 – 将泵连接到电源,在继电器模块 1 的插槽 B 和 C 之间运行黑色地线(当 RPi 向引脚 1 发送 0v 低电平信号时,这将关闭电路打开泵)。
只要您使用的是 Raspberry Pi 3,此图就应该可以捕获正确的 GPIO。未显示 RPi 的另一个电源。
硬件设置:
接线完成后,将软管连接到泵上(我用的是电工胶带),然后将其放入一罐水中。将软管的另一端连接到您的植物上。
现在插入所有电源(并确保您的 Raspberry Pi 正在运行某个版本的操作系统,就像这里的这个)。
软件
注意:如果您完全按照上述方式进行接线,下一节中的代码将无需修改即可运行。这个设置有两个部分。一个文件控制所有 GPIO 和电路逻辑,另一个运行本地 Web 服务器。
所有文件:
- 水.py
- auto_water.py
- web_plants.py
- main.html
GPIO 脚本
让我们从控制GPIO的代码开始。这需要 RPi.GPIO python 库,它可以安装在你的树莓派上,如下所示:
$> python3.4 -m pip install RPi.GPIO
安装后,您应该能够使用此处找到的 water.py 脚本。您可以通过运行交互式 Python 会话来测试它是否正常工作,如下所示:
$> python3.4>>> import water>>> water.get_status()>>> water.pump_on() 这应该打印一个关于你的传感器是湿还是干的声明 (get_status()),并打开泵 1s。如果这些都按预期工作,那么您就处于良好状态。
此时您还可以校准水传感器。如果您的植物状态不正确,请尝试在潮湿土壤中转动传感器上的小螺丝(电位器),直到第二个指示灯亮起。
Flask 网络服务器
这个项目的下一个方面是设置网络服务器。可以在名为 web_plants.py 的文件中找到此代码。这个 python 脚本运行一个网络服务器,支持上述脚本中的各种操作。
您需要将 web_plants.py 保存在与上述 water.py 和 auto_water.py 相同的目录中。您还需要一个名为“templates”的子目录,其中包含此处名为 main.html 的 html 文件。
你需要安装flask和psutil如下:
$> python3.4 -m pip install flask $> python3.4 -m pip install psutil
确保将 web_plants.py 文件与上面的 water.py 脚本放在同一目录中。您还需要创建一个名为模板的子目录,并将 main.html 放在模板目录中。现在运行以下命令来启动您的 Web 服务器:
$> sudo python3.4 web_plants.py 现在,如果您导航到 RPi 的 IP 地址,您应该会看到如下所示的 Web 仪表板:
尝试单击按钮以确保一切正常!如果是这样,您就可以参加比赛了。这是我在烧瓶 + GPIO 上遵循的另一个很棒的教程
自动运行网站
最后,您可能希望网站在 RPi 开启时自动启动。这可以使用名为 cronjob 的工具来完成,该工具将您的网站注册为启动命令。
输入:
$> sudo crontab -e
这将打开一个文本编辑器。添加一行内容(并确保在下面留下一个空行):
@reboot cd <你的 web_plants 路径>;须藤 python3.4 web_plants.py
现在当你重启你的 pi 时,它应该会自动启动服务器。
阅读更多详细信息:Raspberry Pi 通过网站自动给植物浇水
制造工艺
- 使用 DS18B20 读取温度 |树莓派 2
- Raspberry Pi 控制的鱼菜共生
- 使用 RASPBERRY PI 测量温度
- 使用 Moteino 和 Raspberry Pi 监测室温
- 使用 Raspberry Pi 监测温度
- Raspberry Pi 上的 1 线温度传感器 DS1820(直接 GPIO)
- 超声波传感器 (HC-SR04) + Raspberry Pi
- 带 RPi 的线跟踪传感器
- 用树莓派检测闪电
- Raspberry Pi 上没有模拟输入的模拟传感器
- 带有 t cobbler plus 的 Raspberry pi 2 水报警器
- ThingSpeak 温度监视器与 Raspberry Pi