基于FireBeetle 2 ESP32-C5的智能植物光照系统——物联网农业实践

在家庭种植和小型温室场景中,植物生长环境的光照、温湿度等参数对植物生长状态影响显著。本文将介绍一个基于FireBeetle 2 ESP32-C5开发的智能植物光照控制系统,该系统能够自动监测环境参数并智能调节光照,帮助植物在最佳环境中生长。

项目概述

本系统以FireBeetle 2 ESP32-C5为控制核心,集成了光照传感器、温湿度传感器(DHT11)、土壤湿度传感器等感知设备,以及WS2812 LED灯带作为光照输出设备。通过模块化设计实现了环境监测、光照智能控制、数据展示和远程管理等功能,具体特点包括:

  • 实时监测光照强度、环境温湿度、土壤湿度等参数
  • 支持自动和手动两种光照控制模式,可模拟植物不同生长阶段的光照需求
  • 本地OLED屏幕显示关键数据,同时提供Web页面实现远程监控与控制
  • 具备日志记录功能,便于追溯环境变化和系统操作

硬件设计

核心组件清单

组件 型号/规格 用途
主控 ESP32开发板 系统控制核心
光照传感器 模拟量输出 检测环境光照强度
温湿度传感器 DHT11 检测环境温度和湿度
土壤湿度传感器 模拟量输出 检测土壤湿度
显示设备 12864 OLED屏幕(I2C) 本地数据展示
光照设备 WS2812 LED灯带(24灯珠) 提供植物生长所需光照

引脚连接

系统引脚定义在Config.h中集中管理,主要连接如下:

cpp 复制代码
// 引脚定义(与硬件接线一致)
#define Moisture_Pin A4    // 土壤湿度传感器 AO 引脚
#define LED_PIN A3         // NeoPixel LED 数据引脚
#define LIGHT_SENSOR_PIN A2// 光照传感器 AO 引脚
#define DHT_PIN A1         // DHT11 数据引脚
#define LED_COUNT 24       // LED 灯珠数量

// OLED 配置
#define SCREEN_WIDTH 128   // OLED 宽度(像素)
#define SCREEN_HEIGHT 64   // OLED 高度(像素)
#define OLED_SDA 9         // OLED SDA 引脚
#define OLED_SCL 10        // OLED SCL 引脚

软件架构

系统采用模块化设计,各功能模块职责清晰,便于维护和扩展。主要模块包括:

核心模块介绍

  1. 配置模块(Config.h/.cpp)

    系统配置中心,定义全局常量、引脚映射、全局变量和通用工具函数,集中管理WiFi、NTP等配置参数。

  2. 传感器模块(SensorModule.h/.cpp)

    负责所有传感器的数据采集与处理,包括:

    • 初始化传感器设备
    • 定时读取光照、温湿度、土壤湿度数据
    • 进行数据校验和异常判断(如温度过高/过低警告)

    核心代码示例:

    cpp 复制代码
    // 读取所有传感器数据
    void readSensors() {
      // 读取光照传感器
      int lightValue = analogRead(LIGHT_SENSOR_PIN);
      currentLux = lightValue;
      
      // 读取温湿度传感器
      float temp = dht.readTemperature();
      float humi = dht.readHumidity();
      if (!isnan(temp) && !isnan(humi)) {
        currentTemp = temp;
        currentHumidity = humi;
      }
      
      // 读取土壤湿度并转换为百分比
      currentSoilMoisture = analogRead(Moisture_Pin);
      soilMoisturePercentage = constrain(100 - map(currentSoilMoisture, 1000, 3500, 0, 100), 0, 100);
    }
  3. 光照控制模块(LightControlModule.h/.cpp)

    实现光照智能控制逻辑,支持:

    • 自动模式:根据时间调度表自动调节光照参数
    • 手动模式:提供生长、开花、育苗三种预设模式
    • 基于环境光强度动态调整LED亮度

    光照调度表示例:

    cpp 复制代码
    LightSchedule schedules[] = {
      { 6, 8, 100, 50, 30, "Early morning" },
      { 8, 12, 255, 150, 100, "Morning" },
      { 12, 14, 200, 200, 150, "Noon" },
      { 14, 18, 255, 180, 120, "Afternoon" },
      { 18, 20, 150, 100, 80, "Evening" },
      { 20, 6, 0, 10, 5, "Night" }
    };
  4. 显示模块(OledDisplayModule.h/.cpp)

    控制OLED屏幕显示系统状态和环境数据,包括:

    • 启动画面显示
    • 实时更新传感器数据
    • 显示系统时间和运行状态
  5. 网络与Web服务模块(WiFiNtpModule.h/.cpp & WebServerModule.h/.cpp)

    实现网络连接和远程控制功能:

    • WiFi连接管理和自动重连
    • NTP时间同步
    • Web服务器提供HTTP接口和控制页面
  6. 日志模块(LogModule.h/.cpp)

    通过SPIFFS文件系统实现日志记录功能,包括:

    • 系统事件和传感器数据记录
    • 日志读取和清空操作
    • 日志条目数量限制

