Arduino Weather Shield Hookup Guide V12

Contributors: Nate, santaimpersonator, SparkFro
Favorited Favorite 17


Heads up! This is for the Arduino Weather Shield v12 [DEV-13956] that uses the Si7021. If you are looking at the older version of the weather shield, you should check out the older tutorial for DEV-12081 that uses the HTU21D.

Updated Content: This guide was updated on 7/5/23.

  • The Weather Station and Weather Station with GPS firmware were modified to utilize our new SparkFun Weather Meter Kit Arduino library
  • A few of the parts and instructions, were also updated to account for any retired components, outdated information, etc.
  • Please note, this shield is currently not compatible with the new Arduino Uno (R4). There is an issue with the values returned from the Arduino libraries for the I2C sensors (temperature, humidity, and pressure).

Library Versions:

While this tutorial and its example code were recently updated, this was before the lastest release of the SparkFun Si7021 Arduino library. The latest release is not backwards compatible and will create compilation issues with the existing example code for this hookup guide. Therefore, we recommend users only utilize these specific version of these libraries, until we have a more permanent fix:

  • SparkFun Si7021 Arduino Library v1.0.5
  • SparkFun External MPL3115A2 Arduino Library v1.2.4

The Arduino Weather Shield from SparkFun is an easy-to-use Arduino shield that grants you access to barometric pressure, relative humidity, luminosity, and temperature. There are also connections to optional sensors such as wind speed/direction, rain gauge, and GPS for location and super accurate timing.

SparkFun Weather Shield


Things you should know about this shield:

  • Uses the Si7021 sensor, MPL3115A2 barometric pressure sensor, and ALS-PT19 light sensor.
  • Has a 6-pin JST connector for the GP-735 compact GPS module
    • The Weather shield is not compatible with the EM-506 or EM-506N5 GPS receivers. The shield does not provide enough power for those GPS modules.
  • Has optional RJ11 connector footprints to connect the SparkFun weather meter kit
  • Weather shield can operate from 3V to 10V and has built in voltage regulators and signal translators
    • When utilized with the Weather Meter Kit, the shield must be used with a 5V board (i.e. RedBoard, Arduino Uno (R3), etc.) for compatibility with the wind vane data.
    • The new Arduino Uno (R4) is not compatible with the Arduino libraries of the I2C sensors and is not recommended to use with the shield.
  • Typical humidity accuracy of ±2%
  • Typical pressure accuracy of ±50Pa
  • Typical temperature accuracy of ±0.3C

Required Materials

Compatibility Issue: The Arduino libraries of the I2C sensors on this shield are NOT compatible with the Arduino Uno (R4). Please, use the Arduino Uno (R3) or the Redboard as suggested below.

To get up and running with the Weather Shield you'll need the following parts:

Arduino Uno - R3

Arduino Uno - R3

SparkFun RedBoard Plus

SparkFun RedBoard Plus

Soldering Iron - 60W (Adjustable Temperature)

Soldering Iron - 60W (Adjustable Temperature)

USB Cable A to B - 6 Foot

USB Cable A to B - 6 Foot

Arduino Stackable Header Kit - R3

Arduino Stackable Header Kit - R3

USB 3.1 Cable A to C - 3 Foot

USB 3.1 Cable A to C - 3 Foot

Chip Quik No-Clean Flux Pen  - 10mL

Chip Quik No-Clean Flux Pen - 10mL

Solder Lead Free - 15-gram Tube

Solder Lead Free - 15-gram Tube


Related Accessories

Weather Meter Kit

Weather Meter Kit

GPS Receiver - GP-735 (56 Channel)

GPS Receiver - GP-735 (56 Channel)

RJ11 6-Pin Connector

RJ11 6-Pin Connector

JST SH Jumper 6 Wire  - 1 Foot (EM-401 and EM-406)

JST SH Jumper 6 Wire - 1 Foot (EM-401 and EM-406)

$2.95 $1.48

Suggested Reading

If you are unfamiliar with any of the concepts below, we suggest checking out these tutorials.

How to Solder: Through-Hole Soldering

This tutorial covers everything you need to know about through-hole soldering.

Serial Communication

Asynchronous serial communication concepts: packets, signal levels, baud rates, UARTs and more!

Installing an Arduino Library

How do I install a custom Arduino library? It's easy! This tutorial will go over how to install an Arduino library using the Arduino Library Manager. For libraries not linked with the Arduino IDE, we will also go over manually installing an Arduino library.

Arduino Shields v2

An update to our classic Arduino Shields Tutorial! All things Arduino shields. What they are and how to assemble them.

Check out our hookup guides for more information about the temperature/humidity and pressure sensors on the shield. If you intend to collect wind and rain data, assembly instructions for the Weather Meter Kit can be found in our Weather Meter Assembly Guide.

GPS Basics

The Global Positioning System (GPS) is an engineering marvel that we all have access to for a relatively low cost and no subscription fee. With the correct hardware and minimal effort, you can determine your position and time almost anywhere on the globe.

MPL3115A2 Pressure Sensor Hookup Guide

Getting started with the MPL3115A2 Pressure Sensor.

Si7021 Humidity and Temperature Sensor Hookup Guide

The Si7021 humidity and temperature sensor is an easy to use, digital, low-cost sensor to aid you in all your environment sensing needs.

Weather Meter Hookup Guide

How to assemble your very own weather meter!

To understand how the libraries of the associated sensors work, we recommend the following tutorials.

Pull-up Resistors

A quick introduction to pull-up resistors - whey they're important, and how/when to use them.

Analog to Digital Conversion

The world is analog. Use analog to digital conversion to help digital devices interpret the world.


An introduction to I2C, one of the main embedded communications protocols in use today.

Processor Interrupts with Arduino

What is an interrupt? In a nutshell, there is a method by which a processor can execute its normal program while continuously monitoring for some kind of event, or interrupt. There are two types of interrupts: hardware and software interrupts. For the purposes of this tutorial, we will focus on hardware interrupts.