Wang Beihong cf3634bebb feat:重构空气温度处理并改进UI屏幕切换
- 从vars.c和vars.h中移除了空气温度整型变量及其相关的获取/设置函数
- 更新了FlowGlobalVariables枚举,移除了空气温度整型常量
- 修改了main.c中的UI任务,实现了每3秒切换屏幕的机制
- 清理了app_main函数,移除了空气温度整型的设置,仅保留字符串表示形式
2026-03-06 22:54:22 +08:00

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:控制水泵与光照开关(高电平有效)

功能特性

  • 长按按键进入配网模式
  • 支持两种配网策略:按键触发 / 常驻配网
  • 设备开启 SoftAPESP32-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 显示注册
  • 方向/偏移可配置
Description
智能盆栽系统
Readme 325 KiB
Languages
C 99.7%
CMake 0.3%