0% found this document useful (0 votes)
99 views

Arduino Barometer 1

This document describes an Arduino-powered analog barometer that displays air pressure and weather forecasts using stepper motors and LEDs. It has three dials - one for main air pressure and two for 6-hour and 3-hour pressure changes. The device continuously monitors pressure changes to predict weather. It can switch to extended ranges for extreme conditions and has LCD screens displaying pressure readings and forecasts. The barometer needs initial setup of the real-time clock and calibration of the hands using controls on the circuit board. It uses pressure readings and changes to determine weather predictions according to established guidelines.

Uploaded by

Bruno
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views

Arduino Barometer 1

This document describes an Arduino-powered analog barometer that displays air pressure and weather forecasts using stepper motors and LEDs. It has three dials - one for main air pressure and two for 6-hour and 3-hour pressure changes. The device continuously monitors pressure changes to predict weather. It can switch to extended ranges for extreme conditions and has LCD screens displaying pressure readings and forecasts. The barometer needs initial setup of the real-time clock and calibration of the hands using controls on the circuit board. It uses pressure readings and changes to determine weather predictions according to established guidelines.

Uploaded by

Bruno
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

instructables

Arduino Barometer

by oliverb

Using an Arduino UNO and Nano to display Air The 3 hour dial has an increased resolution of 0.5 hPa
Pressure on a 12" (300m) analogue display using 3 as this is used for weather forecasting. There are LEDs
stepper motors. to show when extended range is in use on all three
displays and also LEDs to indicate the weather
There is a choice to 2 dial designs modern and classic. forecast o the 3 hour display.

Air Pressure in hPa (Hectopascal) is displayed on the Inside the case two 20x4 LCD screens show info from
large main dial and is updated every 10 minutes. each of the microprocessors.

There are 2 secondary dials, one shows the last 6 hour The main air pressure display and 6 hour display are
pressure change and the other shows the last 3 hour controlled by a RTC. This clock also provides a 1 hour
pressure change. pulse for the 3 hour display.

Step 1: Comparison to a Conventional Analogue Barometer

Arduino Barometer: Page 1


Most analogue barometers pic. 2 just use the air My Barometer continuously monitors the the pressure
pressure as an indication to predict the weather and change over a 3 hour and 6 hour period and displays
you have to remember to set the movable pointer and these readings on 2 seperate dials.
note the time it was set to see air pressure change.
pic.1 shows my barometer's range of weather
The weather is simply written around the dial and predictions.
read o from the pointer. Forecasting is a little bit
more complicated that as you have to use the 2nd pic.3 shows a close up of the weathr prediction LEDs.
pointer and make note of any change over a 3 hour The weather prediction is based on the last 3 hour air
period. You will have to memories the combinations of pressure change.
current pressure and rising/falling pressure to get
your forecast.

Step 2: Barometer Demo Predicting a Storm

This time-lapse animation shows how the Barometer hands and forecast LEDs react to a comming storm.

Arduino Barometer: Page 2


Step 3: Extended Range Dials

All three dial have extended ranges. This allows larger In the animation below the 3 hour pressure di erence
displayed resolution on the dials for normal weather. is starts at 0 and the pressure di erence is going
In extreme weather conditions the dials switch to down. At -5 hPa the green LED lights to indicate
extended range. negative extended range is in use. The pressure
change keeps dropping until it reaches -10hPa. This is
The animation pic1. shows how the LEDs light when now over the extended range so the Red LED also
extended range is in operation. The Red LED shows lights. The pressure then drops again to -11hPa and
when the reading is +5 and above. You would then both LEDs remain lit. The pressure change starts
read the Red scale lettering. The Green LED shows decreasing to -10 hPa and again this is still over the
when the reading is -5 and below. You would then extended range so both LEDs remain lit. Once the
read the Green scale lettering. If the reading goes pressure change drops to below -10 the Red LED will
beyond the extended range eg on this dial above +9 go out showing extended range is again in use.
or -9 both LEDs will light to show this- see next
section. I set the extended range into the dials after checking
weather extreems in the UK and while I expected the 3
Pre s s ure re a ding s O v e r Ext e nde d Ra ng e hour and 6 hour extended ranges to be used I did not
Pic.2 If the pressure reading is over the extended think the extended range would ever be used on the
range + or - then both LEDs will light to warn you that main Barometer display.
extreme readings or changes have taken place. The
dials will actually still show the readings eg on the 3 Pic.3 While prototyping the barometer in Jan 2020
hour dial if the reading was -10 then the dial would there was a record high reading of 1050hPa is the
point to 0 with both LEDs lit. If the 3 hour reading was South of England my main barometer went into the
-11 then the dial would point to -1 with both LEDs lit. extended range with the pointer on the red 1050 and
You just add 10 to the reading. the red high range LED lit.

Arduino Barometer: Page 3


Step 4: LCD Information Displays

3 Hour

Pic.1 & 2 This display shows the 3 hour readings and information on the 3 hour dial. It also shows the weather
forecast based on the current and last 3 hour reading.

Arduino Barometer: Page 4


6 Hour

Pic. 3 & 4 This display shows the main barometer dial readings and also the 6 hour readings.

Step 5: Predicting the Weather

Arduino Barometer: Page 5


The weather forecast on my barometer uses 8 LEDs. If the reading is under 1009 hPa

Using the current air pressure and rate of change over R ising or steady pressure indicates clearing and cooler
the last 3 hours the weather is predicted on the LEDs. weather.Slowly falling pressure indicates rainRapidly
falling pressure indicates a storm is coming.
Animation 1 shows the various combination of
forecast LED combinations.

I have visited a number of weather sites and have


gathered the following info on predicting the
weather with a barometer.

Using the info above my barometer applies the


Predicting the Weather With the Barometer following logic to predict the weather.

More speci cally, a barometer with readings in hPa can Logic is applied in the sequence below with the
be interpreted in this manner: resulting LEDs lit.

If the reading is over 1022 hPa Pic.2 Air pressure <1009 hPa

R ising or steady pressure means continued fair Rising or steady pressure indicates clearing and cooler
weather.Slowly falling pressure means fair weather
weather.Rapidly falling pressure means cloudy and
warmer conditions. Air Pressure <1009.00 and 3 hour change >= 0

Pic.3 Air Pressure <1009 hPa

Slowly falling pressure indicates rain


If it falls between 1009–1022 hPa
Air Pressure <1009.00 and 3 hour change <0 and 3
R ising or steady pressure means present conditions will hour change >= -1.5
continue.Slowly falling pressure means little change in the
weather.Rapidly falling pressure means that rain is likely, Pic.4 Air Pressure <1009 hPa
or snow if it is cold enough.
Rapidly falling pressure indicates a storm is coming.

Air Pressure <1009.00 and 3 hour change < -1.5

Pic.5 Air Pressure is between 1009 and 1022 hPa

Rising or steady pressure means present conditions


will continue.

Slowly falling pressure means little change in the


weather.

Air Pressure >= 1009.00 and Air Pressure <= 1022.00


and 3 hour change >= -1.5 and 3 hour change <= 1.5

Pic.6 Air Pressure is between 1009 and 1022 hPa


Arduino Barometer: Page 6
Air Pressure rising rapidly means weather is clearing

Air Pressure >= 1009.00 and Air Pressure <= 1022.00


and 3 hour change > 1.5

Pic.7 Air Pressure is between 1009 and 1022 hPa

Rapidly falling pressure means that rain is likely, or


snow if it is cold enough.

Air Pressure >= 1009.00 and Air Pressure <= 1022.00


and 3 hour change < -1.5

Pic.8 Air Pressure over 1022 hPa

Rising or steady pressure means dry weather.

Air Pressure > 1022.00 and 3 hour change >= 0

Pic.9 Air Pressure over 1022 hPa

Slowly falling pressure means fair weather.

Air Pressure > 1022.00 and 3 hour change < 0 and 3


hour change >= -1.5

Pic.10 Air Pressure over 1022 hPa

Rapidly falling pressure means change

Air Pressure > 1022.00 && 3 hour change < -1.5

Arduino Barometer: Page 7


Step 6: Barometer Startup

On initial power up an LED test is performed.

Once complete the hands will step to their initial settings ready to be calibrated.

Arduino Barometer: Page 8


Step 7: Initial Start-up Settings RTC

Arduino Barometer: Page 9


Pic.1 On initial power up the barometer will need to Pic.5 Turning the "Select Setting" Knob further will
be setup using the controls on the Vero Board. change the display to "RTC Min Retard"

RT C If you want to retard the RTC mins press the red


"change setting" button. A single click will step the
Pic.2 The RTC will need to be set to the correct time. mins backwards. Multiple clicks will step back the
I set it to UTC and don't bother changing to summer number of clicks pressed but will take a second to
time. Before adjusting the time make note of the update the RTC.
"Disp" value in this case -5. This is the value of the 6
hour hand and will be needed later in the setup. Slide Pic.6 Turning the "Select Setting" Knob further will
the "Select Setting Enable" switch to the On position. change the display to "RTC Min Advance"
The display will not change.
If you want to advance the RTC mins press the red
Pic.3 Slowly turn the "Select Setting" Knob clockwise "change setting" button. A single click will step the
and the 2nd row of the main LCD display will change. mins forwards. Multiple clicks will step forwards the
number of clicks pressed but will take a second to
Stop when the display shows "RTC Hour Retard" If you update the RTC.
want to retard the RTC hours press the red "change
setting" button. A single click will step the hours Pic.7 Once you have completed the RTC setting or any
backwards. Multiple clicks will step back the number other setting return the "Select Setting" Knob fully
of clicks pressed but will take a second to update the anti clockwise until the display shows "O "
RTC.
Slide the "Select Setting Enable" switch to the O
Pic.4 Turning the "Select Setting" Knob further will position.
change the display to "RTC Hour Advance"
Note. The seconds can be synchronized to 30 seconds
If you want to advance the RTC hours press the red at any time by pressing the black "Reset to 30
"change setting" button. A single click will step the seconds" button.
hours forwards. Multiple clicks will step forward the The time will now be remembered on the RTC if the
number of clicks pressed but will take a second to power is turned o .
update the RTC.

