跳转到内容

Arduino 温室灌溉与通风联控提示词范例

接手一套 Arduino UNO R4 WiFi 小型温室控制器。目标不是单独读取传感器,
而是让土壤湿度、空气温湿度和水箱液位共同驱动灌溉泵与通风风机,
在断网情况下仍能安全自动运行。
1. 项目配置
控制板:Arduino UNO R4 WiFi
空气传感器:SHT31,I2C
光照传感器:BH1750,I2C
土壤湿度:电容式探头,经 ADC 采样
执行器:12V 水泵和风机,经 MOSFET/继电器驱动并带续流保护
保护输入:水箱低液位浮球、手动急停、自动/手动模式开关
联网:Arduino Cloud 或项目既有 MQTT 服务,每 10 秒上报一次状态
2. 现场动作
先用干燥土和饱和湿土完成探头两点标定,将 ADC 原始值换算为 0-100%。
土壤湿度低于 35% 且水位正常时启动灌溉,每次最多运行 20 秒;停止后
等待 60 秒让水分扩散再复测。湿度达到 45%、水位过低、急停动作或
累计泵运行超过 60 秒时必须停泵并锁定告警。
温度高于 30°C 启动风机,降到 27°C 后停止。使用滞回和最短启停间隔,
避免执行器在阈值附近频繁动作。传感器连续三次读数失败或超出物理范围,
对应控制回路进入安全状态并保留故障码,不能用上次读数继续自动控制。
网络中断时继续执行本地控制并缓存最近 60 条状态;网络恢复后只补发
带时间戳的状态摘要,不重放已经过期的远程动作。远程手动命令必须有
5 分钟超时,到期自动回到自动模式。
3. 工程边界
- 不得直接用 Arduino 引脚驱动水泵、风机或任何感性负载;
- 不得控制市电设备,本项目仅允许使用隔离的 12V 直流负载;
- 未确认水位、急停和驱动极性前不得启动执行器;
- 不得把传感器断线解释为 0% 湿度并持续灌溉;
- 不得把 Wi-Fi 或云端可用性设为本地安全控制的前置条件;
- 不得在代码中写入真实 Wi-Fi、MQTT 或 Arduino Cloud 密钥。
4. 验收
分别测试干土、湿土、高温、低水位、传感器断线、断网和远程手动超时。
连续运行 24 小时,记录泵/风机启停次数、累计运行时间、最大控制延迟、
传感器失败次数和网络重连时间。最终给出接线、标定数据、状态机、
安全联锁、日志证据和无法由软件确认的供电与负载风险。