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.