Weather Station

This project was created for an embedded systems class at Rose-Hulman, and was required to demonstrate our ability to utilize microcontrollers.  The project was created by a small team including me and one other member, Nick Kiesel.  The goal of this project was to create a high quality weather station that gives accurate predictions for the users local weather, while also being cost effective.  Current weather stations are extremely large and expensive.  While they can achieve more accurate data alone, we found that by connecting our smaller station to the cloud allowed for just as accurate data, by comparing data to those with weather stations nearby.

The project uses two main microcontrollers, an Arduino and a Raspberry Pi 2.  My part of the project was to complete the weather station, while Nick’s was to complete the base station.

In the weather station, I used the Arduino, which is a low powered microcontroller.  This allowed for the weather station to be cheap and use very little power.  Both the base station and the weather station utilize Xbee 900MHz transmitters, which are low powered transmitters to send data over long distances.  This allows for the base station and the weather station to communicate over long distances.  Finally, the weather station has a BME280 weather sensor to measure the current weather conditions (temperature, pressure, humidity) and a 10,000 mAH battery to run for long periods of time.  I programmed the weather station to collect data and send it over a custom protocol to the base station, where Nick received the data, parsed it, and uploaded it to a web service that helps us predict the weather data.  In addition, Nick configured the base station to display the data on a 720p LCD display with the Raspberry Pi computer.  He also designed the electrical design for the base station, while I designed the weather station.

Most goals were reached in the creation of the project. The project transmits weather data over a long range, which was desired. It penetrates walls well, and in testing was able to go through multiple walls in a college residence hall. The battery life on the weather station was targeted to be extremely long, possibly weeks, and in testing great battery life was achieved, decreasing only 10% per day after transmitting data every two seconds. This could be expanded by transmitting at longer intervals. Every single electrical component is modular and can be replaced without desoldering/soldering. This allows for rapid repairs if a customer were to ever have problems with their product, as faulty components can literally be “swapped out” if needed.  The goal was to create a seamless design that is user friendly. The LCD allows us to expand the project with more user elements as the project grows, and an internet connection allows for over-the-air (OTA) updates to be deployed to add new features.  Overall, we reached most of our goals and created a great product.

A final report of the project, including analysis, circuit designs, parts, and more can be found on Google Drive: https://drive.google.com/file/d/0BxDNYNPyUql6cGF0STF3SmNOZTQ/view?usp=sharing

The code for both the weather and base stations can be found on Github here: https://github.com/lkuza2/ECE230-Weather-Station/