The Weather Shield is an easy to use Arduino shield that grants you access to barometric pressure, relative humidity, luminosity and temperature. There are also connections on this shield to optional sensors such as wind speed, direction, rain gauge and GPS for location and super accurate timing.
These Weather Shields utilize the HTU21D humidity, MPL3115A2 barometric pressure, and ALS-PT19 light sensors and relies on the HTU21D and MPL3115A2 Arduino libraries. Each shield comes with two unpopulated RJ11 connector spaces (for optional hook up of rain and wind sensors) and a 6-pin GPS connector (for optional hook up of a GP635T GPS module). Finally, each Weather Shield can operate from 3.3V up to 16V and has built in voltage regulators and signal translators.
Note: The Weather Shield comes as a stand-alone board. Headers, connectors, and additional sensors will need to be purchased separately, check the related items or wish list below!
Note: This shield was designed for the SparkFun Redboard and Arduino Uno and will not work with other boards (like the Arduino Yun, for example) without modification.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Rookie - The number of pins increases, and you will have to determine polarity of components and some of the components might be a bit trickier or close together. You might need solder wick or flux.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 18 ratings:
7 of 7 found this helpful:
Note that if you plan to use this in conjunction with the XBee Shield there are some pin conflicts. The XBee Shield uses pins 2 and 3 for serial communication and the Weather Shield uses pins 2 and 3 for the rain and wind gauges. If you don’t plan to use the rain and wind gauges then it “just works”, but if you install the rain or wind gauges then you’ll have to move the serial communication of the XBee to different unused pins.
2 of 2 found this helpful:
Building a weather station is my first foray into building products. I am amazed at how consuming the process has become. I am using a Raspberry Pi 2 B as the front end and developing off the Windows 10 Weather Station project. So much to learn and experience.
1 of 1 found this helpful:
Not sure I see the win with having a GPS module designed in: when is this thing going to be environments that move about? A much more practical add-on would be a header for the ESP8266 Wifi, which would make this cloud-connected out of the gate. Especially with Wunderground which requires only a simple HTTP POST.
I’m considering my options on bolting one on myself. I could either tap into the JST connector, which brings out the UART, or I could stack a simple shield. Would like to avoid the latter as it seems overkill and thickens an otherwise svelt device (esp if you just use male header pins between an Arduino Pro and this shield).
The problem with using the JST connector is it brings out the UART (soft or hard) directly without level-shifting. The GPS module might be ok with that, but not so sure about the ESP8266. One option is to use a 3.3V Arduino Pro, but I happen to have only 5V units in the bin. I could add level-shifting myself on the piggyback board, but then I need access to 5V, where the JST only brings up VBATT in addition to VCC. I suppose I could jumper VBATT to 5V and I’d have what I need.
Or I could just sandwich another shield in there and have 5V accessible directly. Decisions, decisions.
But again, I’m not sure who would bother adding GPS to this. I’d think that adding cheap and easy Wifi would be quite popular.
1 of 1 found this helpful:
The first part I ordered had a defective humidity sensor. Sparkfun promptly sent me a replacement weather shield, and it works great! I am amazed at the resolution and accuracy of the pressure, temperature, and humidity sensor. Be aware, though, that heat generated from other Arduino boards/shields can cause false temperature readings. Using the software I2C sensor libraries, I was able to get the weather shield working with an Arduino Yun board. However, mounting the shield directly to the Yun resulted in false temperature readings due to the heat generated by the Yun board. The Yun will not be in my solar powered, wireless weather station due to the Yun’s excessive power draw.
4 of 4 found this helpful:
Nice board. Easy to use. Bug in example code calls “get_wind_speed()” twice per 1 second loop - should only call once, as it needs the 1 second period to calc the wind speed. Called from both main loop and calcWeather.
Works fine! Easy to install and use.
Easy to assemble and code for. Also tastes delicious. 10/10, would eat another one.
Great little shield
I have it running on Arduino MEGA, logging to and SD card… Power comes form a couple of 6000Mah Lipos
I may build in WIFI connectivity to Wundergound…
As member #6619 mentioned, theres a bug in the sample code. Simple enough to fix!!
I bought this along with the weather sensors (wind speed, direction and rainfall). Got them all mounted to my roof and this shield attaches to an Uno which reports serially to a raspi, which it turn posts data to weather underground.
Pressure seems to read about 5 inhg low (after converting the raw pascal measurement using: reading / 1000 * 0.29529980164712). Perhaps my conversion is flawed?
Other measurements seem to be close to reality, but I’m not currently conducting a controlled experiment to find out.
I am using the example firmware code provided in the product description page.
I bought one of these for use in an outdoor weather station uploading to Wunderground.com (as described in the tutorial). I am currently operating and uploading to wunderground using the 6Ah Lipo battery pack, a Sparkfun Arduino redboard, an Electric Imp, and the Sparkfun ‘huge’ solar cell as described in the tutorial. As a bonus, I also upload the data to data.sparkfun.com as you might also be able to figure out from the code. So far, it has been operating flawlessly inside a protected enclosure buried in a solar radiation shield. I liked this board so much, I bought another to monitor the ‘weather’ inside my house, or wherever else I want to place it. I even used this information to tweak my winter furnace settings to perfection using the output uploaded to the Sparkfun Phant server and plotting the results in excel.
As far as accuracy, I compared the outside temperature, humidity and pressure readings to the nearest official readings and they are amazingly close. Much better than I even hoped for (don’t forget to correct the pressure for your local altitude, by the way, as you should see in the code).
I suspect you will learn a lot if you buy this board and make your own wunderground station. I know I did. I also expect to apply this learning on my own (future) IoT projects. Bravo, Sparkfun!
EDIT: I’m still having a lot of fun with this board, and it’s been online and uploading to Wunderground for a couple of months now. A couple of improvements I made: I was not getting good feedback on the battery level with the example code so I added a “fuel guage” battery charge status board and upload the data to my data.sparkfun.com stream so I have good feedback on current battery status. It is pretty interesting to monitor the solar powered charge level given variation in sunshine and interfacing with the “Sunny Buddy” solar charge circuit.
I decided to package all the electronics in a weather proof box, which means I needed to have remote temperature sense capability (since reading temperature inside the housing would not be correct). To accomplish that, I added a DS18B20 temperature chip that I mount remotely in my solar radiation shield. That has also been working really well. This is much easier than trying to stuff all the electronics inside the solar radiation shield.
A number of reports of bad data from the Temperature/Humidity sensor reported on the Github site. I experienced this problem, so I installed a DHT22 on it.
Example code is not so great either. Took a lot to clean up.
Still, it’s been running outside for six months.
Using the sample code, I had this unpacked, soldered and sending data within 30 minutes. I have it logging to a Raspberry Pi, which is then sending the data to the Internet.
I’ve had it running continuously for about 30 days with no problems. I’ve not tried the wind or rain gauges.
I have just completed interfacing the WS to a chipKIT Pro MX7 mostly because I wanted to look at the sensor performance. The pressure sensor requires some tuning of the I2C register read function in that there is a delay between when the pressure sensor is commended to take a measurement and when the data is available. The Hold mode doesn’t appear to work at all. To use the No Hold mode, I needed to inset a 50 ms delay between writing the command and reading the measurement. The barometer reads about 2.56 in Hg low. The humidity sensor reads about 3% RH low The temperature measurements between the pressure sensor and the humidity sensor differ by 1 degree F and both read about 6 degrees F high. This may be due to my hardware configuration. These sensor measurements were compared to a General Eastern Model 900 Thermal-Hygrometer.
The light sensor doesn’t appear to have much functionality since the WS circuit board cannot be exposed to the outside environment.
The bottom line is that I believe I will bet better results using sensors packaged individually but it was fun to play with.
Hi, Thanks for the feedback. We have used these in long term outdoor projects (https://learn.sparkfun.com/tutorials/weather-station-wirelessly-connected-to-wunderground?_ga=1.22051570.833401513.1365169143) however, you do need to take specific consideration to how the device is housed outdoors. You could certainly build a system using individual components as well if that’s feels more user friendly. Happy hacking!
I had created my own board to accept the RJ45 connectors from the Weather Meter using discrete components. However it was much more bulky than this device as I also had an external SHT22 (humidity/temp) and a light intensity board.
This makes a much more compact weather device and even has slots in the board for arc'ing protection.
I recently bought this shield and weather meters to build my own weather station due to damage to my old system. Setup and programming was easy thanks to Nate’s tutorial. Recommend this product for those weather enthusiasts that want to build their own station,
There is no way to mount the shield properly on the Mega or UNO since the USB shield gets in the way. Secondly, in order to be useful, you have to mount the entire shield in such a way that it is exposed to the raw elements all the time.That becomes problematic with the mega underneath it. So use it to make sure you can interface all the sensors and use the sensors themselves outdoors.
HI, The best way to mount these outdoors would be in a weather meter box like these. http://www.weatherforschools.me.uk/html/weatherboxes.html They protect the sensors from the elements while still allowing access to air for sensor readings.
It’s a great starter for a weather station having a collection of basic environmental sensors and interfaces.
It can be challenging to get the code needed to handle all the sensors, GPS, and connect to the cloud on an Arduino Uno (Redboard). I did!, but resorted to streaming NMEA 0183 standard sentences to another board providing cloud gateway functions.
Some improvements would be to allow remoting of the light/temp/humidity sensors to allow the main board to be protected from the weather and just the essential sensors exposed.
Not sure if it will interface directly with 3.3V powered Arduino’s such as the Due, but with the Photon version I will likely build my next solar powered, cloud connected weather station on the Photon just due to code space.
I have two of these, in two different locations, mounted on Arduinos with Ethernet Shields. By remixing code from SFE and code from Xively, I have them uploading all the data to the Xively service. From there, I access the data in a custom iOS App (but the same info is available in a browser). The set up has been working over a year now.