Most Arduino weather station tutorials stop at "it works on my desk." That's a demo. A deployment survives thunderstorms, runs for months on solar, and pushes data to the cloud without babysitting. Here's how to build the latter.
Hardware That Survives the Elements
Start with an enclosure rated IP65 or better. A generic project box with cable glands beats a Tupperware container every time. Mount the microcontroller — an ESP32 or Arduino MKR WiFi 1010 for built-in connectivity — on standoffs, not double-sided tape. Conformal coat the PCB if you can; humidity kills bare traces faster than rain.
| Sensor | Measures | Interface | Why It Matters |
|---|---|---|---|
| BME280 | Temp, humidity, pressure | I2C | Low power, high accuracy |
| Davis 6410 | Wind speed/direction | Reed switch + potentiometer | No moving parts to freeze |
| RG-11 | Rainfall | Tipping bucket | Self-emptying, calibrated |
| VEML6075 | UV index | I2C | Skin safety data |
Power Budget: The Math That Keeps It Alive
Size your panel and battery for winter solstice, not July. A 5W panel + 18650 Li-ion (3000mAh) runs an ESP32 waking every 10 minutes with BME280 + wind + rain sensors. Add a TP4056 with protection IC and a Schottky diode to prevent reverse drain. Deep sleep current must stay under 200µA — measure it, don't trust datasheets.
Wiring for Reliability
Use JST-SM connectors with heat-shrink on every sensor lead. Solder, don't breadboard. Run I2C lines twisted with ground to reject noise — 3.3V logic, 4.7kΩ pullups at the MCU end only. Add a 100µF electrolytic + 0.1µF ceramic at each sensor's VCC/GND. Label every wire with heat-shrink tags; future you will thank present you.
"The difference between a prototype and a product is the connector strategy.
— Embedded engineer, 15 years field deployments
Firmware: Cloud Logging Without the Bloat
Skip heavy MQTT libraries. Use HTTP POST to a lightweight endpoint — Cloudflare Workers, AWS Lambda, or a $5 VPS running InfluxDB. Batch readings locally (circular buffer in RTC memory) and transmit every 6th wake cycle to cut radio-on time by 80%. Handle backoff exponentially: 1min, 2min, 4min, max 1hr. Store failed payloads in SPIFFS for retry.
Calibration & Validation
Co-locate with a known-good station (NWS ASOS or a Davis Vantage Pro2) for 72 hours. Log raw ADC counts alongside reference values. Fit linear correction in post-processing, not on-device — keeps firmware simple and lets you re-calibrate without OTA. Document sensor height, aspiration, and ground cover; metadata matters more than raw numbers.
✦
Your Next Steps
Order the IP65 box and BME280 today. Print the wiring diagram. Breadboard the deep-sleep + HTTP flow this weekend. Deploy to a shaded fence post with a 5W panel angled at your latitude. Watch the first week of logs — then iterate. The station that survives its first winter is the one you'll still maintain in five years.










