GROUU · Projects · Actuator Module
Active · V1 reference exists

Actuator Module

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.

ESP8266 4× relay MQTT · PubSubClient ArduinoOTA
01 · Overview

What it is

The actuator is GROUU's output counterpart to the sensor node: an MQTT-driven way to switch valves, pumps and other loads. The V1 reference — a 4-relay water router — works and is documented; the module is being generalised to the current node/naming conventions so a garden, greenhouse or aquaponics build can water, dose or ventilate on the same stack it reports to.

Goal: close the loop. Sensing observes; actuation acts. It shares the basic node's connection, naming and OTA plumbing — the difference is outputs instead of inputs.

Overview
Subscribe, switch, echo state

Command in, state echoed back — outputs instead of inputs.

Broker
MQTT command
<host>/valve/one/set · ON/OFF
sub
Node
ESP8266 · 4× relay
switch · echo state · OTA
GPIO
Output
Valve / pump
1-in / 4-out router

State echoes back on <host>/valve/one — the loop closes without polling.

02 · Design

Command & state topics

The module is a naming + topic convention as much as hardware: a command topic per output, a state topic that echoes back, and the shared control topic for OTA/reboot — so any dashboard or automation can drive and read it the same way it reads sensors.

<host>/valve/one/set
Command — ON / OFF
<host>/valve/one
State echo, published on change
system/set/<host>
Control — OTA_ON / REBOOT, as on the basic node
03 · Hardware

Relays & loads

A 4-channel relay board on GPIO 16 · 5 · 4 · 0 switches the loads. The reference target is four solenoid valves (the water router); the module is meant to drive the greenhouse actuator set too — servo latch, fan, grow-LED, pump. Breadboard-friendly; no custom PCB.

PartRoleSource
ESP8266 (NodeMCU / ESP-01)MCU + WiFi — runs the relay node, WiFiManager + OTA
4-channel relay boardSwitches valves / pumps on GPIO 16 · 5 · 4 · 0
Solenoid valves ×4The one-in / four-out irrigation router
Servo latch · fan · grow-LED · pumpOther actuator targets (greenhouse set, design)
04 · Software

MQTT-commanded relay actuation

Reuses the basic node's connection, naming and OTA; the difference is command topics driving outputs. The V1 reference is the committed grouu-wrout.

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);
}
05 · Process

Done, how, and what's left

The V1 reference works and is documented; the module is being generalised to the current conventions. To reproduce: flash the firmware to an ESP8266, wire the relay board to the loads, set the host name and broker, then command each output over MQTT.

V1 reference firmwaregrouu-wrout — 4-relay router, MQTT-commanded, OTA. Runs.✓ Exists
GeneralisationFold into the current basic-node conventions.○ In design
TargetsValves, pumps, servo latch, fan, grow-LED.◑ Partial
What's leftGeneralise topics/config, document, build photos.○ Next
Gallery

Build

Wiring and build photos of the water router are added as it is rebuilt on the current conventions.

📷🔧Build photos — to add.