As part of my embedded systems course I'm doing, I was able to design any project that I would like as long as it covered an embedded system. From this came the idea to create a Weather Buddy design utilising the Electric Imp and Arduino Due to provide a simple an easy output of the weather.
The main points of the Weather Buddy System was to create a way so that a user can easily and visually see the temperature and weather type for a particular day in both day and night times using specified lights. It also needs to be able to give more detailed information if needed and lastly give a recommendation for a specific item for the day to simplify a user's life in what the expected weather would be like outside.
This was designed in a few units, firstly the Electric Imp would go online using WI-FI and obtain weather data from the internet for a specified location (in this case the Weather Underground API was used). This data would then be sent from the Imp to the Arduino Due through the UART. Once sent to the Arduino, the information is then processed into three main variables which are 'location', 'weather type' and 'temperature'.
The information is then displayed to the user in three main units as outlined below:
The LED unit shows a variety of 10 RGB LED's, which are set up with a common ground for each colour utilising three transistors. Each LED lights up depending on the temperature that was obtained from the Electric Imp. This is done in 5° Celsius blocks so that a temperature of 20°C would light up four LED's. The LED also change colour depending on the weather type so that red is used for clear or sunny, Blue is used for raining and green for cloudy. This is designed so that a user can grasp an easy and quick view of the current weather information outside using as little time as possible.
The LCD part of the system outputs the information onto the display for a simple and quick view. This allows a user to easily gauge a proper perspective in not only checking what type of weather it is in detail but also the exact temperature, which isn't gained through the simple display of the LED Unit.
Recommended Item and Display
A recommended item and display was also set up so that different items could be obtained depending on the weather type. This was done by firstly showing a recommended item to the user with a green LED next to it, for example lighting up either a jumper, umbrella or hat. A sensor system was also used with an LDR so that the Weather Buddy System could tell that something was placed in the sensor. Lastly servos were utilised so that with the hand placed in the correct area the item would easily fall into a person's hand and could be quickly used for the day.
SMS Notification Unit
Lastly a notification was set up so that at a specific time of day such as the morning a SMS would be sent to the user's phone detailing the complete weather details for that time in the specific location. This was done by using the Twilio API found online.
With the design thought up I finished by making a prototype of how I hoped it would come out. The video of the prototype can be seen below.
Weather Buddy System
In the design of the weather buddy system, I got very lucky as I found that sending SMS data and obtaining weather details were very simply written through tutorials on the Electric Imp developer's site. The prototype did end up achieving all my design goals I had planned for it though and the useful information given for developers for both the Electric Imp and Arduino Due made things a lot easier. It also helped show many of the features I was curious about on the Electric Imp, and how well it can be integrated as an embedded system with the Arduino Due.
Weather Underground API: http://www.wunderground.com/weather/api/
Electric Imp Developers Wiki: http://devwiki.electricimp.com/doku.php