Pages: [1]   Go Down
Author Topic: Arduino Weather Station  (Read 9629 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My Arduino powered weather station has been working great for the past few months so I thought I'd show it off in case anybody else is thinking of doing something similar (I get a few questions a week from people stumbling onto my crappy website).

The Arduino Parts:

1x Arduino Duemilanove
1x Radios Inc MRX-009 433.9MHz receiver
1x SCP1000 Pressure Sensor (Barometer)
1x Adafruit Proto Shield



I started this project before the 'Practical Arduino' book and its Weather Station Receiver came out.   However, thanks to other people (http://github.com/kayno/ThermorWeatherRx) who expanded on the books project some of the code i use is much better than the crap i came up with smiley-grin.

The big hurdle for me was the weather sensors.  I owned the Oregon Scientific WMR100N and at that time nobody had decoded the OS V3 sensor protocol.  So... i spent months learning and decoding the signals myself.   I won't bore you with the protocol.. but if you want more info you can read about it here: http://www.lostbyte.com/arduino-osv3/

The Arduino captures data from 3 remote sensors:  Wind (speed and direction), Rain and Temprature/Humidity.



A quick rundown of how it works:
  • Data is captured by the Arduino and sent via USB to a server in my basement.
  • A windows service logs the data into a SQLite database
  • The web server pulls the information from the windows service (using WMI) to get real-time and historical data.

The end result looks something like this...



You can see it in action here:  http://www.lostbyte.net

I've expanded my Arduino RX code to handle 'custom' sensors.. I'm currently working on a Soil Moisture sensor and a Snow sensor (to detect the amount of snowfall in Inches).

Other future enhancements on my list:
  • Switch the DB/host server over to Linux.  The only reason the site stops working is due to Windows 2003 server giving me greif.
  • Get rid of the USB cable and use the WiShield I have laying around

It's been a fun project and has wasted countless hours  :smiley

~Brian
« Last Edit: August 05, 2010, 10:59:29 am by TheLost » Logged

Boston
Offline Offline
God Member
*****
Karma: 3
Posts: 575
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That is awesome.  
So far for my project I have a WiShield connecting to my network and updating Pachube with temperature and sunlight levels.  Someday I hope to tackle a project like yours.
The only thing I would add is a stand alone graphic LCD & Duemilanove to get the weather without having to turn on my computer.  But , I suppose the Oregon system already came with a screen.
Nice job.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The only thing I would add is a stand alone graphic LCD & Duemilanove to get the weather without having to turn on my computer.

I didn't want to look like too much of a nerd.... but... i've already done that  smiley




~Brian
« Last Edit: August 05, 2010, 11:29:55 am by TheLost » Logged

Netherlands
Offline Offline
Sr. Member
****
Karma: 1
Posts: 290
(:-)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've just ordered a 433MHz receiver to start something simular. My weather station has an usb connection but it's windows only and I don't want an energy hungry pc running all the time.
Logged

North Yorkshire, UK
Offline Offline
Faraday Member
**
Karma: 104
Posts: 5531
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I didn't want to look like too much of a nerd.... but... i've already done that
Oh yes, that makes you such a nerd  smiley-grin
Come on!

I think I might have seen yours then, or someone elses with an LCD.

Nice interface going on this one, could you have it log the data (perhaps that was in the plans anyway) then upload to a computer periodically (when your computer's on)?

Mowcius
Logged

Australia
Offline Offline
Full Member
***
Karma: 7
Posts: 210
AVR Microcontrollers
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

TheLost thank you!

The wait was well and truly worth it.

Your descriptions of the protcol are well set out.

Your code is most impressive. Using timer1 is inspired.

From your work I would'nt mind betting that you have also had some teaching experience.

I few of us are now going to be busy with our 433.92 Mhz receivers.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

How do you measure the wind speed, im in the process of trying to make a cheap wind speed measuring instrument.  
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Your code is most impressive. Using timer1 is inspired.

I can't take credit for that... My original code for receiving the signal was horrible.  http://github.com/kayno/ThermorWeatherRx and http://www.practicalarduino.com/projects/weather-station-receiver did most of the RX logic.

Quote
Your descriptions of the protcol are well set out.
...
From your work I would'nt mind betting that you have also had some teaching experience.

If one of the developers i work with where to put a design spec on my desk as hastily created as my OS V3 protocol discriptoin id make them do it over again  smiley .  




Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
How do you measure the wind speed, im in the process of trying to make a cheap wind speed measuring instrument.

The Anemometer i use broadcasts the wind speed and direction for me.  All i need to do is convert it from meters-per-second to miles-per-hour...

However..  the logic and mechanics are fairly simple.  As the wind blows it pushes/spins the cups on the wind sensor.  It uses either a Hall effect sensor, Phototransistor or reed switch to count the rotation of the cups.  The faster the cups spin... the stronger the wind.  The hard part is getting the formula that converts RPM to some type of wind speed  (for example.. 1 rotation = 2.5 mph).  It's probably easier/cheaper to buy a wind sensor that provides the formula.

My friend recently finished an Arduino project that captures and logs Wind Speed.  He's using the data to help plan/build wind turbines for a remote cabin he's building.  His project is documented here (w/ his Arduino sketch): http://blog.flgator.com/2010/05/arduino-wind-speed-data-logger/.  IMHO, its a way more USEFULL project then my 'how hot is it in my backyard' weather station project smiley

~Brian



Logged

Australia
Offline Offline
Full Member
***
Karma: 7
Posts: 210
AVR Microcontrollers
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
id make them do it over again  

That would be way to harsh. smiley-sad

The colors alone should be worth some brownie points.
Logged

Pages: [1]   Go Up
Jump to: