Build guide
Everything you need to build it
Parts, pins, power and fixes. No soldering skills beyond a breadboard.
Parts
ESP32 Dev Module
The brain.
Soil moisture sensor
With an analog AOUT pin.
1-channel 5 V relay module
Opto-isolated.
Mini 5 V water pump + tube
Submersible.
Red + green LED, 2 × 220 Ω
Soil status lights.
5 V 2 A charger
For the ESP32.
Power bank
For the pump, separate.
Capacitors
470–1000 µF and 100 nF. Diode 1N4007 for a motor pump.
Pin map
| ESP32 | Goes to | Colour |
|---|---|---|
| D34 | Sensor AOUT | |
| 3V3 | Sensor VCC | |
| D26 | Relay IN | |
| VIN (5 V) | Relay DC+ | |
| GND | Relay DC−, sensor GND, LED short legs | |
| D27 | Red LED, via 220 Ω, long leg | |
| D25 | Green LED, via 220 Ω, long leg | |
| D0 (BOOT) | On-board button |
Power rules
- ESP32 on a 5 V 2 A charger
- Pump on its own supply, ground shared
- 470–1000 µF across the ESP32’s 5 V and GND
- 100 nF across the pump leads
- Powering the ESP32 from a laptop USB port while pumping
- Relay DC+ on 3V3
A weak supply makes the ESP32 brown out when the pump starts: LEDs die, the relay clacks, the board reboots.
Flash it
- 1Install the libraries “WiFiManager” (tzapu) and “PubSubClient” (Nick O’Leary).
- 2Open firmware/shikor_firmware.ino.
- 3Board: ESP32 Dev Module. Upload speed: 115200. Upload.
- 4No Wi-Fi password goes in the code.
First power-up
- 1Join the Wi-Fi “Shikor-Setup” (password shikor123).
- 2The setup page opens, or go to 192.168.4.1.
- 3Configure WiFi: pick your 2.4 GHz network and type the password.
- 4Set the MQTT topic base to match the app’s Settings. Save.
To change Wi-Fi later: with the board on, hold BOOT for 3 s. Never hold BOOT while plugging it in.
When something’s off
Upload fails (“Unable to verify flash chip”)
Set speed to 115200, use a data-capable cable, hold BOOT while uploading.
Everything dies when the pump starts
Brown-out. Better charger, bigger capacitor, separate pump supply.
LEDs stay dark
Check the self-test at power-up. LED may be reversed (long leg is +). Check common GND.
“Water now” is greyed out
The device is offline. Check power, Wi-Fi and that both topic bases match.
No automatic watering after a manual one
Normal. It waits 6 hours. A reboot resets the clock.
Garbled text in Serial Monitor
Set the baud rate to 115200.