# BotanicalBuddy 需求: 智能盆栽管理系统 1. 环境全维度监测:实时、同步监测土壤湿度、环境温湿度、光照强度。 2. 智能预警通知:当任何监测数据超出用户设定的阈值时,系统自动向手机App推送报警信息。 3. 双向远程控制: · 手动控制:用户通过手机App远程手动控制水泵浇水、补光灯开关。 · 自动控制:系统根据预设阈值(如土壤过干)自动执行浇水或补光。 4. 双模式人机交互: · 远程交互:通过手机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 工具链按官方方式安装 ## 快速开始 1. 配置并编译 - `idf.py set-target esp32` - `idf.py build` 2. 烧录并查看日志 - `idf.py -p /dev/ttyUSB0 flash monitor` 3. 显示初始化 - 在 `app_main` 中调用:`ESP_ERROR_CHECK(start_lvgl_demo());` - 可选:`ESP_ERROR_CHECK(lvgl_st7735s_set_center_text("BotanicalBuddy"));` 4. 配网 - 按键触发模式:长按设备按键进入配网模式 - 常驻配网模式:上电自动进入配网模式 - 手机连接 `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 显示注册 - 方向/偏移可配置