系统工作流程

  1. 初始化阶段:系统启动后依次初始化各模块,包括传感器、OLED屏幕、WiFi和NTP服务、LED灯带等,并显示启动画面。

  2. 运行阶段

    • 按5秒间隔读取传感器数据并进行异常判断
    • 按2秒间隔更新OLED显示内容
    • 按1分钟间隔在自动模式下更新光照参数
    • 维持WiFi连接,提供Web服务支持远程访问
  3. 光照控制逻辑

    • 自动模式下根据当前时间匹配光照调度表,结合环境光强度动态调节RGB亮度
    • 手动模式下响应Web指令切换预设模式或调整亮度参数

远程控制实现

系统通过Web服务器提供远程监控和控制界面,主要功能包括:

  • 查看实时环境数据(光照、温湿度、土壤湿度)
  • 切换光照模式(自动/生长/开花/育苗)
  • 手动调节RGB灯珠亮度
  • 查看和清空系统日志

Web服务器路由配置:

cpp 复制代码
// 配置Web服务器路由
server.on("/", handleRoot);         // 根路径,显示控制页面
server.on("/mode", handleMode);     // 处理光照模式切换
server.on("/setbright", handleBright); // 处理亮度调节
server.on("/clearlog", handleClearLog); // 处理日志清空
server.onNotFound(handleNotFound);  // 处理404

总结与扩展

本项目实现了一个功能完整的智能植物光照控制系统,通过模块化设计保证了代码的可维护性和可扩展性。实际使用时,可根据具体植物品种的生长需求调整光照调度表和传感器阈值。

未来可扩展方向:

  1. 增加浇水控制模块,实现自动灌溉
  2. 集成MQTT协议,接入智能家居系统
  3. 添加数据历史曲线展示功能
  4. 实现多设备联动控制

通过这个项目,不仅可以为植物提供适宜的生长环境,还能深入学习ESP32开发、传感器应用、Web服务等物联网相关技术,是一个非常好的实践案例。

项目开源地址:https://gitee.com/akdxxdk/Plant-Lighting-Control-System/tree/master/PlantLightSystem

相关推荐
F133168929571 天前
5030A 芯片 24V 转 5V 15A 大电流快充选型
网络·单片机·嵌入式硬件·物联网·汽车
凯禾瑞华养老实训室1 天前
产教融合新抓手:智慧健康养老服务与管理实训室报价及人才培育路径
大数据·人工智能·物联网·ar·vr·智慧健康养老服务与管理
Deepoch1 天前
中国具身智能三大路径:极限挑战、柔性操作、普惠赋能,竞合共生
大数据·人工智能·物联网·机器人·具身模型·deepoc
亿道电子Emdoor1 天前
【Arm】MDK查看语句的执行累积时间和次数
stm32·单片机·物联网
Tel199253080041 天前
CCD相机同步外触发拍照抓拍识别高速脉冲计数器信号采集模块
单片机·数码相机·物联网·自动化·工业自动化·仪器仪表
乐迪信息1 天前
乐迪信息:AI摄像机识别煤矿出入井车辆数量异常检测
大数据·运维·人工智能·物联网·安全
Wpa.wk1 天前
硬件环境配置-两台电脑进行局域网构建
物联网·microsoft·电脑·信息与通信·局域网构建
盈创力和20071 天前
工业物联网下的智能安全防线:基于以太网的多参量传感器设计与应用
物联网·气体传感器·以太网多参量传感器·智能环境监测终端·双气体模组·三十四种组合可定制
珠海西格电力1 天前
零碳园区边缘计算节点规划:数字底座的硬件部署与能耗控制方案
运维·人工智能·物联网·能源·边缘计算
DBA小马哥1 天前
Oracle迁移金仓全攻略:工业IOT场景下的易用性与安全保障
数据库·物联网·安全·oracle