首页 树莓派正文

用树莓派制作一款自动浇灌系统

云水 树莓派 2020-01-06 19:12:36 1404 0 树莓派树莓派应用

MAKER:Bobby Leonard/译:趣无尽 Cherry
如果你家里有养个花花草草什么的,可能会遇到小长假出去浪没有办法给花草浇水的困扰。下面介绍的这个自动灌溉系统不仅可以解决这个问题,你还可以将这些技术举一反三,用来DIY其他类似的自动化设备。

下面这个自动灌溉系统基于 Python 实现,可以通过无线网络采集传感器数据、记录数据并写入 Google Sheet,从天气网站 Darksky 获取降水预测并决定是否需要启动水泵进行灌溉,还能将数据推送到手机上。所有代码都在项目文件库中。
http://make.quwj.com/project/78

文中的 MicroPython 设备指代的是支持运行 Python 代码的一类微型设备,例如 WemosD1 mini、NodeMCU 等。它们负责从传感器采集数据和控制继电器,通过 HTTP 请求访问搭建在树莓派上的 Flask 服务器

材料清单

硬件:
Raspberry Pi(树莓派)3B ×1
NodeMCU ESP8266 开发板 ×1
Everything ESP Wemos D1 Mini×1
DFRobot电容式土壤湿度传感器×1
超声波传感器 – HC-SR04(通用)×1
继电器模块(通用)×1
电阻1k欧姆×1
DHT11温湿度传感器×1
光敏电阻×1
跳线(通用)×1
adboard" rel="noopener" target="_blank" style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: 600; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; color: rgb(21, 153, 98); text-decoration-line: none;">面包板(通用)×1
Android设备×1

软件:
Slack
Google Sheet
Darksky Weather API

工作原理


1、使用MicroPython设备读取传感器数据的示例。
2、使用树莓派运行的Python对传感器数据作出有用的分析。
代码示例包括:测量水位的距离,控制继电器(泵),土壤湿度(电容土壤湿度),温度和湿度(DHT11)以及使用光敏电阻的光照水平。
树莓派上运行的代码(文件库中提供下载)显示了如何发送推送通知,数据如何写入Google Sheet,从Darksky获取天气预报的数据以及如何使用Web的应用程序HTTP来监控MicroPython设备并与之交换数据。
3、构建一个代码框架,以便将来可以快速轻松地修改MicroPython项目。将MicroPython设置为子关系,Flask为主体,使其能够实现复杂的功能。此框架包括用于子项的标准boot.py(连接到WiFi,使用NTP设置时间)以及需要添加到主体Web应用程序以允许新设备连接的定义列表。

特性

MicroPython节点能够使用HTTP请求在它们之间传输信息,例如:一个扩展板获取了土壤湿度并向服务器报告,然后另一个扩展板请求该信息并读取它来决定是否运行泵。

关于节水问题,水泵控制器也能够从树莓派请求天气预报。当树莓派收到此请求时,它会请求Darksky获取接下来24小时的降水概率。水泵控制器再次使用该信息来决定是否运行泵,即如果在明天的浇水循环之前下雨,则不需要水泵运行。
我使用的是一个小型USB水族箱泵。它是一个潜水泵,如果它不在水里就会烧坏。为了防止这种情况,我将hcsr04超声波传感器放在水箱顶部,以测量到水顶的距离。如果水泵在低水位运行,MicroPython板将请求树莓派,然后树莓派将使用Slack向我的手机发送通知。

该项目是我以前项目的扩展,与该项目一样,所有传感器数据都保存到Google Sheet中,每个板子都有单独的工作表。

笔记

我编写的代码是支持连续运行的,例如,如果网络超时并导致异常停止电路板,电路板将会一直保持深度睡眠并重置直到它可以运行。这很好,但它让你无法在REPL中输入命令,并且更改扩展板上文件的唯一方法似乎是删除闪存并再次安装MicroPython,然后加载到编辑文件。

你需要将MicroPython文件中包含的IP地址更改为运行Flask服务器的任何机器的IP地址。
要使用Google Sheet,你需要按照以下说明操作:
https://gspread.readthedocs.io/en/latest/oauth2.html
要获取Darksky API密钥,请转到下面的链接并注册:
https://darksky.net/dev
要设置Slack,请访问此网站并注册,然后在手机上安装:
https://slack.com

MAKE 资源

1、NodeMCU DHT11温湿度传感器、光线传感器接线图。

2、土壤湿度传感器接线图。

3、WemosD1 水泵控制器系统接线图

代码资源

树莓派上运行的代码在项目文件库中可以下载。
http://make.quwj.com/project/78

rpi3pythonserver_py.py
树莓派上的 Flask 服务,运行于 Python3 环境下。

main_py_WemosD1.py
WemosD1 mini 上的水泵控制程序,用来控制继电器和 hcsr04 超声波传感器。

main_py_nodemcu_soil.py
NodeMCU上的土壤传感器驱动程序。

main_py_nodemcu_dht11.py
NodeMCU 上的温湿度传感器驱动程序。

http://www.quwj.com/2018/10/18/python-micropython-iot-framework-example-auto-irrigation.html


版权声明

1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)

本文链接:http://apod.cc/index.php/post/227.html

发表评论

评论列表(0人评论 , 1404人围观)
☹还没有评论,来说两句吧...