WH1080 WeatherStation with arduino and WeeWX

WH1080 Weather station mounted on roof

The Fine Offset WH1080 Weather Station (available at Clas OhlsonMaplin 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.

 

jeenode_bmp085_dht22_433mhzfsk_schematic jeenode_bmp085_dht22_433mhzfsk_breadboard

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.

 

Leave a Reply

Your email address will not be published. Required fields are marked *