My weather station has been operating since January 2000 when I started collecting temperature data. I added rainfall, wind direction and finally wind speed as assembly programming of the PIC micro-controller took a while to learn (and I haven't done any since). I replaced the original DS1820 temperature sensors with DS18B20 sensors. Comparing the DS1820 sensors with the DS18B20 sensors, the DS1820's I was using read about 2 degrees C low.
In December 2005, I upgraded the weather station with a WX175 weather kit from Peter Anderson in the US. If anyone is thinking of building a weather station, I strongly recommend that you look closely at this kit. I've used it as the core of my instrumentation building software to poll it and extract data. It has been very reliable, running without needing a reset since being commissioned.
I used a PICAXE-18X to read the anemometer and wind vane as the I planned to use the counter input in the WX175 weather kit to count rain gauge tips and I also wanted to utilise my existing wind vane. I found the Picaxe micro-controllers easy to program and use compared to my efforts in assembly programming of the PICs themselves.

Here is a block diagram of the current weather station:


A brief description of the functional blocks:

Wind Vane: Original design I built in early 2000 in a plastic peanut butter jar and was re-built in Sept 2005. See the details in the Anemometer and Wind Vane sections. A Maximum Weather Instruments wind vane has replaced the previous home constructed vanes I've used over the years. The output from the vane is applied to the inputs of the Picaxe micro-controller. The Picaxe sends the current wind direction and the number of anemometer counts to the weather PC every 3 seconds. The number of anemometer pulses and wind direction is collected by a Python script and put into a list to calculate the wind average and maximum gust speeds over a 10 minute period along with the prevailing wind direction.

Anemometer: A Maximum Weather Instruments type 41 Hall effect anemometer with 2 pulses per revolution. More details are in the Anemometer and Wind Vane sections. The output is counted by the Picaxe micro-controller which has 2400 baud serial output to the weather PC to send the number of pulses counted every 3 seconds.

Rain Gauge: The Rain-o-Matic tipping bucket gauge has recently been replaced by a near new surplus tipping bucket gauge. It can't be calibrated but after measurement with a burette, I found it measured 0.5mm per tip which is satisfactory for a home station. The WX175 weather kit counts the rain gauge tips with its counter input and this is read by the weather PC every 10 minutes.

Temperature: I'm using 2 DS18B20 temperature sensors for outside temperature measurement. See the temperature section for a description of the screening of the sensors from direct sunlight and the reason for having 2 sensors. These 2 sensors are on the TRUN0 of the WX175 weather kit. There are 3 DS18S20's on the TRUN1 input for indoor, web cam box and server cupboard temperature monitoring.

Humidity: I've mounted the SHT-71 sensor I purchased from Peter Anderson in a gauze enclosure with the temperature sensor on the south side of the house. I have mounted this way to keep it free from spider webs and fly spots. My temperature screens seem to attract them.

Barometer: A MPX4115AP pressure sensor also purchased from Peter Anderson at the same time as the WX175 kit measures atmospheric pressure. I'm polling the sensor every few seconds and averaging the values collected every 10 minutes.

Web-cam: Currently not operating

Weather Station PC: From December 2012, I replaced the PC with a Raspberry Pi. This was mostly to reduce power consumption and add the ability to run from a small sealed lead acid battery in the event of a power outage.  The Raspberry Pi runs the same python scripts as the PC and also utilises the the cron scheduler for some tasks. All data collected is added to a MySQL database.

Updated 8 December 2013