Arduino Wired Weather Station - Wind Speed, Temp, Humidity & BP

by KCRocks in Circuits > Arduino

1240 Views, 11 Favorites, 0 Comments

Arduino Wired Weather Station - Wind Speed, Temp, Humidity & BP

FINAL-1.jpg

My Motivation

The reason for building this weather station is because I wanted to know how windy it was outside my home. Is it a good time to rake leaves, grill out on the patio or just enjoy a sunny walk? I wanted a very reliable and accurate measurement of the wind speed!


My Goal 

     To provide clear, detailed information so anyone can build this simple weather station.


Project Requirements

     

     1. Wired system, because a wifi system can be unreliable.     

     2. Anemometer using magnet and reed switch. Battery or solar panels not needed. 

     3. Simple, economical and reliable system to build and maintain.


Reasons For Choices

 

1. - Arduino Uno - Inexpensive microprocessor and the one used by ForceTronics, whose design I used to build my weather station.


2. - 20x4 LCD Display - Preferred over 16x2 lcd display or OLED display. The 20x4 display connects to the Adruino Uno via i2C which allows it to connect with only 4 wires. The 20 character display with four lines gives you plenty of room to display your weather data.


3. - BME280 Sensor - More accurate than other sensors and has all three sensors on one chip: temperature, humidity and barometric pressure.


4. - Inspeed Vortex Anemometer - I chose this anemometer because it is well built, accurate and used by actual storm chasers. Also, no need to try and figure out calibration as it has been tested by Inspeed at 1 Hz (1 cycle per rotation) = 2.5 mph.


5. - Logic Level Converter - Needed this device because BME280 sensor uses 3 volt logic and needs to be converted to 5 volt logic which is what the Uno uses. Logic voltage is different than regular voltage the Uno runs on. I have included info for learning about logic converters and why one is needed for this project.


Credit Due   

I could not have build this weather station without the very informative Youtube video from ForceTronics. The sketch code was explained very well and that made it easy for me to understand and modify for my project. Watch the video to also learn about switch bounce!

Check it out!        Measuring Wind Speed with an Anemometer and Arduino

                            https://www.youtube.com/watch?v=emE6yWWQUHg         

                           

Supplies

Arduino Uno - $13.99 - Amazon

Debounce Circuit

1 - Breadboard - $1.50

1 - 360 ohm resistor - Spare parts

1 - 1k resistor - Spare parts

1 - Diode - Spare parts

1 - 10uf capacitor - Spare parts

KeeYees 10 pcs IIC I2c Level Converter - $7.99 - Amazon

SunFounde IIC I2C TWI 20x4 LCD display - $12.89 - Amazon

Inspeed Classic Anemometer - $59.00 - www.inspeed.com

HiLetgo BME280 Temp/BP/Humidity Sensor - $10.99 - Amazon

Wire connectors (Electop 10 pack RCA Female to Female Couplers) - $6.59 - Amazon

-------------------------------------------------------------

Estimated Cost: $112.95 - This doesn't include taxes and shipping.

Debounce Circuit

FINAL-7A.jpg
FINAL-6.jpg

STEP 1 - 

Debounce Circuit -Build the debounce circuit on a small breadboard. Wait to run the connecting wires until Step 3.

What is switch bounce? Term used to describe the behavior of a mechanical switch when it is closed often doesn't create a continuous closed circuit right away. Often the electrical connection will bounce a bit before it establishes a continuous closed circuit. Check out this great short video: https://www.youtube.com/watch?v=Y86-t9j6doo

Logic Level Converter

Image14.jpg

STEP 2 - 

Logic Level Converter - Add the level converter to the breadboard.

IMPORTANT: Logic level voltage is different than the power voltage. Here is a great video from Brainy-Bits that explains why we need a logic level converter: https://www.youtube.com/watch?v=7_khghG77MA

Begin Running Connecting Wires

Wiring Order 3.jpg
IMG_5661.jpg
FINAL-3.jpg
FINAL-6.jpg
FINAL-4.jpg
IMG_6357-edited.jpg

Using the wiring connections diagram, run:

(Wire 1) from the Arduino Uno to the level converter using the blue wire.

(Wire 2) from the Arduino Uno to positive power rail on the breadboard using the red wire

(Wire 3) from the Arduino Uno to negative power rail on the breadboard using the black wire

Continue down the diagram from wire 4 to wire 17.


A printable pdf is available.

Running Wires to BME280 Sensor

sensor-2.jpg
IMG_5721-edited.jpg

The BME280 sensor has 6 connections. Only four are needed for this project. I used solid copper wire to run between my weather station and the sensor and used 2 RCA connectors to connect the four wires so I could disconnect the sensor if needed. The red and white connectors are for the BME280 sensor. The yellow connector is for the anemometer.

Container for BME280 Sensor

sensor-3.jpg

I soldered the wires to the BME280 sensor and put the sensor under the eave of my home in a small plastic container to protect it from rain and drilled holes in it to allow air flow to it. Not pretty, but functional!

Inspeed Anemometer

Vortex - 2.jpg

The Inspeed anemometer has only two wires. One wire is connected to 5 volts on power rail of the breadboard (16 yellow wire) and the other is a neutral wire (17 black wire) that connects the the debounce circuit. Again I used a RCA connector so I could disconnect the anemometer if needed.

Housing for Indoor Weather Station

IMG_6099.JPG

I didn't have any plastic boxes to put the arduino and other parts in so I found a small box. It was easy to cut holes for the led screen and connecting wires. I spray painted it black and installed everything in it. Some day I will find a better container to house my weather station!

Code for Aduino Sketch

I am including the code to upload to your Arduino Uno.

Miscellaneous Information

LIBRARIES - You will need to download the following libraries to allow the lcd screen, I2C and BME280 sensor to work with the Arduino Uno. If you purchase different devices then use the recommended libraries for them. 

Wire.h - This library allows you to communicate with I2C/TWI devices.  

LiquidCrystal_I2C.h - The library allows to control I2C LCD displays with functions extremely similar to LiquidCrystal library. 

Adafruit_BME280.h - - The library is for communicating with the sensor.


Watch a very short video of the working anemometer on the roof of my home: https://youtu.be/KfS3DqsvQIM


The display updates every two seconds. I added code to keep track of the maximum wind speed. 

Sometimes the system would lock up or stop working. I tried plugging the usb cable into a cell phone power block instead of my pc. For me it was more reliable to use the power block!

I hope you enjoy building this weather system and enjoy being able to see digitally what the weather is just outside your door!