d532d037ab0f478674fe28eda3b8837028b9e3cf
BotanicalBuddy
需求: 智能盆栽管理系统
- 环境全维度监测:实时、同步监测土壤湿度、环境温湿度、光照强度。
- 智能预警通知:当任何监测数据超出用户设定的阈值时,系统自动向手机App推送报警信息。
- 双向远程控制: · 手动控制:用户通过手机App远程手动控制水泵浇水、补光灯开关。 · 自动控制:系统根据预设阈值(如土壤过干)自动执行浇水或补光。
- 双模式人机交互: · 远程交互:通过手机App查看实时数据、历史曲线和进行控制。 · 本地交互:通过LCD屏幕现场查看系统状态与关键数据。
基于 ESP-IDF 的植物助手项目,当前已集成:
- Wi-Fi 配网组件(wifi-connect):手机连接设备热点后通过网页完成路由器配置
- LCD 显示组件(lvgl_st7735s_use):基于 LVGL 驱动 ST77xx SPI 屏并显示界面
- I2C 传感器组件(i2c_master_messager):统一读取 BH1750 / AHT30 数据
- IO 外设控制组件(io_device_control):控制水泵与光照开关(高电平有效)
功能特性
- 长按按键进入配网模式
- 支持两种配网策略:按键触发 / 常驻配网
- 设备开启 SoftAP(
ESP32-xxxxxx)+ Captive Portal - 手机访问
http://192.168.4.1完成 Wi-Fi 配置 - 支持清除已保存 Wi-Fi 参数并重新配网
- 串口中文状态日志,便于调试和现场维护
- 支持 ST77xx SPI LCD 显示(LVGL)
- 支持方向/偏移参数化配置,便于后续适配不同屏幕
- 支持水泵(GPIO1)与光照(GPIO10)控制接口
目录结构
main/:应用入口(app_main)components/wifi-connect/:配网组件实现与文档README.md:组件说明USER_GUIDE.md:用户操作手册QUICK_POSTER.md:张贴版快速指引BLOG.md:博客草稿
components/lvgl_st7735s_use/:LCD 显示组件(LVGL + ST77xx)README.md:组件说明与调参指南
components/i2c_master_messager/:I2C 传感器管理组件README.md:传感器采集与配置说明
components/io_device_control/:IO 外设控制组件README.md:水泵/光照控制接口说明
开发环境
- Linux
- ESP-IDF
v5.5.2(建议) - Python 与 ESP-IDF 工具链按官方方式安装
快速开始
- 配置并编译
idf.py set-target esp32idf.py build
- 烧录并查看日志
idf.py -p /dev/ttyUSB0 flash monitor
- 显示初始化
- 在
app_main中调用:ESP_ERROR_CHECK(start_lvgl_demo()); - 可选:
ESP_ERROR_CHECK(lvgl_st7735s_set_center_text("BotanicalBuddy"));
- 在
- 配网
- 按键触发模式:长按设备按键进入配网模式
- 常驻配网模式:上电自动进入配网模式
- 手机连接
ESP32-xxxxxx - 打开
http://192.168.4.1 - 选择路由器并输入密码提交
调试建议
- 若出现“按键未按下却进入配网”,通常是按键引脚与 LCD/外设复用导致电平抖动。
- 可在
WiFi Connect配置中调大:WIFI_CONNECT_BUTTON_STARTUP_GUARD_MS(建议 8000~10000)WIFI_CONNECT_BUTTON_RELEASE_ARM_MS(建议 300~500)
- 若硬件允许,优先给配网按键使用独立 GPIO,避免与屏幕复位脚复用。
- 若使用常驻配网模式,可不依赖按键触发(适合按键与 LCD 复位脚复用场景)。
当前状态
项目已完成第一版配网闭环:
- 配网入口
- 路由连接
- 状态显示
- 清除配置
- 中文日志与文档
并完成 LCD 显示链路:
- SPI 屏初始化
- LVGL 显示注册
- 方向/偏移可配置
Description
Languages
C
99.7%
CMake
0.3%