Notes from a small weather station at the end of a garden.
I keep a little weather station running in my backyard: a few sensors on a
mast by the fence, a solar panel that mostly behaves, and an old Raspberry Pi
on a shelf in the garage collecting everything. These are notes I write for
myself whenever something breaks or puzzles me, so that future me (and anyone
else fooling around with sensors on a budget) can skip the same mistakes.
No ads, no tracking, no comments — just weather.
The station has browned out twice this summer, both times after a stretch
of overcast days. My working theory since June was that the 6V panel is simply
too small for the load, and I very nearly ordered a bigger one. What stopped
me was realizing I had never actually measured anything — I'd been
reasoning from vibes, which is a poor way to do engineering and an expensive
way to shop.
So one Sunday I took the multimeter out to the fence post. Open-circuit
voltage at noon under thin cloud: 6.4V, perfectly healthy. Same panel under
load: 3.9V and sagging. A panel that loses 40% under load isn't weak, it's
resisting — and the resistance turned out to be living in the little
JST connector between the panel and the charge board, crusted green with five
years of weather. I could measure a 0.8V drop across it by wiggling the plug
while watching the meter.
New connector, a smear of dielectric grease, and a proper strain relief so
the cable weight no longer hangs off the pins. Since then the station has come
through two consecutive gray weeks without a single dropout. For the record,
the power budget it actually needs to survive: about 38µA in deep sleep,
a wake every ten minutes, and the radio on for roughly 40ms per sync. The
original panel was never the problem. The connector was.
Every morning this spring, between roughly 05:40 and 07:10, the humidity
graph pegged itself at 100% and stayed there like it was nailed. Pressure and
temperature stayed sensible, so it wasn't the board dying. I swapped in two
other BME280 chips I had in a drawer — same behavior, same window, same
flat 100% line. Chips don't coordinate like that, so the constant was
something else: the sensor was getting wet.
Here's what I think was happening. The probe sits under a white cap that
claims to be weatherproof, and overnight the plastic cools faster than the
air. Moisture condenses on the inside of that cap, right over the sensing
element, and the chip reports the only honest thing it can: 100% relative
humidity, because it is sitting in a droplet. At dawn the sun warms the cap,
the droplet evaporates, and the graph snaps back. Twice a day, every day,
exactly like a lie that repeats itself.
The fix was mechanical, not electrical: I moved the probe into a louvered
radiation shield with real airflow, and swapped the solid cap for a membrane
one. Against a sling psychrometer borrowed from the astronomy club, dawn
readings now agree within 3–4% instead of inventing fog. Lesson
written on the mast in my head: at dawn, 100% humidity usually means the
sensor is wet, not the air.
The tipping-bucket gauge counts 0.2mm per tip, which sounds precise and is,
as long as every drop that falls also gets counted. This winter I set it next
to a manual gauge — a straight-sided jar with a ruler — and over
six weeks the bucket counted 213mm where the jar held 195mm at first, then
under 180mm after a dry spell, depending on how the evaporating water in the
jar decided to behave. Both instruments were lying to me, in opposite
directions, and neither knew it.
The bucket's problems were more interesting. Three, in order of shame:
it sat too low and collected splash from the fence rail; the funnel had no
mesh, so one very committed blackbird had been using it as a personal
drinking fountain all February; and on drizzle days, water sat in the bucket
long enough between tips that evaporation stole a tip here and there. Small
thefts add up — my guess is 5 to 10% across a wet month.
Fixes: raised it to 1.2m on its own post away from anything it could
bounce off, glued a fine stainless mesh over the funnel (the blackbird has
filed a complaint), and leveled it properly with an actual spirit level
instead of the eyeball method. Six-week rematch after the changes: 41mm
bucket, 40mm jar, which is inside the error of my ruler technique. Good
enough. The gauge still lies twice a day, as all gauges do — just less
loudly now.
First post, mostly to write down what's actually on the mast before I
forget why any of it is there:
a BME280 for temperature, humidity, and pressure, in the shield
described in a later post,
a DS18B20 buried under the tomato bed pretending to be a soil probe,
a tipping-bucket rain gauge, 0.2mm per tip, currently on its third
mounting bracket,
a three-cup anemometer from a kit, which survived a named storm in
February and earned permanent employment,
an ESP32 doing the collecting, waking every ten minutes and pushing a
batch of readings over wifi to the garage,
and the Raspberry Pi, which stores it all and serves a small status
stream I check from the train like other people check the news.
The plan for this page is simple: whenever something breaks, I'll write
down what it was. Whenever something works, I'll try to write down why,
because those notes have a way of going missing exactly when they're needed.
If you stumbled in from a search engine looking for sensor advice, hello
— the rain gauge post is the one I wish I had read before buying
three brackets.