Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
The most practical modern Arduino weather station starts with an Arduino UNO R4 WiFi, a BME280 sensor, and either local storage or a dashboard. The BME280 measures temperature, relative humidity, and barometric pressure; add a pulse-output anemometer, calibrated wind vane, and tipping-bucket rain gauge when you are ready for a fuller outdoor installation.
Build and test the electronics indoors first. Then move the sensor into a ventilated radiation shield, install the wind and rain instruments correctly, and add buffering or local logging so an internet outage does not erase your readings.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Weather Meter Kit | $79.95 | Buy on Amazon |
| 2 |
|
ESP8266 Weather Station Kit for Switching and Displaying Data for Any City in The World | $19.43 | Buy on Amazon |
| 3 |
|
ELEGOO ESP-32 Super Starter Kit with Tutorial Compatible with Arduino IDE | $36.99 | Buy on Amazon |
What this station can measure
A BME280 gives you three useful environmental readings in one compact I²C or SPI module:
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →- Temperature: air temperature, provided the sensor is shaded and separated from heat-producing electronics.
- Relative humidity: strongly affected by ventilation, condensation, and temperature.
- Barometric pressure: useful for tracking trends. Decide whether you are displaying station pressure or a sea-level-adjusted value; elevation must be configured for the latter.
Wind speed, wind direction, and rainfall require separate instruments. Light, UV, soil moisture, particulate matter, and lightning sensors are optional extensions, not substitutes for calibrated weather instruments.
#1 Best Overall
- Kit represents the three core components of weather measurement: wind speed, wind direction and rainfall.
- It uses sealed magnetic reed switches and magnets so you'll need to source a voltage to take any measurements.
- All of the sensors in the weather meter kit are passive components. This means you will need a voltage source in order to measure anything with them.
- Sensors include Wind vane, Cup anemometer, Tipping bucket rain gauge. RJ11 terminated cables.
- Stand: Two-part mounting mast, Rain gauge mounting arm, Wind meter mounting bar, 2x Mounting clamps and 4x Zip ties.
Parts list
Minimum indoor build
- Arduino UNO R4 WiFi
- BME280 breakout board
- Breadboard, jumper wires, and USB-C cable
- Computer running Arduino IDE or Arduino Cloud Editor
- Optional I²C OLED or LCD display
The UNO R4 WiFi combines a Renesas RA4M1 microcontroller with an ESP32-S3 wireless module, operates at 5 V, and supports Arduino Cloud. Arduino’s U.S. store listed it at $27.50 during the research period; prices and availability can change. A Nano ESP32 is a smaller 3.3 V alternative, while an UNO R3 needs a separate networking module.
Outdoor expansion
- Pulse-output anemometer
- Analog wind vane
- Tipping-bucket rain gauge
- Ventilated, weather-resistant enclosure and radiation shield
- Cable glands, drip loops, strain relief, and suitable regulated power
- MicroSD module or another local data store
- Battery and solar hardware if mains power is unavailable
Why choose a BME280?
A DHT11 is inexpensive and easy to demonstrate, but it has limited resolution and provides no pressure measurement. A BME280 measures all three core variables and is a better fit for a weather-oriented design. Do not confuse it with a BMP280, which measures temperature and pressure but not humidity. Low-cost boards are sometimes mislabeled, so verify the documentation and I²C address.
Specifications vary by sensor and breakout. One Arduino Grove listing gives approximately −40 to 85 °C operation, 300–1100 hPa pressure range, ±1 °C temperature accuracy, ±1 hPa pressure accuracy, and ±3% RH humidity accuracy. Those are component specifications, not a promise that a sun-heated enclosure will achieve them. See the Arduino BME280 listing and Adafruit breakout documentation.
Free tools Windows power users keep installed
One-click scans. No signup required.
Wire the BME280 over I²C
| BME280 pin | UNO R4 WiFi |
|---|---|
| VIN/VCC | Use the voltage supported by your breakout board |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
Never assume a bare 3.3 V BME280 module is 5 V tolerant. Follow the board’s documentation. Qwiic or STEMMA QT cables are convenient only when the sensor and adapter use compatible connectors.
Install the library and prove the sensor works
- In Arduino IDE, open Library Manager.
- Search for
Adafruit BME280and install it. - Install
Adafruit Unified Sensorif it is not installed automatically. - Open the BME280 example from the library’s Examples menu.
- Select the UNO R4 WiFi and its serial port, upload, and open Serial Monitor.
The official Adafruit library and its guide provide the supported example. You should see temperature near room temperature, humidity that changes when the sensor is moved into different air (breathing on it is not calibration), and relatively stable pressure.
If the sensor is not detected
- Recheck power, ground, SDA, and SCL.
- Scan the I²C bus and try the alternate common address,
0x76or0x77. - Confirm the module is a BME280 rather than a BMP280.
- Disconnect other I²C devices temporarily.
- Check that the library dependency installed correctly.
A sensible software structure
Keep periodic work nonblocking. Use millis() scheduling rather than long delay() calls, because wind and rain pulses can arrive while the processor is waiting.
setup: initialize serial, I2C, BME280, display, Wi-Fi, inputs, interrupts, and storage
loop: read BME280; calculate wind interval; process rain tips; sample vane;
update display; timestamp and log; publish if connected; retry failures
Start with BME280 readings every 5–60 seconds. Count wind pulses continuously and report a moving average every 5–10 seconds. Count rain tips continuously, then publish totals every minute or at another configurable interval. A record might look like:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorstimestamp,temp_c,humidity_pct,pressure_hpa,wind_mps,wind_dir_deg,rain_mm
2026-08-18T12:00:00Z,23.4,54.2,1008.7,2.1,180,0.0
Use network time or a real-time clock. If time is unavailable after a restart, mark timestamps invalid rather than silently writing the wrong date.
Add wind and rain instruments
Wind speed
A pulse-output anemometer connects its signal to an interrupt-capable digital input, with a pull-up if required. Count pulses over a known interval and apply the manufacturer’s conversion factor:
Rank #2
- The weather station uses the ESP8266-12E to obtain data from the Internet: time of a city, weather data and forecast information for the next 3 days, scrolling on the SSD1306 OLED Display;
- The device can switch to display data from any city in the world - maybe your relatives or friends live there.
- The device uses sensors DHT11, BMP180, BH1750FVI to collect temperature, humidity, Atmosphetic Pressure and light data.
- The weather station reads data indoor via sensor every 5 seconds and uploads it to the Internet every 60 seconds.
- You can see real-time data charts from your phone or computer.Of course you can modify the code to implement different functions.
wind speed = pulse frequency × sensor-specific scale factor
There is no universal constant. Keep interrupt routines short: record the event and return. Do not upload data or update a display inside an interrupt.
Wind direction
An analog vane uses a resistor network. Read its voltage, record the actual ADC ranges for each compass position, and mechanically align the vane to a known north reference. Supply voltage, resistor tolerance, ADC behavior, and overlap between ranges all affect the result.
Recommended Free Tools
Rainfall
A tipping-bucket gauge produces a switch transition for each tip. Debounce it, increment a counter, and apply the value calibrated for that specific collector:
rainfall_mm = tip_count × calibrated_mm_per_tip
Calibrate by slowly adding a measured volume of water and repeating the test. A gauge under a roof edge, tree, wall, or eave will be wrong regardless of software.
Display and data options
An OLED is compact and low-power for temperature, humidity, pressure, and connection status; an LCD offers larger indoor text but uses more wiring and power. A display is useful even when Wi-Fi fails.
Arduino Cloud
For the quickest remote dashboard, use Arduino Cloud with the UNO R4 WiFi:
- Create or sign in to an Arduino account and create a Thing.
- Associate the board and define variables such as
temperature,humidity,pressure,windSpeed,windDirection, andrainfall. - Provision Wi-Fi, upload the generated or customized sketch, and add dashboard widgets.
- Verify live values before configuring notifications.
Cloud dashboards provide remote access and historical visualization, but depend on an account, internet service, and plan limits that can change. Keep local logging if losing data during an outage matters.
Local logging
For privacy and resilience, log to microSD or send HTTP/MQTT data to a Raspberry Pi, NAS, or home server. A local dashboard can run alongside cloud publishing; the two paths need not be exclusive. Arduino’s UNO Q local weather-station project illustrates this architecture, but is not a drop-in UNO R4 tutorial.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Install it outdoors without corrupting the readings
Temperature and humidity
Place the BME280 in a ventilated radiation shield, shaded from direct sun and rain. Keep it away from the Arduino, regulator, display, Wi-Fi module, and other heat sources. Do not seal it in an airtight box or behind a sunlit clear window.
Rank #3
- Powerful ESP-32 Board: Unlock the world of Internet of Things (IoT) and advanced electronics with the heart of this kit: the ESP-32 board. It features a powerful dual-core processor, integrated Wi-Fi and Bluetooth 4.2, making it perfect for building connected, smart devices that communicate with your phone or the cloud. It's fully compatible with the Arduino IDE for easy programming.
- Super Starter Kit: This kit contains over 35 different modules and electronic components, including sensors, displays, motors, and input devices. From LEDs and buttons to an OLED screen, servo motor, and keypad, you have everything needed to explore a vast range of projects in one box.
- Step by Step Online Tutorial: Jump right in with our detailed, beginner-friendly tutorial. Access 30+ projects with complete code, clear circuit diagrams, and step-by-step instructions. Learn the fundamentals of electronics, coding, and how to utilize the ESP-32's unique capabilities without any prior experience.
- Hands-on Learning for All Skill Levels: Perfect for students, makers, engineers, and hobbyists. Start with basic circuits and coding, then progress to intermediate and advanced IoT applications. Build practical projects like weather stations, smart home controllers, remote-controlled devices, and interactive gadgets. The skills you learn are the foundation for real-world innovation.
- Quality & Great Support: Elegoo is committed to quality. We provide a clear, detailed tutorial guide, refined code, and a well-organized component kit. All modules are carefully selected for reliability and ease of use. Our dedicated technical support team and active online community are ready to help you succeed in your learning journey.
Pressure
Decide whether your dashboard shows station pressure or sea-level-adjusted pressure. A fixed 1013.25 hPa value is a reference, not a correction for every location. Elevation, temperature, and atmospheric conditions affect the calculation.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Wind
Mount the anemometer and vane rigidly in open air, above nearby obstructions where practical. Buildings, trees, fences, roofs, and chimneys create turbulence. Describe the result as wind at your installation point, not automatically as official regional wind.
Rain
Keep the collector level, unobstructed, stable, and away from roof runoff. Inspect and clean it regularly. Water ingress protection also matters: use cable glands, drip loops, and an enclosure that is weather-resistant for its actual installation rather than merely labelled waterproof.
Reliability, validation, and recovery
- Reject or flag
NaN, impossible humidity, implausible pressure jumps, and duplicate pulses. Do not silently convert missing data to zero. - Mechanical reed switches need software debounce and sometimes hardware filtering.
- When Wi-Fi fails, continue sensor reads and display updates, buffer records, and retry with increasing intervals rather than blocking the main loop.
- After power returns, reinitialize the bus, reconnect, record a restart event, and prevent duplicate rainfall totals.
- Compare temperature and humidity with a reference sensor at the same location, while remembering that consumer references are not necessarily laboratory calibrated.
- Validate wind against the instrument’s calibration information or a known reference; stable pulse counts alone do not prove accuracy.
Common faults
| Symptom | Likely fix |
|---|---|
| BME280 missing | Check wiring, address 0x76/0x77, library, and BME/BMP identity. |
| Outdoor temperature too high | Move the sensor out of the warm enclosure and add a radiation shield. |
| Humidity stuck at 100% | Dry and ventilate the sensor; inspect for condensation or contamination. |
| Rainfall too high | Debounce the reed switch and add pulse-rate sanity checks. |
| Wind remains zero | Check pull-up, polarity, continuity, bearings, and manual cup rotation. |
| Wind direction wrong | Re-align to north and recalibrate measured ADC ranges. |
| Board resets on Wi-Fi | Use a better regulated supply and separate noisy loads. |
| Cloud stops updating | Keep local logging, then check Wi-Fi, provisioning, account, and plan status. |
What this project is—and is not
An UNO R4 WiFi plus BME280 is a capable hobbyist environmental monitor. It becomes a broader weather station only after adding wind and rain hardware, calibrating it, and siting it correctly. “Real-time” should mean a stated update interval, such as a five-minute upload. Sensor datasheet accuracy does not automatically survive direct sun, condensation, poor shielding, or bad placement. Pressure trends can suggest changing conditions, but they are not a complete forecast.
Useful extensions
Once the core station is stable, add solar or UV measurement, soil moisture, air-quality sensing, lightning detection, battery monitoring, MQTT/Home Assistant integration, data export, or pressure-trend calculations. Add one subsystem at a time so a new wiring or timing problem can be isolated.
Frequently Asked Questions
Can I use an Arduino UNO R3 for this project?
Yes, for local sensing and display. Remote access requires an external Wi-Fi, Ethernet, cellular, or radio module; the UNO R4 WiFi avoids that extra hardware.
Is a BME280 waterproof?
No. It must be shaded, ventilated, and protected from rain and condensation. The sensor should not be sealed inside a hot airtight enclosure.
Why does my pressure differ from a weather app?
Your station may show pressure at its elevation while the app shows sea-level-adjusted pressure. Configure elevation and compare like with like.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.


Leave a Reply