Arduino Barometer: Page 10


Step 8: Initial Start-up Settings 6 Hour Hand

Arduino Barometer: Page 11


Setting the 6 hour hand Turn the "Select Setting" Knob clockwise until "6Hr
Baro Advance" is displayed. Press and release the red
Pic.1 Once the RTC is set the barometer and 6 hour air "change setting" button. This sill step the 6 hour hand
pressure hands need to be set. forward 1 whole unit. Stop when the 6 hour hand
reaches your noted number.
Slide the "Select Setting Enable" switch to the On
position. The display will not change. Pic.6 Note the 6 hour display will take 8 hours to
display correctly as it will need to store readings in
Slowly turn the "Select Setting" Knob clockwise until memory over that period of time.
"6Hr Baro Inch Retard" is displayed.
You can always add the previous air pressure readings
On very rst power up the 6 hour hand will need into the code before loading is you require the 6 hour
calibrating to the nearest digit. display to function from startup.

If the nearest digit is behind the hand press the red The code converts the hours to a H number as
"change setting" button. A single click will inch the displayed above H = 6.
hand backwards step by step. Holding the button will In the code line 128 H6 will mean put the current
inch the hand backward repeatedly. Once the hand is hour reading under hour6 the previous reading in
exactly on a digit release the button. hour7 the reading before that in hour0 etc

Pic.2 If the nearest digit in front of the hand or if you int hour0 = 1015;
have inch retarded the hand using the above too
much turn the "Select Setting" Knob clockwise until int hour1 = 1016
"6Hr Baro Inch Advn" is displayed.
;int hour2 = 1015;
Press the red "change setting" button. A single click
will inch the hand forwards step by step. Holding the int hour3 = 1016;
button will inch the hand forward repeatedly. Once
the hand is exactly on a digit release the button. int hour4 = 1016

Pic.3 Once the 6 hour hand has been set exactly on a ;int hour5 = 1016;
digit the hour hand need to be set to the correct
value. int hour6 = 1012;

Before adjusting the RTC you made a note of this int hour7 = 1013;
number -5.
You should be able to get your local readings o the
Pic.4 If the 6 hour display hand is too advanced. internet.

Turn the "Select Setting" Knob clockwise until "6Hr I setup a page from my weather station so I could
Baro Retard" is displayed. Press and release the red check this while constructing the barometer.
"change setting" button. This sill step the 6 hour hand
backward 1 whole unit. Stop when the 6 hour hand Click this link to see the hourly changes in Kenley
reaches your noted number. Surrey UK.

Pic.5 If the 6 hour display hand is retarded.

Arduino Barometer: Page 12


Step 9: Initial Start-up Settings Main Barometer Hand

Arduino Barometer: Page 13


Setting the main barometer hand repeatedly.Once the hand is exactly on a digit release
the button.
Pic.1 Now the 6 hour display is correct the main
barometer hand will need to be set to the rounded Pic.3 If the main barometer hand is too advanced.
sea level pressure on the 3rd row down on the main
LCD. Turn the "Select Setting" Knob clockwise until
"Barometer Retard" is displayed.
On very rst power up the main barometer hand will
need calibrating to the nearest digit. Turn the "Select Press and release the red "change setting" button.
Setting" Knob clockwise until "Baro Inch Retard" is
displayed. This will step the main barometer hand backward 1
whole unit. Stop when the hour hand reaches your
If the nearest digit is behind the hand press the red indicated rounded sea level pressure.
"change setting" button. A single click will inch the
hand backwards step by step. Holding the button will Pic.4 If the main barometer hand is retarded
inch the hand backward repeatedly. Once the hand is compared to the your indicated rounded sea level
exactly on a digit release the button. pressure.

Pic.2 If the nearest digit in front of the hand or if you Turn the "Select Setting" Knob clockwise until
have inch retarded the hand using the above too "Barometer Advance" is displayed.
much turn the "Select Setting" Knob clockwise until
"Baro Inch Advn" is displayed. Press and release the red "change setting" button.

Press the red "change setting" button. This will step the main barometer hand forward 1
whole unit. Stop when the hand reaches your
A single click will inch the hand forwards step by step. indicated rounded sea level pressure.
Holding the button will inch the hand forward

Step 10: Initial Start-up Settings 3 Hour Hand

Arduino Barometer: Page 14


Setting the 3 hour hand. in half units forwards.

Oic.1 Adjustment of the 3 hour hand is by the four Note the 3 hour display will take 4 hours to display
buttons Green, White, Blue and Yellow on the Vero correctly as it will need to store readings in memory
board. over that period of time.

