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
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 :