Hardware development

The weather station is based on the arduino open-source electronics prototyping platform which is easy-to-use hardware and software. The microcontroller can sense various sensors and provides enough flexebility to be extended. The picture below shows the sensor and base unit during the prototyping phase. Data from the outside sensor suite is send via a serial 2.4 Ghz link using xbees to the indoor base unit. The indoor unit receives the values every 20 seconds, measures additional indoor sensors and sends the data to a website in the local network. The base unit is connected to the LAN via a cabled ethernet interface. This data is then collected by a small weatherserver (meteohub) and logs the data for further processing.

Outside components

A Thies Clima small wind sensor unit is used for wind speed and wind direction. The Sensor has a single reed switch and two magnets to measure the rounds/sec. Wind direction is sensed with a 1 KOhm potentiometer. The reed switches are connected to a low pass filter for debouncing the signal to the microcontroller input.
The Davis 7852 Rain Collector is a tipping bucket rain gauge. Rain enters the collector cone, passes through a debris-filtering screen, and collects the water in one chamber of the tipping bucket. The bucket tips when it has collected an amount of water equal to the increment in which the collector measures (0.2 mm). As the bucket tips, it causes a reed switch closure and brings the second tipping bucket chamber into position. The rain water drains out through the screened drains in the base of the collector. I also included a heating system to measure the melted snowfall incase the temperature drops below zero degree Celcius.
Outside temperature and humidity is measured with a SHT15 digital humidity and temperature sensor. The SHT15 is the high-end version of the reflow solderable humidity sensor series with precise measurement accuracy. The SHT 15 capacitive humidity sensor is fully calibrated and provides a digital output. The sensor is mounted in a ventilated radiation shield made out of Melamin plates.

A TEMT6000 from Sparkfun is a silicon NPN epitaxial planar phototransistor in a miniature transparent mold for surface mounting onto a printed circuit board. The device is sensitive to the visible spectrum and adapted to human eye responsivity with a wide angle of half sensitivity φ = ± 60°. The sensor is used to measure light intensity to sense  sunrise and sunset times.

To measure the internal temperature of the outside unit and the temperature in the rain gauge,  DS18B20s are used . Those are digital thermometers with 9 to 12-bit Celsius temperature measurements. The DS18B20 communicates over a 1-Wire bus. It has an operating temperature range of -55°C to +125°C and is accurate to ±0.5°C over the range of -10°C to +85°C.




Finally for diagnostic the supply voltage of the power supply to the microcontroller is measured with a simple circuit using a TLC 2272 as shown in the schematics.




Heart of the outside unit are two arduino shields. The Arduino Uno is a microcontroller board based on a ATmega328. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz ceramic resonator, a USB connection, a power jack, an ICSP header, and a reset button. Additionally a  wireless Proto shield allows the Arduino board to communicate wirelessly using a Xbee pro module from Digi.



Weatherstation base unit

As the outside unit, the base unit senses temperature and humidity with a sparkfun SHT15 and measures the input voltage as shown for the outside unit. Additionally the following components are used:

Local pressure is measured with a  BMP085 high-precision, low-power barometric pressure sensor. The BMP085 offers a measuring range of 300 to 1100 hPa with an absolute accuracy of down to 0.03 hPa. It's based on piezo-resistive technology for EMC robustness, high accuracy and linearity as well as long term stability. This sensor supports a voltage supply between 1.8 and 3.6 VDC. It is designed to be connected directly to the micro-controller via the I²C bus.


To show some data on base unit  a 16x2 LCD with an embedded circuit based around a PIC 16F88 is used. The on-board PIC takes a TTL serial input and prints the characters it receives onto the LCD. The installed firmware also allows for a number of special commands so you can clear the screen, adjust the backlight brightness, turn the display on/off, and more.


To measure the signal strength received from the outside unit I use the xbee  PWM pulses which vary from 24 to 100%. Zero percent means PWM output is inactive. One to 24% percent means the received RF signal is at or below the sensitivity level of the module. The total period of the PWM output is 64 μs. The PWM percentage is calculated by high period / total period.



Components of the base unit are also arduino shields. The Arduino Uno is a microcontroller board based on the ATmega328.  Additionally a  wireless Proto shield allows the Arduino board to communicate wirelessly using a Xbee pro module from Digi and an ethernet shield connects to weatherstation to the local network.