On initial power up the the 3 hour hand will need to You can always add the previous air pressure readings
be calibrated to the nearest unit or half unit. into the code before loading is you require the
forecast and 3 hour display to function from startup.
Pic.2 If the 3 hour hand nearest unit value is in
advance of the 3 hour hand press the Yellow "Slow 3 hour display code at line 124
Bwd" button to inch the hand backwards. Keeping the
button pressed will repeatedly inch the hand oat hour0 is current hour
backwards.
oat hour1 is previous hour etc etc
If the 3 hour hand nearest unit value is behind the 3
hour hand press the Blue "Slow Fwd" button to inch oat hour0 = 1036.00;
the hand forwards. Keeping the button pressed will
repeatedly inch the hand forwards. oat hour1 = 1036.00;

Once the 3 hour hand is exactly on a unit/half unit the oat hour2 = 1036.00;
hand can be set to the value "D" on the 3 hour LCD
display. oat hour3 = 1036.00;

If in the hand is in advance of the value "D" press the oat hour4 = 1036.00;
White "3Hr Step Bwd" button to step the 3 hour hand
in half units backwards. You should be able to get your local readings o the
internet.
If in the hand is in less than the value "D" press the
Green "3Hr Step Fwd" button to step the 3 hour hand

Step 11: Modules/Components

Arduino Barometer: Page 15


M o dule s pic.4
This module converts the 12v input to 5v
Where possible this project uses prebuilt modules to
save construction and design time. BM P18 0 Pre s s ure S e ns o r M o dule 2 o pic. 5
The BMP180 Breakout is a barometric pressure sensor
with an I2C ("Wire") interface.Barometric pressure
sensors measure the absolute pressure of the air
around them. This pressure varies with both the
M icro pro ce s s o rs weather and altitude. Depending on how you
interpret the data, you can monitor changes in the
This project uses 2 microprocessors an Atmega weather, measure altitude, or any other tasks that
328(UNO) pic.1 and an Arduino Nano pic.2. I have used require an accurate pressure reading.
this combination as I had already had a 328 built from
another project and due to limited space on the Vero Connect the +, -, CL, and DA pins to your Arduino.
Board added the Nano as well.
CL goes to SCL and DA goes to SDA.
Po w e r
IMPORTANT: Connect the power pins (+ and -) ONLY to
The Barometer uses around 65mA and this will a 3.3V supply. Larger voltages will permanently
increase a little as each motor steps for a fraction of a damage the part.
second every 10mins to and hour Note that because I2C uses open drain drivers, it is
safe to connect the I2C pins (DA and CL) to an I2C port
AMS117 pic.3 on a 5V microprocessor.

The module on this project is 3.3v and is used to RT C re a l t im e clo ck pic. 6


power the BMP180 module.
This brometer uses a DS3231 AT24C32 I2C Precision
The The AMS1117 series of adjustable and xed Real Time Clock Module.
voltage regulators are designed to provide up to1A
output current and to operatedown to 1V input-to- This module is used mainly for timing but also
output di erential. The dropout voltage of the device supplies time stamps on the LCD display. Time is set to
is guaranteed maximum 1.3V, decreasing at lower UTC and is not changed for summertime.
load currents.On-chip trimming adjusts the reference The module comes supplied with a Lithium-Ion
voltage to 1.5%. Current limit is set to minimize the rechargeable battery see diagram above. I use a non
stress under overload conditions on both the rechargeable battery so have removed resistor R5
regulator and power source circuitry. The module on from the module see RTC Modi cation section for
this project is 3.3v and is used to power the BMP180 details.
module.
St e ppe r M o t o rs 3 o
LM2596 Buck DC to DC Converter 3.0-40V to 1.5-35V The barometer uses 3 Nema 17 Stepper Motors 1A,

13N.cm Holding Torque, 4-Lead, 1.8° I used 1.8°


motors as the steps t exactly into 360° 200 times. You
can use Nema 8 motors if you wish but don't use
28BYJ-48-5V motors as they don't have the required
1.8° step angle.

The 1.8° step angle is required as it divides exactly in


360° for my barometer dials.

Arduino Barometer: Page 16


LCD D is pla y s 2 o

I have used 2 20x4 LCD displays one for the


Barometer, clock and 6 hour display and the other for
the 3 hour display and forecast.

Arduino Barometer: Page 17


Step 12: Modules/Components A4988 Stepper Motor Driver

A4988 microstepping bipolar stepper motor driver 3 Wa rn in g: Co n n e c t in g o r d isc o n n e c t in g a


o st e ppe r mo t o r wh ile t h e d rive r is po we re d
c a n d e st ro y t h e d rive r. (More generally, rewiring
Im po rt a nt re a d t his s e ct io n ca re f ully anything while it is powered is asking for trouble.)

My Barometer is set to 1/16th step rotation and the St e p (a nd m icro s t e p) s iz e


