Being able to measure and record outdoor weather data is something that I have wanted to do for quite a while. A few years ago, I bought a commercial, all in one, "weather station" at a ham radio swap meet. This system has an anemometer, thermometer, barometer, rain gauge and humidity sensor mounted on the roof. An RF link brings the data down to a display in the house. It has two significant problems: 

1) there is no way to record the data, with a short power glitch and all the stored data is gone. 

2) The best place for an anemometer is a terrible place for a thermometer. 

Anemometers work best in a clear area, away from trees and wind obstructions. Thermometers need to be out of the sun to measure air temperature accurately. The only clear area in our yard is in the middle of the house roof. As long as the sun is up, the rooftop temperature reads about 10 degrees F above the temperature in the shade. 

It might be possible to access the measured data inside the commercial display box, but it will not be simple to do. This is the motivation behind this project.

Several years ago, I built a box that displays time, temperature, humidity and barometric pressure  information in my electronics shop area. In the future, I thought that I might expand it to display the outdoor weather information too. This weather display uses the large matrix LED displays that I have been working with for a while.

Previous Indoor Time. Temperature, Humidity, and Barometric Pressure Project
Previous Indoor Time. Temperature, Humidity, and Barometric Pressure Project

I like this display, but it is not a piece for the living room of a house, not even my house...  Initially, I thought about building a "headless" system that would just record the data to my PC. After thinking about it more, I decided that displaying the data without having to power up the PC would be nice. This grew into the idea of a small indoor display and an outdoor sensor box. There are already enough of the large LED matrix displays operating in the house, so I decided on some smaller LED matrix displays in a small enclosure that will sit in the living room. This project became sort of a mini-split version of the large box displaying indoor conditions.

Outdoor Temperature, Humidity and Barometric Pressure Project
Outdoor Temperature, Humidity and Barometric Pressure Project

There is already a convenient run of CAT 5 8 conductor cable from the living room to a spot on the back porch. Since the box would require power anyway, I just opted to use RS422 for communications instead of wireless. RS422 is a differential physical layer standard that has good noise immunity which seems important for a 20 meter run of unshielded wire. The two RS422 serial data paths (Rx,Tx) use 4 wires and the remaining 4 wires are used for power to the remote sensor box. Two of the power conductors provide +5V and two provide ground. An electronic current limit on the power to the remote sensor box protects the cable and box from problems.

Both the remote sensor and the display units are smart boxes using SAMD21 microcontrollers.

The remote sensor unit has a real time clock, barometer, and temperature/humidity sensor operating on an I2C bus. Sample data is cached in a circular FIFO buffer that will hold up to 15 days of samples. Samples are captured for the FIFO every 15 minutes. The communications protocol between the display unit and the remote unit support immediate measurement requests as well as fetching the contents of the sample FIFO.

Data to update the displays on the display unit get requested from the remote unit once per minute by the MCU in the display unit. This MCU also handles formatting for the LED displays. A USB serial port on the display unit connects to the nearby PC. The display unit passes commands from the PC through to the remote unit and returns requested FIFO sample data from the remote unit to the PC. A small program on the PC requests the FIFO sample data and stores it in .csv files. This program runs every time I log into that PC.

The remote unit is housed in a...

Read more »