基于土壤湿度控制继电器的 Wio Terminal 实战指南(IoT-For-Beginners 自动化植物浇水项目)

基于土壤湿度控制继电器的 Wio Terminal 实战指南(IoT-For-Beginners 自动化植物浇水项目) 基于土壤湿度控制继电器的 Wio Terminal 实战指南IoT-For-Beginners 自动化植物浇水项目【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners导读本文以 IoT-For-Beginners 开源课程中「自动化植物浇水」一课2-farm/lessons/3-automated-plant-watering的 Wio Terminal 硬件章节为核心完整讲解如何为 Wio Terminal 外接 Grove 继电器并通过土壤湿度传感器读数自动控制继电器的开关。读完本文你将掌握继电器接线方法、digitalWrite数字输出控制原理、基于阈值450的自动浇水判断逻辑以及如何用 PlatformIO 构建并烧录完整固件。硬件准备认识 Grove 继电器本实验使用的继电器是 Grove 继电器它属于常开型normally-open继电器当继电器没有收到控制信号时输出回路处于断开状态。该继电器最大可承载250V / 10A的输出电路足以驱动多数市电设备例如水泵等灌溉硬件。继电器是数字执行器digital actuator与 Wio Terminal 的数字引脚相连。在上一课土壤湿度检测中Wio Terminal 的模拟/数字混合端口已被土壤湿度传感器占用因此继电器需接入另一个端口——I²C 与数字混合端口。从原理上看继电器内部是一个电磁铁控制电路通电后电磁铁产生磁力拉动杠杆闭合输出回路中的触点控制电路断电后触点弹开、输出回路断开。这也是为什么继电器工作时会听到清脆的「咔嗒」声。低功耗的 IoT 开发板3.3V/5V 输出即可驱动电磁铁而输出回路却能承载大功率设备——这正是「低功耗设备控制高功率外设」的经典方案详细背景可参阅本课主文档 README.md。第一步连接继电器任务完成继电器与 Wio Terminal 的物理接线。取一根 Grove 连接线将一端插入继电器上的插座接口有防反设计只能以一个方向插入在 Wio Terminal 断开电脑或其他电源的情况下将 Grove 线另一端插入 Wio Terminal 屏幕朝向你时的左侧 Grove 插座土壤湿度传感器保持连接在右侧插座不动若土壤湿度传感器尚未插入土壤上一课的遗留状态请将其插入泥土中。⚠️ 注意左侧/右侧的判断以「正对屏幕」为准且务必在断电状态下插拔 Grove 线避免带电操作损坏端口。第二步编程驱动继电器数字输出继电器无需额外库——它是纯数字执行器只需向对应引脚发送**高电平3.3V**开启、**低电平0V**关闭。借助 Arduino 内置函数digitalWrite即可完成控制。前提在 VS Code 中打开上一课创建的soil-moisture-sensorPlatformIO 项目本文所有代码都基于该项目扩展。配置引脚为输出模式在setup函数末尾追加以下代码将 I²C/数字混合端口配置为输出引脚以便向继电器输出电压pinMode(PIN_WIRE_SCL, OUTPUT);PIN_WIRE_SCL即 Wio Terminal 上 I²C/数字混合端口的引脚编号。编写继电器开关测试代码在loop函数末尾最后一个delay之后追加以下代码验证继电器是否工作digitalWrite(PIN_WIRE_SCL, HIGH); delay(500); digitalWrite(PIN_WIRE_SCL, LOW);这段代码向继电器所在引脚写入高电平将其开启等待 500ms半秒再写入低电平将其关闭。构建并烧录在 PlatformIO 中构建并上传代码到 Wio Terminal。上传成功后继电器会每 10 秒循环开关一次开关之间间隔半秒——你会听到继电器「咔嗒、咔嗒」的切换声同时 Grove 板载 LED 在继电器开启时点亮、关闭时熄灭。第三步根据土壤湿度自动控制继电器继电器工作正常后即可接入上一课读取的土壤湿度数据实现「土壤干燥 → 自动浇水」的核心逻辑。阈值判断逻辑删除测试用的 3 行开关代码替换为如下内容if (soil_moisture 450) { Serial.println(Soil Moisture is too low, turning relay on.); digitalWrite(PIN_WIRE_SCL, HIGH); } else { Serial.println(Soil Moisture is ok, turning relay off.); digitalWrite(PIN_WIRE_SCL, LOW); }逻辑说明soil_moisture来自土壤湿度传感器analogRead(A0)读取范围 0–1023读数大于 450时判定土壤过干向继电器输出高电平开启接通水泵回路浇水读数小于等于 450时判定湿度正常输出低电平关闭继电器。 注意极性电容式土壤湿度传感器测得的是土壤电容土壤越湿模拟电压读数越低与直觉相反。重新构建并观察串口输出再次构建并上传代码然后用串口监视器serial monitor观察。先在干燥土壤中测试再浇水观察数值变化预期输出类似Soil Moisture: 638 Soil Moisture is too low, turning relay on. Soil Moisture: 452 Soil Moisture is too low, turning relay on. Soil Moisture: 347 Soil Moisture is ok, turning relay off.从输出可见638 与 452 均超过阈值 450继电器保持开启浇水后读数降到 347继电器自动关闭。源码级验证仓库中的完整实现本课的完整可运行代码位于 code-relay/wio-terminal 目录其中 main.cpp 给出了上述所有逻辑的完整整合版本#include Arduino.h void setup() { pinMode(A0, INPUT); pinMode(PIN_WIRE_SCL, OUTPUT); } void loop() { int soil_moisture analogRead(A0); Serial.print(Soil Moisture: ); Serial.println(soil_moisture); if (soil_moisture 450) { Serial.println(Soil Moisture is too low, turning relay on.); digitalWrite(PIN_WIRE_SCL, HIGH); } else { Serial.println(Soil Moisture is ok, turning relay off.); digitalWrite(PIN_WIRE_SCL, LOW); } delay(10000); }几个值得注意的实现要点pinMode(A0, INPUT)在setup中先行配置模拟端口上一课内容随后才配置继电器输出引脚delay(10000)使整个采样–判断–控制循环每 10 秒执行一次这也是文档中「继电器每 10 秒开关」行为的来源Serial输出同时服务于调试与阈值验证。对应的 platformio.ini 明确了目标硬件环境需要 Wio Terminal 实机配合使用[env:seeed_wio_terminal] platform atmelsam board seeed_wio_terminal framework arduino进阶方向从本地判断到 MQTT 集中控制本文实现的逻辑是「设备本地根据单点土壤湿度直接驱动继电器」。而在真实商业灌溉系统中控制逻辑通常集中到服务器端以便综合多个传感器数据、在单一位置修改配置。本课主文档 README.md 提供了 MQTT 集中控制方案仓库中的 code-mqtt/wio-terminal 目录是完整参考实现main.cpp 中通过PubSubClient订阅命令主题在clientCallback回调中解析 JSON 字段relay_on并据此digitalWrite(PIN_WIRE_SCL, HIGH/LOW)config.h 中定义了 WiFi 凭据、MQTT Broker 地址、CLIENT_NAMEIDsoilmoisturesensor_client、遥测主题ID/telemetry与命令主题ID/commands。此外主文档还讨论了传感器与执行器的时序问题浇水后水需要时间渗透到传感器处湿度读数不会立即变化可能造成过度浇水并给出了「继电器开 5 秒、等待 20 秒再检测」的浇水周期优化方案代码见 code-timing/server 目录。这两个方向是本文基础能力的自然延伸建议进阶阅读。小结与注意事项至此你已完成「基于土壤湿度传感器自动控制继电器」的完整实战接线 → 数字输出测试 → 阈值判断 → 串口验证全程有仓库源码可对照。实际使用中请注意接线安全继电器输出回路承载 250V/10A 大功率负载时务必确保接线绝缘可靠且电源通断经过继电器阈值标定450 是课程给出的参考值实际土壤类型、传感器个体差异会导致读数偏移建议先通过串口监视器观察干/湿两种状态的典型读数再微调阈值极性理解电容式湿度传感器「越湿读数越低」判断逻辑必须与之匹配驱动能力若使用真实水泵构建灌溉系统建议选用 6V 迷你水泵并外接独立电源通过继电器控制其通断切勿直接由 Wio Terminal 引脚驱动大电流设备。【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考