code is adjusted accordingly.
see table pic. 3
A4988 microstepping bipolar stepper motor driver Stepper motors typically have a step size speci cation
pic.1 with and pic.2 without heatsink (e.g. 1.8° or 200 steps per revolution), which applies to
full steps. A microstepping driver such as the A4988
This breakout board for Allegro’s A4988 allows higher resolutions by allowing intermediate
microstepping bipolar stepper motor driver features step locations, which are achieved by energizing the
adjustable current limiting, over-current and over- coils with intermediate current levels. For instance,
temperature protection, and ve di erent microstep driving a motor in quarter-step mode will give the
200-step-per-revolution motor 800 microsteps per
Arduino Barometer: Page 18
200-step-per-revolution motor 800 microsteps per
resolutions (down to 1/16-step).
revolution by using four di erent current levels.
It operates from 8 V to 35 V and can deliver up to
The resolution (step size) selector inputs (MS1, MS2,
approximately 1 A per phase without a heat sink or
and MS3) enable selection from the ve step
forced air ow (it is rated for 2 A per coil with su cient
resolutions according to the table below. MS1 and
additional cooling).
MS3 have internal 100k pull-down resistors and
MS2 has an internal 50k pull-down resistor, so
Here are some of the driver’s key features:Simple step
leaving these three microstep selection pins
and direction control interface Five di erent step
disconnected results in full-step mode. Fo r t h e
resolutions: full-step, half-step, quarter-step, eighth-
mic ro st e p mo d e s t o fun c t io n c o rre c t ly, t h e
step, and sixteenth-step Adjustable current control
c urre n t limit must b e se t lo w e n o ugh (se e
lets you set the maximum current output with a
b e lo w) so t h a t c urre n t limit in g ge t s
potentiometer, which lets you use voltages above
e n ga ge d . Otherwise, the intermediate current
your stepper motor’s rated voltage to achieve higher
levels will not be correctly maintained, and the motor
step rates Intelligent chopping control that
will skip microsteps.
automatically selects the correct current decay mode
(fast decay or slow decay) Over-temperature thermal
Co nt ro l input s
shutdown, under-voltage lockout, and crossover-
current protection Short-to-ground and shorted-load
pics 4 & 5
protection
Each pulse to the STEP input corresponds to one
microstep of the stepper motor in the direction
Po w e r co nne ct io ns
selected by the DIR pin. Note that the STEP and DIR
The driver requires a logic supply voltage (3 – 5.5 V) to
pins are not pulled to any particular voltage
be connected across the VDD and GND pins and a
internally, so you should not leave either of these pins
motor supply voltage (8 – 35 V) to be connected
oating in your application.
across VMOT and GND. These supplies should have
appropriate decoupling capacitors close to the board,
If you just want rotation in a single direction, you can
and they should be capable of delivering the
tie DIR directly to VCC or GND. The chip has three
expected currents (peaks up to 4 A for the motor
di erent inputs for controlling its many power states:
supply).
RST, SLP, and EN. For details about these power states,
see the datasheet.
Warning: This carrier board uses low-ESR ceramic
capacitors, which makes it susceptible to destructive
Please note that the RST pin is oating; if you are not
LC voltage spikes, especially when using power leads
using the pin, you can connect it to the adjacent SLP
longer than a few inches. Under the right conditions,
pin on the PCB to bring it high and enable the board.
these spikes can exceed the 35 V maximum voltage
rating for the A4988 and permanently damage the
Curre nt LIm it ing
board, even when the motor supply voltage is as low
Before connecting the motor we should adjust the
as 12 V. O n e wa y t o pro t e c t t h e d rive r fro m
current limiting of the driver so that we are sure that
suc h spike s is t o put a la rge (a t le a st 47 µF)
the current is within the current limits of the motor.
e le c t ro lyt ic c a pa c it o r a c ro ss mo t o r po we r
We can do that by adjusting the reference voltage
( VM O T ) a n d gro un d so me wh e re c lo se t o t h e
using the potentiometer on the module to set the
b o a rd .
VRef.

See details on the video link pic. 6

M a nuf a ct ure rs D ra w ing sheet pic.7


M o t o r co nne ct io ns

Four, six, and eight-wire stepper motors can be driven


Arduino Barometer: Page 19
by the A4988 if they are properly connected.

Arduino Barometer: Page 20


https://www.youtube.com/watch?time_continue=1&v=89BHS9hfSUk&feature=emb_logo

Step 13: Construction Prototyping

The circuit was prototyped using a hardboard dial with holes drilled for the motor spindles and LEDs.

Various dial designs were then printed on normal paper and Sellotaped over the top. The LED wiring loom was
made with the LEDs in position on the temporary dial.

If you are using the round dial design this will allow you to check if the board etc will be mounted on the dial or in
the back box.

Step 14: Construction RTC Modification

The module comes supplied with a Lithium-Ion rechargeable battery see diagram pic. 2.

I use a non rechargeable battery (I am not happy with the circuit design with a lithium-iron battery and associated
re risk) of the so have removed resistor R5 from the module as below. This stops any charge current to the battery.
Arduino Barometer: Page 21
Pic.3 shows the module without the resistor (just break it o ) and pic.4 the modi ed circuit.

