Overview
This is the pure DIY route: your board runs the logic locally and does not depend on the GEIA app.
Use this guide when you want timer-based lights, watering cycles, optional fan control and basic serial monitoring.
This is good for learning, but it does not give you dashboards, cloud history, app control, alerts or easy recipe updates.
Step-by-step
Requirements
Arduino UNO/Nano/Mega or ESP32/ESP8266, relay module, DHT/SHT sensor, DS18B20 water temperature sensor, jumper wires, breadboard and safe power handling.
Wire relays safely
Use the microcontroller only to switch the relay module. Keep mains voltage isolated and use rated enclosures.
Wire air and water sensors
Add air temperature/humidity and water temperature sensors for basic monitoring.
Upload the offline sketch
Upload a non-blocking sketch using timers instead of delay() so lights, pumps and sensors can run together.
Test cycles
Run dry tests before connecting pumps, lights or fans. Check relay states after power loss.
Example non-blocking loop pattern
void loop() {
unsigned long now = millis();
readSensors(now);
runLightCycle(now);
runWateringCycle(now);
runFanCycle(now);
printStatus(now);
}
Safety note
Offline scripts are simple, but every schedule change requires editing/uploading code. Power-loss behavior must be tested carefully.




