查看: 5211|回复: 9

[项目] 使用树莓派制作一款自动浇灌系统

  [复制链接]
  • TA的每日心情
    擦汗
    2018-10-18 15:28
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2018-10-19 16:42:08 | 显示全部楼层 |阅读模式
    分享到:
    MAKER:Bobby Leonard/译:趣无尽 Cherry

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

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

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

    材料清单


    硬件:
    Raspberry Pi(树莓派) 3型号B×1
    NodeMCU ESP8266分线板×1
    Everything ESP Wemos D1 Mini×1
    DFRobot电容式土壤湿度传感器×1
    超声波传感器 – HC-SR04(通用)×1
    继电器模块(通用)×1
    电阻1k欧姆×1
    DHT11温湿度传感器×1
    光电阻×1
    跳线(通用)×1
    面包板(通用)×1
    Android设备×1

    软件:
    Slack
    Google Sheet

    Darksky Weather API

    工作原理
    2.jpg

    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中,每个板子都有单独的工作表。

    3.jpg

    笔记


    我编写的代码是支持连续运行的,例如,如果网络超时并导致异常停止电路板,电路板将会一直保持深度睡眠并重置直到它可以运行。这很好,但它让你无法在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

    4.jpg .

    MAKE 资源
    1、NodeMCU DHT11温湿度传感器、光线传感器接线图。
    5.jpg

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

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

    代码资源

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

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

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

    main_py_nodemcu_dht11.py
    NodeMCU 上的温湿度传感器驱动程序。
    游客,如果您要查看本帖隐藏内容请回复



    1.jpg
    回复

    使用道具 举报

  • TA的每日心情

    昨天 19:25
  • 签到天数: 2187 天

    连续签到: 2 天

    [LV.Master]伴坛终老

    发表于 2018-11-23 21:52:44 | 显示全部楼层
    支持一下,学习一下。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-9-18 23:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-3-29 22:30:18 | 显示全部楼层
    看看谢谢粉刺选哪个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-4-22 22:13
  • 签到天数: 28 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2019-7-31 22:50:59 | 显示全部楼层
    回复  看下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-9-17 09:14
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-9-10 11:57:52 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-12-15 13:07
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2019-12-15 13:20:41 | 显示全部楼层
    支持一下,学习一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-4-28 09:27:30 | 显示全部楼层
    求资源楼主哒哒
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 06:36 , Processed in 0.197918 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.