Step 15: Construction Mounting Modules & Boards

On the modern square dial design all the modules using impact adhesive.
and boards are mounted on the dial. The classic round
dial desgn will need some parts mounted in the back Pic.4 shows the front view with a transparent dial
box as there is less space on the dial. showing mounting locations.

Motors are hot melt glued to wooden mounting Pic. 5 shows the same but the rear view.
blocks pic.1&2. The wooded blocks are cut fron a sheet
of plywood pic.3. The mounting blocks depths are set Pic.6 shows the wooden mounting blocks locations
to allow the correct protrusion of the spindles and layout.
through the dial . I have hot melt glued the blocls to
the dial. Pic.7 shows the modules and motors mounted on the
blocks.
The Vero Boards and LCD displays are also screwed to
wooden blocks which have been glued to the dial

Arduino Barometer: Page 22


Arduino Barometer: Page 23
Step 16: Construction LED Fixing

The 3mm LEDs are mounted so they just show above the surface of the dial pic.1.

3mm holes are drilled and hot melt glue holds them in place.

To get a uniform depth I made a jig using a washer and piece of card glued to it pic.2.
When xing the LEDs the jig is pressed against the dial with the depth of the washer setting the protrusion of the
LED through the dial.
Arduino Barometer: Page 24
Step 17: Construction Classic Style English Dial Clock Case

The classic 12" Dial Clock case can be purchased from A new dial was cut from a sheet of alluminium pic.4.
Ebay as "case only" pic.1.
Pic.5 side view of the Barometer showing the back box.
Various styles are available this one is oak and has a
dial surround that hinges away from the back box Pic.6 shows my regulator clock case with original
pic.2. curved back box, hinged dial bezel and pegged dial
surround.
This makes for a very easy build as all the hard work
has been done. The dial is mounted by 3 small wood Many of these clock cases were held in place by four
screws hidden behind the brass dial bezel. wooden pegs. If your case is constructed like this add
a pair of hinges to one side and use the remaining two
This dial surround has been stripped and bleached to pegs to lock the dial surround in place.
bring out the original light colour of the wood pic.3.
The dial was removed as it had a winding hole o
center.

Arduino Barometer: Page 25


Arduino Barometer: Page 26
Step 18: Construction Modern Case

Picture Frame Version modules.

I have used two identical picture frames mounted pic.5 The dial viewed through the rear frame.
back to back. These frames are 30cm x 30cm approx.
12"x12" pic.1. pic.6 Rear half of the frame with all wiring in place.

pic.2 Frames are joined back to back. pic.7 The front of the dial now shows through the
front half of the frame. Wooden bevels hide the space
pic.3 This gives a double depth frame. behind the front half of the frame.

pic.4 Rear side view showing wired boards and

Arduino Barometer: Page 27


Arduino Barometer: Page 28
Step 19: Construction Modern Case Backbox

Arduino Barometer: Page 29


Back Box Pic.5 Back box with rear picture frame in place this
holds the dial.Note the rear frame is placed upside
Pic.1 The barometer is housed in a back box that is down.
smaller than the dial frame on all side apart from the
top. The fram overlap helps hide the back box and Pic.6 A spacer is cut the same size and depth as the
adds a shadow e ect to the case on the wall. recess of the picture frame.

Pic.2 The back box is 50mm deep and is simply Pic.7 The spacer is set under the dial.
constructed of glued and screwed wood.
Pic.8 This will raise the dial level with the top edge of
Pic.3 Rear view of back box in position behind rear dial the rear frame.
frame showing the frame overlap.
Pic.9 Back box with front picture frame in place on top
Pic.4 The screw holes are lled then a coat of matt of the rear frame.This frame holds the glass.
black is applied to the back box.

Arduino Barometer: Page 30


Step 20: Construction Modern Case Wall Mounting

Arduino Barometer: Page 31


Mounting the Barometer and supports the top right hand corner of the back
box. It also serves as a xing point for the wall mount
Pic.1 To allow access to the rear of the Barometer I locking pins that holds the back box shut against the
have mounted it on a pair of GTV 270° inset hinges. wall.
The hinges are mounted on a block of wood xed to
the wall and allow the barometer to be swung out for Pic.6 The back box is shown open with the wooden
access. The hinges also have a quick release function if mounting blocks and batons xed to the wall. The
the Barometer needs to be taken down for hole in the front edge of the baton aligns with a hole
maintenance at any time. The hinge pivot is set back in the side of the back box. A steel pin is inserted here
which also allows the top of the case to clear the wall to lock the barometer shut against the wall.
when hinged out.
Pic.7 Back box open allowing access to the LCD
Pic.2 The hinges are mounted on wooden blocks displays and setting switches.
screwed to the wall.
Pic.8 Steel Locking Pin This is a small cabinet knob
Pic.3 I have screwed and glued an extra piece of with a length of treaded bar screwed into the thread.
timber to the left hand side where the hinges will
mount.This will add strength as all the weight of the Pic.9 & 10 The locking pin when pushed fully in lock
clock will be on this side when the clock case is open. the barometer against the wall. When pulled out the
Two aluminium plates will cover the hinge holes. barometer is able to swing out to allow access to the
control switched and LCD displays.
Pic.4 Hinge blocks in place. Note these are bolted
through the case rather than screwed. Pic.11 Detail of Locking Pin and location of right side
dial xing bolt. I have glued a washer in place over the
Pic.5 Back Box mounted on the wall. The xing screws hole as an escutcheon plate.
also hold the hinge to the wooden mounting blocks
The wooden baton on the right is also xed to the wall

