I wanted to have a log of outdoor weather with PC logging and graphs for quite some time now. There are such devices in the market but their cost is really high. So, decided to build one by myself and enjoy the experience too.Features
- Temperature, Humidity and barometric pressure measurement
- No external power for outdoor sensors required (solar powered)
- Wireless communication between outdoor sensor and PC
- Full logging and reporting on weather information on PC
- Relatively inexpensive and easy to build
Code is also available at https://github.com/zmashiah/arduino-StalkerV2WeatherStationComponents of the solution
What will you need to build this?
- Arduino compatible Seedstudio Stalker board for remote sensors.
- XBee based communication between outdoor sensor and PC
- Solar panel and LiPo battery for outdoor sensor power
- XBee Explorer connected to PC for communication reception
- C# based PC application to store, report and graph all data
- Seeduino Stalker v2 ($39). If you chose v2.1 there will be some code modifications required.
- Solar panel for powering the outdoor sensor ($ 2.00)
- A LiPo battery of 1000mAH or 2000mAh ($7.5 - $12)
- DHT22 Humidity sensor ($ 9.95)
- BMP085 Barometric pressure sensor ($19.95)
- A 10K Resistor
- 2x Xbee series 2 modules (2x $25.95)
- XBee Explorer ($ 24.95)
- Jumper wires
- USB Cable to connect PC to XBee Explorer
- Optional small bread-board to hook up the two sensors above. Choose either a solder-less one or something like this that does require soldering or any other alternative you think is suitable for you.
You will need UartBee
board to program the Seedstudio Stalker. Optionally you will also need an FTDI board
, 3.3V to see debug information from the stalker board. If you are in the business or hobby of building stuff, you should probably have one in the house. These module are not required after the assembly is done.Notes about the components:Battery
: I built the outdoor sensor unit with 2000mAh battery, however by monitoring the device for few months now, including winter I can tell you this is really an overkill as the battery does not get drained or even close to that. I have every reason to believe a 1000mAh or even less will be enough.Price:
For almost any of the components above, I recommend spending some time online, including eBay to find a much better price for each. My experience in the last 6months is that you can find things on eBay for fraction of the cost compared to the amateurs sites.Board:
I used the Seedstudio Stalker for remote sensor controller, however one can really build it with many other Arduino compatible boards. The reason I chose this one is because it has both XBee module socket, on-board real-time-clock (RTC), ready for LiPo battery power and charger, which are all great features that are required here. I did take advantage of the RTC for waking up the board periodically.XBee:
I used the 2mW Series 2 ZigBee modules while in fact for this application without future enhancements that I consider, one can use Series I modules and perhaps the 1mW versions. Since I plan future enhancements I used the Series 2 modules. As for transmitting power, the 2mW will be my recommendation. My house is built of concrete and the distance between outdoor sensor station and PC is not too long, still if I take it 5 meters further, the reception becomes very poor.
DHT22: You can choose to use DHT11 instead of the DHT22Other Tools you will need:
- Arduino IDE. I use the version 0022. Porting the code and libraries to newer IDE version should not be too difficult but pointless as far as I am concern.
- X-CTU tool for configuring the XBee modules
- I use the following libraries: TMP102 (Stalker on-board temperature sensor), R8025 (Stalker on-board RTC), BMP085 (barometric pressure sensor), DHT (for DHT22 humidity sensor), NewSoftwareSerial (for debugging console), Xbee-arduino (for wireless communication). All these libraries are included in the code ZIP file here, however if you decide to port or modify things here, I thought is important to mention this list. Specifically when porting to newer IDE note the name of NewSoftwareSerial was changed, and you need to use #include instead of #include (back-compat of the IDE was not high on the list I guess :-))
- Soldering Iron
This is a hobby build and not a product. I did not include any languages support other than English. I use only Celsius temperatures (you can modify code to use Fahrenheit if you want), there is no data archiving and grooming support and more similar stuff that makes something a product rather than a hobby build.