Arduino Weather Station.

by bram2202 in Circuits > Arduino

186375 Views, 318 Favorites, 0 Comments

Arduino Weather Station.

2013-07-19 07.41.38.jpg
A while ago I got a idea to build my own weather station, from scratch.
It turned out great. Lets begin!

Parts

Arduino Nano.JPG
433Mhz.jpg
BMP085.jpg
DHT11Temp.jpg
PIR.jpg
A list of items I used:
-2x Arduino nano.
-433mhz transmitter .
-433mhz Receiver.
-4x20 LCD (blue)
-a Blue led and resistor
-Electric installation box (watertight).
- Digital Barometric Pressure and Temp Sensor.
- DHT11 Temperature & Humidity Sensor
-1mm Aluminum sheet.
-PIR sensor (movement).
-Bits of wire.
-Heat shrink tube.
-Nuts and bolts.

And a range of different (basic) tools.

Code for Transmitter

Transmitter.jpg
So the first thing is to know which port is which on every part of te Transmitter:


The Arduino Nano was simple, just take a look on the site of Arduino.
http://arduino.cc/en/Main/ArduinoBoardNano


Next up is the 433Mhz Transmitter.
On the Board it says:
-Vcc
-Data
-GND


Next. The DHT11. same as the Transmitter
-Vcc 
-Data
-GND'
This part uses the 'DHT11 library' 


A Simple LED and Resistor
-VCC
-GND
I used this only if there was something sent.


The Digital Barometric Pressure sensor is another story dhow,
its got 6 Connections
-VCC (3.3v)
-SDA (Serial Data Signal) (I²C)
-SCL (Serial CLock) (I²C)
-XCLR (no idea) (did not use)
-EOC (end of conversion) (did not use)
-GND (Ground)

So we need to use the I²C on de Sensor to communicate with the Arduino.


i uses the next Libs:
-OneWire.
-dht11.
-VirtualWire

Much of the code to read out the Digital Barometric Pressure and Temp Sensor was ripped form various sites/forums.



For Code and explanation, See the Code file



EDIT:

I forgot something you need to do in order to compile the Arduino code.
In order to convert a float to a string you’ll need to download 2 files and replace some file with these in the Arduino IDE.

Download & info: http://www.timewasters-place.com/arduino-string-and-float/

PLEASE BACK UP YOUR FILES BEFORE REPLACING THEM!!!

Electrical Diagram Transmitter

transmiiter.png
Based on the Code I wrote a drew an electrical diagram.
Please note that the Transmitter and humidity sensor works of the 5v line,
the Barometric sensors only needs a 1.8V - 3.6V input.


Code for Receiver.

Receiver.jpg
In this code I needed to get the data from me Receiver and decode it to something useful

Hardware:
Screen (hd44780 capable).
-(16 Pins) data and power

PIR (motion sensor).
-VCC
-Trigger
-GND

Receiver.
-Vcc
-Data out
-GND


For the Screen I uses the standard Connection.
Only used 6 pins for Data, 1 to 5V and 3 to ground.

The Led +pin was connected to a Arduino Digital Pin.
that way I can control the Backlight whit the PIR.

Uses the next Libs:
-VirtualWire  (for the Reviser)
-stdio
- string
-LiquidCrystal (for the display)



For Code and explanation, See the Code file

Electrical Diagram Receiver

arduino_wheater_reciver.png
Based on the Code I wrote a drew an electrical diagram.

its recommended to connect pin 3 (V0) of the LCD to a 10K ohm Potentiometer, this Pot meter to VCC and GND.
To control the Brightness.
I connected strait to GND to get maximum Brightness, this works well on a couple of LCD, so TRY it first.

The rest is fairly straight forward.

Prototype

2013-06-19 22.46.40.jpg
2013-06-19 22.46.13.jpg
The next logical step is to make a prototype of the drawings and testing it.
So I got myself a couple of Breadboard and wire and began building it.

(note1) this picture was taken after I created the code :)
(note2) on the first picture you can see a component that later would be replaced by another part.

Designing the Receiver Housing. (first Attempt)

1009126_10200097887911083_458038408_o.jpg
At first i wanted to 3D print a housing,

I measure all the components and wrote them down.
next I put them together in Inventor and drew a housing around the parts.
This ensured that the sizes where correct the parts would fit together

I used Inventor 2014 and Blender to create and render the image

because I did not own a 3D printer a had to send it to ShapeWays, it was to expensive for this project.
So redraw it for a sheet. (see next step)

Designing and Buidling the Receiver Housing. (second Attempt)

V1-page-001.jpg
2013-07-09 20.00.11.jpg
Here I did the same as in the previews Step,
only difference is that I used Sheet metal drawing instead of extruding.

After this was done, it was a simple job to cut it out and bend it 90 disgrace.
To lock it in place I used 2 aluminum rivets.

(note)Dimensions in mm

Painting the Receiver Housing

2013-07-19 07.38.33.jpg
2013-07-19 17.15.29.jpg
The next stap is to make the housing a bit more nicer.
So i want to give it a lik of paint.

it had to be a hard paint, able to withstand abuse.

I used "Motorcoater", its designed to be uses on engines.
it resists Olli, grease and lots of stuff, and its scratch resisted :)

A bit overdone, but I had it lying around.


Buidling the Transmitter

2013-07-19 17.17.25.jpg
2013-07-19 17.16.47.jpg
2013-07-19 17.16.38.jpg
I chose Electric installation box (watertight), is sturdy and watertight.
perfect for outside use.

I used 2 socket’s to create holes to the outside of the box.
And on those I glued the sensors.

Drilled 3 hose,
1 for Power (5V)
1 for the external antenna.
and  1 for the blue LED

I just coiled some wire for the internal antenna.
Don’t know the best antenna for 433Mhz, but it works.

Final Product

2013-07-19 17.15.17.jpg
2013-07-23 06.03.47.jpg
And the end result:

A good working Weather station.
Showing Temperature in C, Humidity an barometric pressure .

And all of this in a nice case, and low power consumption

Update 1: New Part

2013-07-23 06.04.17.jpg
A week ago I order a new part for the weather station.
A rain detector, with an Analog and Digital output.
Not sure how to fit this to my Transmitter unit.
Because of the relatively easy way of communication between the units,
it easy to add new components.
Connect a sensor to an open input port, Read out the value, and send it to the receiver.

The Receiver only needs to spit de code and display it at the right line.

I only need to fine tune the sensor to the right amount of rain drops.
or (“No rain”, “ light Rain”, “Heavy Rain”).
So some testing is required.

keep you informed.

Update 2: Mesh & Water

Water.jpg
Gaas.jpg
I added some Plastic mash to protest the sensors against spiders and other small insects,
this way the cant touch the sensor of get inside it.

And after a couple of rainy days the outside unit still works :)


Ignore the way I attached  the unit to the drain. (duct tape FTW)