A Plant Lab · May–June 2026
wy2z
A four-device plant lab built to keep a Wyches Yellow tomato and two zinnias alive while I was out of town.
Archived · 2026-06-12
The lab has been decommissioned.
Five weeks unattended, three plants, and a stack of lessons. Everything below is the dashboard frozen at its final state — scroll on for the journal, photos, and what I learned.
Most Recent Capture · Jun 12, 11:30 AM CT · 34d ago

zinnia a + zinnia b + tomato flagged red — needs attention. 22.6°C / 67%.
Action Taken
⚠ Watering failed · Zinnia B, Tomato
Zinnia A
Alert · 95%
Tall dried stem with a completely desiccated spent zinnia flower at the apex — tan/papery, clearly dead
Zinnia B
Alert · 93%
Central zinnia stem is tan/straw-colored and completely desiccated — no green tissue on the original plant
Tomato
Alert · 88%
Large black fabric/plastic pot on the right — the largest container as expected
Scene Notes
This is a post-outage damage assessment capture. All three intended plants — both Zinnia elegans seedlings and the Wyches Yellow tomato — appear to have died during the 15-day unwatered gap. Zinnia_a and zinnia_b are visibly fully desiccated with brown papery tissue, spent dried flowers, and no recoverable green growth on the original plants. The tomato pot shows no recognizable tomato tissue whatsoever. All green growth visible across the scene is narrow-bladed contamination grass that germinated in the substrate during the unattended period, likely from weed seeds present in the soil mix. The grass in zinnia_b and especially the tomato pot is growing vigorously. Air temp (22.6°C) and humidity (67%) are fine for plant growth but are irrelevant given the state of the original plants. Recommendation: do NOT trigger automated watering for plant recovery purposes — there are no original plants left to save. The operator should manually inspect, confirm plant death, remove dead material, decide whether to replant, and manually water only if restarting with new seedlings. The watering system fix should be verified with a controlled test before trusting it with new plants.
Air · Last 14 Days
Temp °C Humidity %
Recent Captures
Timelapse
98 captures stitched at 10 fps. Rebuilt nightly.
How It Works
One Raspberry Pi orchestrates four moving parts on a 4-hour clock: a camera that’s a separate computer, a sensor on a GPIO pin, a vision model in a datacenter somewhere, and a Wi-Fi microcontroller that pushes water on command. The full loop — cron to capture to verdict to pump — first ran in production on May 6, 2026.
- 01Capture
Cron fires every four hours from 07:30 to 19:30. The Pi reads the air sensor, paints the OLED with the timestamp, and asks the Jetson for one sharp photo.
- 02Upload
The photo and the air reading land in Supabase — JPEG into Storage, a row into Postgres.
- 03Analyze
Claude reads the photo against a structured prompt and returns a JSON verdict — health color, soil-moisture guess, and an action per plant.
- 04Dispense
If any plant is flagged for water, the Pi POSTs to the ESP32 over Wi-Fi. The ESP32 pulls a GPIO high, which saturates an NPN BJT switching a 5V pump. Water moves from a Brita pitcher through a vinyl tube into the soil. The pump's HTTP ack — duration in milliseconds — lands back in the observation row alongside the verdict.
Cron · 07:30 · 11:30 · 15:30 · 19:30 CT · ran daily, May 3 → June 11, 2026
Build Gallery
Behind the dashboard — photos from the bench during the build.















































































































