Fall ResetAmazon USFall reset deals: check better picks before checkoutAmazon US: today's deals, useful picks and quick comparisons.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowFall ResetAmazon USWork and home upgrades are worth comparing todayAmazon US: today's deals, useful picks and quick comparisons.See Picks×
Skip to content
Blog

Build Your Own Arduino Weather Station: From BME280 Prototype to Outdoor Monitor

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

What this station can measure

A BME280 gives you three useful environmental readings in one compact I²C or SPI module:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • 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
Weather Meter Kit
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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

  1. In Arduino IDE, open Library Manager.
  2. Search for Adafruit BME280 and install it.
  3. Install Adafruit Unified Sensor if it is not installed automatically.
  4. Open the BME280 example from the library’s Examples menu.
  5. 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, 0x76 or 0x77.
  • 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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
timestamp,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
ESP8266 Weather Station Kit for Switching and Displaying Data for Any City in The World
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Create or sign in to an Arduino account and create a Thing.
  2. Associate the board and define variables such as temperature, humidity, pressure, windSpeed, windDirection, and rainfall.
  3. Provision Wi-Fi, upload the generated or customized sketch, and add dashboard widgets.
  4. 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.Support on Ko-Fi

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
ELEGOO ESP-32 Super Starter Kit with Tutorial Compatible with Arduino IDE
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.