亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于树莓派的自动化灌溉系统

发布时间:2021-08-20
分享到:

基于树莓派的自动化灌溉系统

发布时间:2021-08-20
分享到:

在本教程中,我将向您展示如何构建一个经济实惠的自动灌溉系统,这样您就不再需要手动给植物浇水了。该系统可用于室内植物、高架床,也可用于花园或更大绿地中的植物,因为连接植物的数量是可扩展的。

关于何时灌溉的决定不是根据计时器做出的,而是直接测量土壤湿度并在此基础上做出是否需要灌溉的决定。

该系统具有以下功能,可通过网络应用程序进行控制:

  • 以分钟、小时、日、周和月级别监控和显示时间序列数据
  • 设置应触发自动浇水的水位
  • 设置灌溉期间泵的工作时间
  • 用按钮手动激活灌溉
  • 在不同的传感器配置文件之间切换
  • 在深色和浅色主题之间切换

第 1 步:零件清单

  • NodeMCU ESP8266
  • 树莓派
  • 1个树莓派 SD 卡
  • 继电器
  • 电容式土壤湿度传感器
  • 水泵
  • 水族箱管和灌溉喷嘴

零件的数量取决于泵的数量。例如,在高架床上,通常有一个泵和一个传感器就足够了。但是,如果您有不同的盆栽植物,则它们都需要单独浇水,因此您必须为每个盆栽植物配备一个泵和传感器。

第 2 步:硬件架构

为了测量土壤湿度,NodeMCU ESP8266 微控制器读取电容传感器的模拟信号。然后将过滤和内插的测量值通过您的本地网络发送到 Raspberry Pi。您可以在此处决定是否触发与传感器关联的继电器。当继电器打开时,泵的回路关闭,植物能被浇水。

选择该架构是为了将泵逻辑和测量数据的记录分开。这使得可以使用 Raspberry Pi 控制多达 26 个泵(默认可用的 GPIO 引脚数量)。也不可能用树莓本身读取电容传感器的模拟信号,因为树莓只能处理数字信号。当然可以使用 MCP3008 和串行接口读取传感器,但这需要更多的引脚,而且设置不像以前那么干净。泵还单独连接到电源,其电路由继电器控制。所以也可以使用12V或更高的泵。

第 3 步:软件架构

对于软件架构,使用了 MERN Stack。该软件由一个带有 Express.js 的 Node.js 后端、一个 Mongo 数据库和一个 React 前端组成。C++ 脚本运行在 NodeMCU ESP8266 上,它将数据发送到后端的 REST 接口。数据在后端处理,在那里决定是否灌溉。此外,数据随后会存储在 MongoDB 中。对于前端,还可以通过 REST 从后端请求这些数据。

要安装完整的软件,请按照GitHub 上的说明进行操作。

第 4 步:3D打印外壳

我为 Raspberry Pi 和 NodeMCU 控制器设计并打印了一个磁盒。你可以在这里下载盒子的 STL 文件。

第 5 步:成品展示

如果您已正确安装硬件和软件,您现在应该能够在应用程序中看到您的第一个测量数据。

要在浏览器中调用该应用程序,您必须输入以下 URL:http://:5000。当然得换成树莓派的IP地址。现在,您可以在应用程序的首选项下输入您已将属于传感器的泵连接到的信号引脚。之后,您应该将容量传感器插入地面并设置最小土壤湿度值,在该值时 PIN 和继电器应被触发。设置其他首选项后,泵将根据您设置的首选项启动。如果您连接了多个传感器,它们会在上面作为选项卡列出。选择适当的选项卡以单独设置和监控所有传感器。

 

 

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论