Arduino Barometer: Page 32


Arduino Barometer: Page 33
Arduino Barometer: Page 34
Step 21: Construction Modern Case Dial Mounting

Arduino Barometer: Page 35


The dial and all the boards etc are removable for box and dial. Back box in black with dial
maintenance and is held to the backbox by 2 bolts. xings/support in wood.

Mounting the Dial in the Back Box Pic.5 Rear view showing mounting block and bar
locations.
The dial holds the combined weight of all the stepper
motors, boards and modules and is sti ened by Pic.6 Dial with Back Box Removed showing mounting
impact gluing two strips of unequal aluminium angle blocks and strengthening bars glued to the rear of
to it's rear surface. the dial.
Two blocks of wood are then glued to these bars and
small screws then hold these wooden blocks through The dial spacer allows the dial to sit ush with the top
the side of the back box. A further thin strip of wood of the rear picture frame.
is glued to the dial below the LCD mounting block.
This is not screwed to the case but sits on the back Pic.7 Right side of clock showing dial xing bolt
box to support the dial. location.

Pic.1 Strengthening bar of alluminium unequal angle. Pic.8 A mount is constructed from 4 thin strips of
wood and is placed in the recess of the front picture
Pic.2 Strengthening bar locations. frame. This lls the gap between the picture frame
and dial, holds the Perspex sheet in place and also
Pic.3 Glued wooden xing/support blocks for dial adds a photo mount e ect to the dial.
xing bolts left and right and glued dial support
lower. Pic.9 Mount in place behind the front picture frame.

Pic.4 Shows contact/ xing points between the back

Arduino Barometer: Page 36


Arduino Barometer: Page 37
Step 22: Contruction Dial

Arduino Barometer: Page 38


Pic.1 The dial is made from 1.5mm thick alluminium on the projective lm with a market pen and cut it out
sheet and comes covered with a protective plastic at this stage.
lm.
Pic.4 The protective plastic lm can now be removed.
Pic.2 From your cad program print out the dial on A3 Rub down the dial back and front to remove any burrs
paper and include center marks for all the LED and and to provide a key for the paint.
stepper motor shaft holes.This will be your drill
template.Lay the paper of the alluminium dial blank Pic.5 Spray a coat of acrylic primer and then your
and tape the edges to stop it moving.Center punch all choice of top coat - I have used antique white.
the holes through the paper.
I then give a nal coat of matt clear acrylic. Leave to
Pic.3 Remove the paper template and drill out the dry over night.
holes 3mm for the LEDs and 3 larger holes for your
stepper motor spindle. I have included a high res pic of the dial pic.6. Contact
me if you need it in another format. My CAD format is
Start with a small pilot hole and increase the drill size TurboCad.
in 3 stages. If you are using a round dial mark it out

Arduino Barometer: Page 39


Step 23: Construction Dial Decal

Arduino Barometer: Page 40


Apply the water slide decal transfer. water until the transparent transfer comes away from
the white backing sheet.
I use Water Slide Decal paper from BIGBITE Studio
They have some good tutorials on their site. Pic.3 Move the soaked transfer over the dial.
https://www.bigbitestudio.co.uk/tutorials/water-decal-
tutorials/ Pic.4 Slide the transfer into position.

Pic.1 Water slide decals are printed out on an inkjet Pic.5 Gently pull the white backing paper backward
printer soaked in water then slid into place. They give while holding the transfer down.
a very detailed print and once given a coat of varnish
are tough. Make sure the crosses line up with the center of all
the holes.
Don't forget to order transparent transfers so the dial
colour can be seen through the transfer. Pic.6 Get rid of any air bubbles.
Follow the instructions with the pack as they do vary.
Pic.7 Then leave it to dry before adding a coat of matt
Pic.2 On my transfers I print out the dial on transfer varnish.
paper let it dry and then cut it out to just under the
size of the dial. I then give it a coat of acrylic varnish. After the coat of varnish break through the layer of
transfer over the holes using the back of a drill bit jus
I set my printer as follows: Plain Paper, Photo & High smaller than the holes. Then give a nal coat of
Speed O This stops my printer from over inking the varnish to seal the edges around the holes.
paper When the varnish is dry the transfer is soaked in

Arduino Barometer: Page 41


Arduino Barometer: Page 42
Arduino Barometer: Page 43
Step 24: Construction Hands

