Overview
Soil, air, light, water
How thirsty
A soil fork, calibrated from her page, read once a minute and powered only while it reads, so it doesn't corrode away.
Temperature and humidity
An AHT10, the same as NORA and MILA. AURA plots it with the rest of the fleet, in FLORA's green.
Sun and UV
A photoresistor, like MILA's: brightness and the hours of good light today. A UV module, like KIDA-01's: the UV index.
A pump, carefully
She waters when the soil is dry: never longer than 10 seconds, never more than 4 times a day, not in the midday heat.
Asks AURA first
If AURA, the weather station, thinks rain is coming, she lets the sky do it.
One of the robots
Joins the fleet's network, beacons over ESP-NOW and Bluetooth LE, talks in Brainfuck on her buzzer, and RIFT can ask her to water.
Watering
Only when it's safe and needed
Automatic watering starts off: calibrate the fork, test the pump, then turn it on. She waters only when the soil is drier than your setting, and never:
- for more than 10 seconds (and a hard 15-second cut-off whatever happens),
- within 30 minutes of the last watering, or more than 4 times a day,
- in the midday heat, unless the soil is critically dry,
- when AURA thinks rain is coming, or rain is forecast within 3 hours,
- when the fork reads nonsense.
The rules are plain C++, tested on the PC (tests/test_rules.cpp), and every number is a setting on her page.
Wiring
An ESP32 DevKit
| Part | Pin |
|---|---|
| Soil fork AO / VCC | GPIO34 / GPIO25 (powered only while reading) |
| AHT10 SDA / SCL | GPIO21 / GPIO22 |
| Photoresistor module AO | GPIO35 |
| UV module OUT | GPIO32 |
| Relay IN (pump) | GPIO26, active LOW (the pump on its own 5 V supply) |
| Buzzer / LED | GPIO27 / GPIO2 |
Apps
Her page, anywhere
flora.exe
Her page in a native window. FIND gets her address from the fleet list.