Build your own sensors. We'll do the charts.
An ESP32, a soil probe, and a DHT22 are $15 total. Point them at Garden.gg's IoT endpoints and every reading lands on the right plot — no homegrown dashboard needed.
Three builds, one API
Pick one or stack all three on the same device. The Ecowitt ingest path accepts form-encoded data from anything — including your custom firmware.
Soil moisture node
Capacitive probe on a battery-powered ESP32. Reports soilmoisture1 to your raised bed's plot every 15 minutes. Monthly uptime on two 18650s.
Weather node
DHT22 + BMP280 in a screened enclosure. Reports temperature, humidity, and pressure to your outdoor plot. Cheaper alternative to a full Ecowitt stack.
Timelapse camera
ESP32-CAM uploads a photo every 15 minutes. Garden.gg's Plot Photo Playlist picks them up automatically — drag the speed slider to play three weeks in ten seconds.
Two endpoints, no surprises
Nothing bespoke for DIY — you're using the same endpoints Ecowitt gateways and the core Garden.gg apps use.
/i/e/{token}
Ecowitt-format form body — tempf1=…&humidity1=…&soilmoisture1=…. Token is the auth; no headers needed. Great for battery-powered builds.
/api/v1/iot/photo
Multipart upload with X-API-Key. Photos land in the plot's gallery and auto-populate the timelapse playlist.
/api/v1/iot/plots Optional. List the user's plots via API key — useful for one-time provisioning scripts that need to discover plot IDs.
What your build gets on the other side
Start your build
Arduino sketch and full wiring diagram in the build guide. Free account to get your first device token.