littlebot
Published on 2025-04-14 / 0 Visits
0

【源码】基于STM32的温室监控系统

项目简介

GHMon 是一个可配置的低功耗固件,专为小型自动化温室控制和数据记录而设计。该项目支持基于 STM32F103、STM32F401 和 ATTiny402 的设备,提供了传感器、执行器和控制器之间的协调机制,具备调度、日志记录和简单的控制终端支持功能。

项目的主要特性和功能

  1. 传感器支持:借助 sensors/sensor_defs.h 文件定义传感器实现细节,可读取环境数据。
  2. 执行器控制:通过 actuators/actuator_defs.h 文件定义执行器实现细节,能控制温室设备。
  3. 控制器协调:利用 controllers/controller_defs.h 文件定义控制器实现细节,协调传感器与执行器操作。
  4. 日志记录:由 log/logfile.h 文件实现数据记录功能,支持日志缓冲区写入。
  5. 调度功能:支持定时任务调度,保证传感器、执行器和控制器操作按计划执行。
  6. 用户交互:通过按钮和 LED 提供简单交互界面,支持状态检查、日志写入、控制器运行和设备时间设置等。
  7. 串口终端:支持通过 UART 连接进行简单终端操作,便于调试和监控。

安装使用步骤

环境准备

确保已安装 PlatformIO 工具链。

配置项目

  1. config/instance 目录下创建或修改实例配置文件,包含 config.hadvanced.hsensor_defs.hactuator_defs.hcontroller_defs.hlogfile.h 等文件。
  2. 根据设备类型,在 pio_inis/ 目录下选择合适的 .ini 文件,或复制并修改现有文件以适配新设备。

编译与上传

  1. 使用 PlatformIO 编译项目:pio run
  2. 将固件上传到目标设备:pio run --target upload

使用设备

  1. 通过按钮和 LED 进行交互:
    • 短按按钮:唤醒设备并检查警告状态。
    • 长按按钮(2 次 LED 闪烁):强制写入日志缓冲区。
    • 长按按钮(3 次 LED 闪烁):强制运行控制器。
    • 长按按钮(4 次 LED 闪烁):设置设备时间为预设值(默认 12:00 PM)。
  2. 通过 UART 连接设备,使用串口终端进行调试和监控。

故障排除

若设备初始化或配置出错,LED 会以每半秒一次的频率闪烁。此时,可通过串口连接设备,查看详细错误信息(需在 config.h 中启用 USE_UART_OUTPUT)。

依赖库

  • uHALulib:作者自有的硬件抽象层和通用库。
  • FatFS:elmchan 的 FAT 文件系统库,用于日志记录功能。

以上库文件均包含在项目的 lib/ 目录中。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】