The Fine Offset WH1080 Weather Station (available at Clas Ohlson, Maplin Electronics and numerous other places) is a low-cost, easy to use wireless weather station that transmits data over
868Mhz and can easily be decoded using an RFM12B chip and an Arduino.
Hardware Setup
The weather station hardware includes sensors for temperature, humidity, rain, wind speed and wind direction. It is powered by two AA batteries and should be mounted high-up with an unobstructed view of the sky to obtain the most accurate readings. But ensure that you can access it safely for maintenance.
Wireless 868Mhz Receiver Hardware
The WH1080 comes supplied with a USB connected display but this is not entirely reliable and places restrictions on how data can be retrieved.
Thanks to the work of SevenW, rinie and others it is possible to receive the data using an Arduino and an 868Mhz RFM12B chip. Specifically, a Jeenode v6 and a custom PCB to add a BMP085 (pressure/temperature) and a DHT22 (humidity/temperature) sensor. Note: The design and code also includes a 433Mhz sensor for receiving Homeeasy sensors and similar, but the range of the chosen sensor was around 1m so totally useless for the intended purpose.
Custom PCB Schematic (drawn using Fritzing).
All files are on github here including fritzing source file.
Custom PCB Breadboard (drawn using Fritzing)
Arduino Firmware
Sourcecode and a pre-compiled hex file are available on github here. You will need to be familiar enough with Arduino development to upload the sketch/hex file to the board.
WeeWX Interface
The board is connected to a raspberrypi running debian linux using an FTDI serial to USB adapter.
Install weewx by following instructions at: http://www.weewx.com/docs/debian.htm
I had to install the following dependencies:
apt-get install file libexpat1 libfreetype6 libjpeg8 liblcms1 libmagic1 mime-support python python-cheetah python-configobj python-imaging python-minimal python-serial python-usb python2.6 python2.6-minimal python2.7 python2.7-minimal ftp python-pip
Install the weatherstationfsk weewx extension:
wget https://github.com/mattwire/weatherstationfsk/raw/master/weewx/weatherstationfsk.py cp weatherstationfsk.py /usr/share/weewx/weewx/drivers/
Add the following to your /etc/weewx/weewx.conf (make sure you adjust port to match the actual device on your system):
[WeatherStationFSK] # This section is for the WH1080 connected via a WeatherStationFSK Arduino. # Debian, Ubuntu, Redhat, Fedora, and SuSE: # /dev/ttyUSB0 is a common USB port name # /dev/ttyS0 is a common serial port name # BSD: # /dev/cuaU0 is a common serial port name port = /dev/weatherstationfsk ###################################################### # The rest of this section rarely needs any attention. # You can safely leave it "as is." ###################################################### # Serial baud rate (usually 9600) baudrate = 9600 # How long to wait for a response from the station before giving up (in # seconds; must be greater than 2) timeout = 15 # How long to wait before trying again (in seconds) wait_before_retry = 10 # How many times to try before giving up: max_tries = 3 # The driver to use: driver = weewx.drivers.weatherstationfsk
Configure other parameters in the config file as desired and you should now have a working weather station. Mine uploads to Weather Underground with station ID ILITTON2.
I’ve been trying to set this up, and found examples of people working on this from a few years ago. However I’m not sure anyone is still around to help me! I’m receieving packets every few seconds from the WH1080 – these are shown in the LOGRAW as “nok” followed by a hex sequence, but I get nohting else. Is this a problem with the WH1080?