Hands are a very personnal choice and there are many o .


di ent styles to choose from. The hardest part is
nding hands that match each other. I found a Pic.6 The remaining part was then led away to match
perfect set of small hands but was unable to nd a the shape of the 2 smaller hands.
matching longhand for the main barometer. In the
end I made my own from 3 donor hands. Pic.7 The completed balance for the hand.

All my hands were quartz second hands so I hand to Pic.8 To make the front pointer and center I cut the
le the mounting spindle o the back for mounting end o one o my donor hands.
on the stepper motor spindle.
Pic.9 To make the rear balance shaft I cut a section out
On some stepper motors the spindle can be drilled of the 3rd donor hand.
out to take the hand spindle but my spindles were too
hard to drill. Pic.10 Left the 3 parts of the new hand. Middle shows
the overlap of the balance shaft to allow for bonding.
Pic.1 my completed hands. Right pic shows the balance shaft bonded with
impact adhesive to the underside of the balance and
Pic.2 The long barometer hand was constructed from center shaft.
3 di erent hands
To x the hands to the stepper motor spindle I did not
Pic.3 To get the lower spade balance part of the hand I want to use impact adhesive as the hands are fragile
used a spade hand. and would be damaged if I hand to remove them. In
the end I went for a tiny bit of Blu Tack on each hand.
Pic.4 First I cut o the top using sharp scissors. Blu Tack is putty like and is non setting but seems to
hold very well!
Pic.5 The top was then trimmed by cutting the point

Arduino Barometer: Page 44


Arduino Barometer: Page 45
Arduino Barometer: Page 46
Arduino Barometer: Page 47
Arduino Barometer: Page 48
Arduino Barometer: Page 49
Arduino Barometer: Page 50
Arduino Barometer: Page 51
Step 25: Construction Schematic

Arduino Barometer: Page 52


Edit 02/07/2020 shematic updated R13 value error Note I have tted switches on the LCD displays to turn
and connection now 10K & and SW7 connected nano the backlight LEDs On and O . This is optional but as
side of resistor. the displays are not visible for 99.99% of the time it
will save power.
The main shematic is shown in Pic. 1 with the power
supply in Pic.2. Note larger schematics can be found on my web site
here
You will also need a regulated plug in 12v supply
adaptor of around 1amp.

Step 26: Construction Vero Board

Ve ro B o a rd L a y o ut s LEDs. This allows the dial to be disconnected from the


main board if required for maintenance.
Pic.1 Vero Board with all modules removed.
Pic.5 The LED Vero Board connects to the main board
Pic.2 Vero Board with modules in place. with Dupont sockets and male Dupont cable

Pic.3 Vero Board rear view ( ipped down from top). Pic.6 Vero Board wiring in progress.

Pic.4 LED Vero Board Pic.7 Vero Boards and module location on the rear of
the dial.
This board is used as a connection point for the dial

Arduino Barometer: Page 53


Arduino Barometer: Page 54
Step 27: Code

Code

There are 2 parts to the code 1 for the Main Barometer Code and 6 hour display and 1 for the 3 hour display and
weather forecast.

Code can be downloaded here DOWNLOAD CODE

Step 28: Time-Lapse Video

Time-Lapse Video showing rain radar and the Barometer predicting rain and a storm.

This is a 4K video so you should be able to see full details of the dial and forecast LEDs.

https://youtu.be/rLft6nM7aGE

Very Nice.
Will all your code fit on the NANO? if so have you thought of using a NCP23017 for your LED's.
that would reduce the number of LCD and BMP180
Looks pro.
Thanks Palingenesis. No but it would prob fit on a Mega 2560. I had not seen a NCP23017 before
will look into them as they look useful.
Glad it was of help, while you are looking for NCP23017, you may come across similar PCF8574, I
don't recommend PCF8574.
Also I looked at your code, Do you have a link to which <LiquidCrystal_I2C.h> library you are
using? I get error with the library I have.
A tip about memory when using menus/Text.
Have you come across the F function. e.g. lcd.print(F("Test")); F() takes a string literal and forces
the compiler to put it in program memory.
I love I2C and when I get really stuck for memory I use a ATMEL24C256.
I used it here: https://tims-mini-plotter2.blogspot.com/2019/04/ad...
Prehaps with a ATMEL24C256 you could store more past readings
I don't have a link to the LiquidCrystal_I2C.h library but looking at my system it's called
NewliquidCrystal. Created by Francisco Malpartida on 20/08/11.

I must admit I know almost nothing about coding. I am the generation that used log books and slide
rules at school. I learn code by finding a project and breaking it down and working out what things
do.

Arduino Barometer: Page 55


Thanks for your tips esp. the NCP23017 info it may well be useful for my future projects.

Found it thanks.
https://bitbucket.org/fmalpartida/new-liquidcrysta...
Compiles now I have this in the libraries.
WoW masterpiece, Congratulation!!!!

Thanks vizant glad you like it!

Arduino Barometer: Page 56

You might also like