The Greenhouse Gazette
I wired sensors, a camera, and a Raspberry Pi into my family's greenhouse on the Outer Banks. Every morning at 7:00, an AI narrator called the Canal Captain emails the family a report, a timelapse, and a riddle.
- AI
- IoT
- Character design
What it is
My family keeps a greenhouse on a canal in Colington Harbour, on the Outer Banks. I wanted the greenhouse to report on itself, so I ran a Raspberry Pi out to it. A camera hangs overhead and photographs the interior through the day, and those frames become the timelapse. Temperature and humidity sensors read the air on both sides of the wall, because an indoor number only means something next to the outdoor one.
Every morning at 7:00, the family gets an email from the Canal Captain, a retired fisherman with opinions about king tides. He reports the greenhouse vitals, the tides at Jennette’s Pier, yesterday’s daylight as a timelapse, and the day’s riddle. Sundays bring a weekly edition. The same readings sit on a dashboard behind family-only access.
How it works
The report is written by a character rather than laid out as a dashboard. The Captain works from the same readings a chart would plot and files them as a morning report. A written persona spec holds his voice: salty, pragmatic, hyper-local. The model behind him is Gemini 2.5 Flash.

The Captain sets a riddle every morning on the greenhouse-and-weather theme. Guesses come back as replies to the email or get typed into the dashboard, where a model judges them on the spot. The first correct answer is worth 3 points, every one after it is worth 2, and the standings run for a season. Each morning’s edition carries the previous day’s answer with the Captain’s gloss on it. On May 19, that answer was Jockey’s Ridge, and the gloss was about the mini-golf course the dune swallowed. The family can write into the paper as well. Anyone on the allowlist can email a message and the Captain carries it into the next edition.
The dashboard streams the greenhouse live in 720p, and every reading on it shows its age, so an hour-old temperature is labeled an hour old.
How I built it

The Captain writes under a budget: four generations an hour at most, a lock so two can’t run at once, and a blackout window around the 7:00 send so nothing competes with the edition going out.
Underneath, the stack is ordinary. A FastAPI service serves a React and TypeScript dashboard and streams the camera over HLS, which cuts the video into short chunks a browser can pick up mid-stream. The Pi assembles the timelapses itself, in 4K. Every push runs a security scan and a set of Playwright tests that walk the dashboard in a browser before the deploy goes out.
What I learned
Wiring the greenhouse was the easy half. A daily email of temperature and humidity is a novelty, and novelty wears out. Better charts wouldn’t have fixed that, so the readings travel with a game. The riddle is written each morning out of the same greenhouse, weather, and coast the rest of the edition reports on, so playing it means paying attention to the thing the report is about. Points and a season-long leaderboard make that a competition among the people who share the greenhouse. The leaderboard is the only readership figure I have, and there are names on it.
The character also turned out to be useful when the system broke. In May, salt ate the wire on the greenhouse sensor and the vitals stopped. The Captain reported the outage in his own voice, which told the family more about what had happened than a blank card on a dashboard would have.