This is only a preview of the March 2015 issue of Silicon Chip. You can view 36 of the 104 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Articles in this series:
Articles in this series:
Articles in this series:
Items relevant to "Spark Energy Meter For Ignition Checks, Pt.2":
Items relevant to "6-Digit Retro Nixie Clock Mk.2, Pt.2":
Items relevant to "Modifying the Currawong Amplifier: Is It Worthwhile?":
Articles in this series:
Purchase a printed copy of this issue for $10.00. |
A professional quality Weather Station based on
System designed by A. Caneira*
Built and written by Trevor Robinson
B
ased on the Arduino Nano
platform (see right), this lowcost weather station system is
very flexible, with many options.
To construct this system you
will need some basic electronic and
computing experience. If you have
built and programmed projects using
the Arduino platform and associated
electronics, then you shouldn’t have
any trouble building this one!
Part 1
It can use quite a few
different sensor types,
though in an attempt to
simplify the project somewhat,
we’ll be sticking to only a few.
The Arduino Nano is a small
microprocessor board based on the
ATmega328 chip that comes preprogrammed with a special bootloader
which in turn allows easier end
use programming via USB and the
There’s a wealth of weather information available – everything from temperature and humidity to rainfall and windspeed.
30 Silicon Chip
siliconchip.com.au
Main features of
433MHz
Existing Fine Offset
Sensors
WeatherDuino
TX Unit
433MHz
• It uses affordable parts.
USB
Internet
WeatherDuino
RX Unit
Windows PC
With Cumulus
433MHz
WeatherDuino Pro2
Wireless Weather
Station System
WeatherDuino
Pro2 Remote
Wireless Display (Optional)
Arduino IDE (integrated development
environment).
It comes with 32KB flash memory
though 2KB is used by the bootloader.
Its clock speed is 16MHz and its
recommended supply voltage is 7-12VDC.
Overview
This system can be built in a few
different configurations using the
following modules.
TX Unit (Transmitter Unit}. Gathers
and processes data from the sensors then
transmits this data as packets at
different time intervals (for example,
wind data is sent every five seconds).
Construction and configuration will
be covered in Part 2.
RX Unit (Receiver Unit). Receives
the data from the TX unit and displays
the data on either a 20x4 character LCD
or 1.8” 160x128 TFT display. You can
even run multiple RX units off one
weather sensor suite. The RX unit
can transmit to the Wireless Display
unit (described next). It also displays
the temperature and humidity of
where it is located. Construction and
configuration will be covered in Part 3.
WD Unit (Wireless Display Unit).
• Uses the commonly available and
affordable “Fine Offset” sensors;
Anemometer, Wind vane and Rain
gauge. The system also allows the
sensors to be moved away from
each other to better locations.
• Has the accuracy of a high-end
weather station by utilising DHT/
SHT temperature and humidity
sensors.
• Can measure and report solar
radiation and UV levels with
optional board.
• Connects to a Windows computer
running Cumulus software.
This excellent software also
allows the unloading of data
to your own Weather web site
and online services such as
WeatherUnderground. Support
for cross platform (Windows, Mac,
Linux/Raspberry Pi) operating
systems is currently in beta testing.
• Can run multiple wireless display
units that can show the outside
data along with the current
location temperature.
• The outside weather data
transmitter (TX Unit) can be run
from a solar cell-charged battery.
• Communicates over 433MHz with
better reliability and data integrity
than the donor weather station.
• Range can be up to 100m
depending on the antenna used
and environment.
• Can use either an affordable LCD
or TFT Display on the receiver unit
(RX Unit).
• All modules synchronise time from
the host computer.
A completed Receive Unit (RX unit) in a nice case. The heart of the system is the
Arduino Nano shown opposite.
siliconchip.com.au
* www.meteocercal.info/forum/
March 2015 31
At left is a receiver board fitted to a wall or desk display case. Above (top) is an assembled transmitter (TX) board. This
gathers data from each of the sensors and transmits it to the receiver (RX) board, which is shown lower right. This is the
latest V4.02 board.
Displays received data from the RX
unit on either a 20x4 character LCD
or 2.4” 320x240 or 1.8” 160x128 TFT
display.
Wi t h i t s o w n t e m p e r a t u r e /
humidity sensor, it too can display the
temperature and humidity of where
it is located. You can have multiple
WDU’s spread around the home or
office, as long as they are in range of
the RX unit signal.
Construction and configuration of
this will be covered in Part 4.
Solar Radiation Sensor. Interfaces
to the TX Unit to supply UV and
radiation data. At the time of writing,
a standardised setup and procedure
is being developed. Currently it’s a
bespoke solution due to variations
in the solar cells used. For more
information on this, it would pay to
read up on it at the Meteocercal forum
(www.meteocercal.info/forum/).
System modules diagram
The TX, RX and Wireless display
units communicate using 433MHz
license-free modules. The TX unit
sends the weather data packets to the
RX unit, which processes this data and
sends it to the PC running Cumulus,
via USB using the Davis Pro2/Vue
protocol.
If you install the few, and optional,
extra data relay components, the RX
unit actually becomes a transceiver
and can relay data to the optional
Wireless Display unit. If you wish,
you can build and use more than one
Wireless Display unit.
At the conclusion of this series of
articles, you will have a fully-featured
weather station.
You will also have a Wireless Display
Unit that you can put anywhere
around the home or office to view the
current weather data.
If you install the recommended free
Cumulus software (please donate to
the developer if you do), this weather
station’s data will also be able to be
viewed on the host computer screen
and if desired, uploaded to a website to view anywhere, via Twitter,
These graphs show the comparitive accuracy of the Sensirion SHT1x series. To keep the project simple, we are going with
the SHT10, which we think is the best mix of value versus accuracy. If you want higher accuracy, you’ll pay more!
32 Silicon Chip
siliconchip.com.au
WeatherUnderground and a few other
on-line services.
Choosing a temperature sensor
The Sensors
Like most things
in life, the more
you pay, (usually!)
the better they are.
This is also true
for temperature
sensors. Here it’s
a trade-off of price
vs accuracy.
Fo r o u t s i d e
temperature we
usually have a
better sensor for
this location, one
that reads more
accurately across
the expected
temperature and humidity range. We
can get away with a cheaper sensor
for inside due to the smaller range of
temperature and humidity.
So do some research and figure
out what temperature and pressure
sensors you want to go with. Mind you
it’s easy to swap these out later if you
wanted to upgrade them.
To keep the project somewhat simple
Now let’s turn our attention to the
sensors that connect to the WeatherDuino
Pro 2 TX Unit and how they work.
The system is designed to use the
“Fine Offset” sensor suite. These can
found on auction sites etc. Fine Offset
weather stations (and their sensors) are
often rebadged under a lot of different
brand names, ie, Digitech, Holman and
a lot more.
If the sensors look like those at right
then they are very likely to work.
LaCrosse sensors should too, though
they’re untested at the time of writing.
Additionally, the system is also
compatible with the RF rain gauges
and anemometers from weather
stations like Auriol H13726, Ventus
W155 and other clones, though these
seem to be uncommon in Australia.
The Anemometer: This sensor
measures wind speed. It is a simple
device that uses a reed switch and
magnet to measure rotation speed.
The Arduino counts the pulses to
work out the speed.
The Wind Vane: This measures wind
direction. It too uses a magnet and
reed switches (usually eight or
sixteen) to switch in various value
resistors, depending on which
reed switch the magnet (attached
to the vane shaft) is closest to. The
Arduino reads the resistance and
from this works out where the vane
is pointing.
The Rain Gauge: Once again, this uses
a reed switch and a magnet. The
magnet is connected to a mechanism
that operates like a seesaw. Once one
side gets the amount of water (rain)
required (usually measures 0.1mm
received in the gauge’s mouth) it
tips, moving the magnet past the reed
switch and draining the water away.
Then it repeats this process filling the
other side of the seesaw. The Arduino
counts the created pulse(s).
Te m p e r a t u r e / H u m i d i t y : T h e
recommended sensor for outside
temperature / humidity readings
is the Sensirion SHT1x (SHT10,
SHT11 or SHT15) but the cheaper
DHT22 is also supported (not
recommended for places with
constant high humidity).
Barometer: Either the BMP180 or
the older BMP085 are supported.
The voltage jumper needs to be
changed to support one or the other,
depending on what pins are used.
More on this in Part 3.
The optional Solar Sensor: This sensor
we are going to
assume the SHT10,
as we believe it’s the
best mix of value
versus accuracy.
By using multiple
TX units, you can
mount one or more
of the sensors
elsewhere. This is
handy, for example,
if your anemometer
needs to be higher
t h a n t h e c a bl e
allows, or when you
need to move the
temperature sensor
to a better or shadier position.
As you will see as we continue
through this series of articles, the
WeatherDuino Pro2 has the ability to
be a complete system in its own right.
If you are technically minded and
know Arduino programming, you can
even add your own extra features as
the firmware is open-source and can
be modified.
is based on a solar cell, that is put
to work in its short circuit mode,
where its current is proportional to
solar radiation.
Of course, doing any modifications
to the code cannot be supported by the
developer or SILICON CHIP magazine.
The code is compiled and uploaded
to the Arduino Nano microprocessor
via a USB connection, using the freelyavailable Arduino IDE (integrated
development environment).
You will need the Arduino 1.5.8
BETA IDE as the code requires the
extra optimisation that this beta
release of the IDE gives, otherwise the
code will not fit in the Nano’s 32KB
flash memory.
Data update rates and packet information
Wind Data Packet
– Sent every 5 seconds. Contains data including Wind Gust, Wind Speed and Wind Direction
Wind Speed
– Value is a rolling average of the last 5 minutes, sampled every 30 seconds
Rain Data Packet
– Sent every 31 seconds
Temperature/Humidity Data Packet
– Sent every 19 seconds
Solar Radiation/UV Index Data Packet
– Sent every 37 seconds
Solar Radiation and UV Index
– Values are a rolling average of the last 2.5 minutes, sampled every 37 seconds
System Info Data Packet
– Sent every 97 seconds. Contains data about system battery or power supply voltage,
case temperature (from TMP36 sensor if installed on TX board) and fan state
siliconchip.com.au
March 2015 33
You can download the Arduino
IDE from http://arduino.cc/en/Main/
Software Select and download the
Windows Installer option from the
above link.
We will talk further about the code
configuration and how to upload it
to the Nano later in part 2 when we
need it.
KXD-10036 RF
This can save you postage costs with
some suppliers.
Microsoft sent an update that bricked
the Nanos with the fake FTDI chip.
If you use the recommended
CH340G then you will need to download the Windows driver.
You can read about this and download the driver (CH341SER.zip) here:
w w w. m e t e o c e r c a l . i n f o / f o r u m /
Thread-Arduino-Nano-USB-Driver
Sourcing the parts
Note – Arduino Nano
Next month:
If this project perks your interest
and you’d like to construct it, it may
be a good idea to start to organise the
collection and purchase of the items
required to do so now.
We are recommending the Nano that
has the CH340G chipset onboard now,
as there have been problems with FTDI
(fake) chipset drivers since FTDI and
In Part 2 of this series, we will get
on to construction, specifically, the TX
unit – and look at programming the
Arduino Nano using the Arduino IDE.
DS3231
Real Time
Clock
module
Full parts lists will be presented
next month. Many components are
over-the-counter items from retailers
such as Jaycar Electronics but the
table at right lists some of the more
“esoteric” components.
Most of these were sourced, via ebay,
from China. This can result in a delay
of 3-4 weeks (or more).
This also applies to the PCBs that
are only available from the developer
in Portugal. To purchase them you will
need to sign up at www.meteocercal.
info/forum/ and send the developer,
Werk_AG, a Private Message to start
the process. I’d do this first to get the
ball rolling.
Where possible, order all of what
you need from one supplier at a time.
FS1000a
Transmitter
Module
Specifications:
• Transmission Distance: 20-200m
(higher voltage, longer range)
• Idle current: 0mA
• Working current: 20-28mA
• Working voltage: 3-12V
• Transfer rate: 0-10kbps
(ideally 2400bps)
• Transmit Power: 10-40mW
• Transmitting frequency: 433.92MHz
• Modulation: OOK (ASK)
• Working temperature: -10°C to +70°C
34 Silicon Chip
Transmitter/
Receiver
Module
433MHz
ebay item numbers for hard-to-get or unusual items
TX Unit ebay item no.#
1 TX_PCB WeatherDuino Pro2 TX board v4.0x
(from MeteoCercal)
1 IRLZ44N 181092926231
(also available in Australia from element14 – order code 8651418)
1 TMP36 (Optional case sensor)
181092361353
1 Arduino Nano v3.0 141287851903
1 FS1000A, 433MHz TX Module
180929057924
1 433MHz antenna 281126334076
1 SMA Female Panel Connector with Pigtail
290916092362
1 SHT10 Digital Temperature And Humidity Sensor Module
271665110416
RX Unit
1 WeatherDuino Pro2 RX board
(from MeteoCercal)
1 Arduino Nano V3.0 141287851903
1 DS3231 Real Time Clock Arduino Module
400503978923
1 BMP180 (Recommended!) Barometric Pressure Module
400694164288
(or BMP085 )
191092156809
1 DHT22 Temperature / Humidity Sensor
170931111400
1 BX-RM06 ASK OOK RF Receiver
200974005470
1 ST7735 1.8” TFT 370695363746
(or 20x4 alphanumeric LCD)
310575296583
(or 16x2 alphanumeric LCD with I2C module)
190847340801
1 433MHz antenna 281126334076
Wireless Display
1 WeatherDuino Pro2 WD board
(from MeteoCercal)
1 Arduino Nano V3.0 141287851903
1 DHT22 Temperature / Humidity Sensor
170931111400
1 BX-RM06 ASK OOK RF Receiver Module 433MHz
200974005470
1 1.8” TFT - ST7735 160x128
370695363746
(or 2.2” TFT - ILI9341 320x240)
200953728196
(or 2.4” TFT - ILI9341 320x240)
181500077459
(or 20 x 4 alphanumeric LCD)
310575296583
(or 16 x 2 alphanumeric LCD with I2C module)
190847340801
Optional (required if you want to relay data to a Wireless Display)
1 KXD-10036 RF Transmitter Module 433MHz
200974005470
1 433MHz antenna 281126334076
Miscellaneous
1 SMA Female Board Connector
290646661508
The ebay item numbers shown here may well be sold or no longer available;
however if you search for these numbers within ebay an identical device,
currently available (and often from the same seller) will usually be shown.
Many of the ebay-sourced parts came from the one seller.
SC
siliconchip.com.au
|