项目简介
本项目基于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 - Master
和Build Plant - Monitor
。 - 上传:分别点击
Upload Plant - Master
和Upload 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】