The module that lets GROUU act on the field, not just sense it — driving valves and pumps from MQTT commands. The reference build is a one-in / four-out electrovalve water router for micro-irrigation; an ESP8266 node from GROUU V1 already implements the pattern.
An actuator node joins the same MQTT broker as the sensor nodes and subscribes to per-output command topics. A command flips a relay driving a solenoid valve (or a pump), then the node publishes the new state back so a dashboard or automation always knows where each output stands. It reuses the WiFi node's connection, naming and OTA plumbing — the difference is outputs instead of inputs.
ARDUINO/GROUU_V1/…/grouu-wrout.ino — MQTT-commanded relay actuation
#define RELAY_ONE 16 // D0
#define RELAY_TWO 5 // D1
#define RELAY_THREE 4 // D2
#define RELAY_FOUR 0 // D3
void turnOnOut1() {
digitalWrite(RELAY_ONE, HIGH);
client.publish(MQTT_VALVE_ONE_STATE_TOPIC.c_str(), PAYLOAD_ON);
}
void turnOffOut1() {
digitalWrite(RELAY_ONE, LOW);
client.publish(MQTT_VALVE_ONE_STATE_TOPIC.c_str(), PAYLOAD_OFF);
}
Command a valve with <Host>/valve/one/set → ON / OFF; state echoes on <Host>/valve/one. The same system/set/<Host> control topic accepts OTA_ON / REBOOT, exactly like the WiFi node.
A minimal, breadboard-friendly build. No priced BOM is published yet — the parts below are what the V1 node uses; the greenhouse set lists the other actuator targets the module is meant to drive.
| Part | Role | Source |
|---|---|---|
| ESP8266 (NodeMCU / ESP-01) | MCU + WiFi — runs the relay node, WiFiManager + OTA | — |
| 4-channel relay board | Switches valves / pumps on GPIO 16 · 5 · 4 · 0 | — |
| Solenoid valves ×4 | The one-in / four-out irrigation router | — |
| Servo latch · fan · grow-LED · pump | Other actuator targets (greenhouse set, design) | — |