littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于Arduino的家庭植物监控与自动浇水系统

项目简介

本项目基于Arduino开发,由Plant - Master和Plant - Monitor两部分构成。Plant - Master负责数据聚合、运行React应用、搭建MQTT代理,通过SSD1306显示屏与用户交互;Plant - Monitor连接土壤湿度、温度和湿度传感器,控制水阀和水泵。

项目的主要特性和功能

  • 数据收集与通信:借助MQTT协议,Plant - Master从Plant - Monitor收集土壤湿度、温度和湿度等数据。
  • 阈值监控与自动浇水:Plant - Master将收集的土壤湿度数据与设定阈值对比,必要时向Plant - Monitor发送指令控制浇水。
  • 信息展示:Plant - Master的SSD1306显示屏可显示设备状态和植物相关信息。
  • Web应用管理:Plant - Master托管用TypeScript和React编写的Web应用,用于管理植物阈值并查看数据。
  • 可扩展性:支持添加多个Plant - Monitor,便于同时监控多株植物。

安装使用步骤

硬件准备

  • 至少两个ESP32开发板,一个作Plant - Master,其余作Plant - Monitor。
  • 一个SSD1306显示屏。
  • 一个DHT传感器。
  • 一个或多个土壤湿度传感器(如DFRobot)。

软件安装

  • 安装VSCode作为开发IDE。
  • 安装PlatformIO。
  • 安装NodeJS用于运行Web应用。

配置WiFi

首次启动时,Plant - Master和Plant - Monitor分别创建plant - master - config(密码plantmaster)和plant - monitor - config(密码plantmonitor)接入点。连接相应网络,提供本地WiFi的SSID和密码。若要重置设置并清除NVM,长按Boot按钮10秒。

配置文件

根据硬件和引脚连接,修改config.json文件,该文件会在构建时由prepare_config.py脚本处理。

构建与上传代码

使用VSCode按钮

  • 构建:分别点击Build Plant - MasterBuild Plant - Monitor
  • 上传:分别点击Upload Plant - MasterUpload Plant - Monitor

使用命令行

  • Plant - Master
  • 构建:pio run -e plant - master -a 'runExtraScripts'
  • 上传:pio run -e plant - master -t nobuild -t upload
  • 上传文件系统镜像(Web应用和配置):pio run -e plant - master -t uploadfs
  • Plant - Monitor
  • 构建:pio run -e plant - monitor -a 'runExtraScripts'
  • 上传:pio run -e plant - monitor -t nobuild -t upload
  • 上传文件系统镜像(仅配置):pio run -e plant - monitor -t uploadfs

运行Web应用

plant - master - client目录下: - 开发模式:npm run dev - 构建并压缩:npm run build

系统运行

  • 通过Plant - Master的Web应用配置植物阈值。
  • Plant - Master定期检查Plant - Monitor的土壤湿度数据,根据阈值控制浇水。
  • 通过Plant - Master的Web应用查看植物数据。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】