WIRELESS AUTOMATED WEATHER STATION USING ARDUINO

by tanbirsohail in Circuits > Arduino

8531 Views, 100 Favorites, 0 Comments

WIRELESS AUTOMATED WEATHER STATION USING ARDUINO

IMG_20160606_060917.jpg

In this Instructable we make an automated weather station using Arduino boards and sensors. The main focus of this project is to make the entire thing portable and compact. The circuit boards are designed in such a way as to facilitate easy reuse of all major components in other projects. This is an intermediate level project and needs careful design and accuracy.

The entire project will cost you around $ 35 (in parts) to make and less if you buy smart and /or already have most of the parts with you. You probably have.

Starting Facts

nokia lcd.jpg
Fig 1.png

Working Mechanism

Hardware wise, the project is divided into two parts

  • Transmitting Station
  • Receiving Station

The Transmitter Station mainly consists of the sensor hub as well as a data transmitter. The Receiver Station consists of the LCD display and the display interface as well as the data receiver. They are discussed in details in the following sections.

The following points are to be noted:

  • I have kept flexibility in the design of both the transmitter and the receiver boards so that they can work with both 5 volt and 3.3 volt logic and power level.
  • As a result, we can use both the Arduino pro mini and the Arduino nano boards. The entire project will be demonstrated using the Arduino nano boards. The images given have the Arduino nano board. If you plan on using the 3.3V logic level Arduino Pro Mini boards, check out the conclusion and Scope of Development Step.
  • I have used the 333.92 Mhz ASK based Wireless Transmitter and Receiver modules for transmitting data from the transmitter box to the Receiver box. Make sure these frequencies of operation are legal in your area. In some places these frequencies may be restricted.

All the parts used in this project can be picked up from amazon, banggood.com and hobbyking. If exact parts are not available, replacement parts can also be used. (For example, the DHT 22 module instead of DHT 11.) Make sure to change the code and design accordingly.

I will try to keep this Instructable as clear and concise as possible. If you need any help or have spotted any errors, make sure to tell me in the comments.

Now, without any further ado, lets get started.

Parts Required

1n4001.jpg
433mhz1445587198.jpg
517ed955ce395f471d000000.png
517edbabce395fd51d000000.png
ArduinoDHT11Probe090345_1391361047.jpg
BMP front.jpg
Heat_Sink_T220_V3-500x500.JPG
IMG_20160416_111408.jpg
220E_resistor-500x500.jpg
Nokia-5110-LCD.jpg
Picture1.png

Here is the list of parts you will require:

  1. Arduino Nano - 2 units
  2. Nokia 5110 LCD - 1 unit
  3. DHT 11 - 1 unit
  4. BMP180 - 1 unit
  5. Rain Sensor - 1 unit
  6. Tx-Rx Module 1 unit
  7. IC 7805 (9v to 5v converter) - 2 unit
  8. Capacitor - 4 units (electrolytic, 2x 100 microfarads and 2x 10 microfarads)
  9. LEDs - 6 units (2 units of Bright Red, Blue and Green Leds)
  10. Diode 4007 - 2 units
  11. Heat Sink - 2 units (optional)
  12. Hex Screws and nuts for mounting LCD display - 4 units
  13. 9 V Battery - 2 units
  14. IC CD4050 - 1 unit
  15. IC Base for 8pin IC - 1 unit
  16. Perfboard - 2 units (Medium size, non connected. Don't use the row connected veroboards)
  17. Male Breakaway Headers - 4 units
  18. Female Breakaway Headers - 4 units
  19. Battery Holder - 2 units
  20. 22 gauge insulated Wires - around 6.9 inch x 2 (used to make the antennas)
  21. Resistors for driving LEDs - 220 ohm 4 units
  22. Switches (Slider) - 2 units
  23. Switches (DPDT) - 3 units
  24. Plastc Containers / Box - 2 units
  25. Connector Jumper Wires (Female to Female) - 12 units

Here is the list of tools you will require:

  1. Multimeter
  2. Soldering Iron
  3. PCB cutter/ dremel/ hacksaw
  4. Drill or punch.
  5. Soldering flux, solder, desoldering wick and solder sucker
  6. Electrical tape
  7. Wirecutters
  8. Scissors
  9. Sandpaper
  10. Cleaning cloth

Also read the notes on each images I attached.

The Transmission Station

Transmitter Sensors.JPG
IMG_20160606_055949.jpg
IMG_20160606_055631.jpg
IMG_20160606_055603.jpg
IMG_20160606_055544.jpg
IMG_20160606_060116.jpg
IMG_20160606_060527.jpg
9v to 5v Converter_bb.png
Transmiting Station_bb.png

Before I begin, I urge you to check the notes on all the reference images given in this step.

The transmitter station consists of all three weather monitoring sensors to monitor weather conditions like Temperature, Humidity, Atmospheric Pressure, Altitude and Precipitation Amount.

The Arduino Nano Rev 3.0 board forms the heart of the Transmitter Station. It collects the data captured by the sensors in a compact package and the Arduino also encodes this data for the ASK based RF Transmitter module.

Here in this board, none of the components are hardwired, to facilitate easy upgrade or replacement.

The red transmitter chip transmits the data bytes from the data Output pin 12 of the Arduino. It uses a spiral Antenna made from insulated 22 Gauge single core solid copper wire.

Refer to the Fritzig Sketches for connection details of the 9 volt to 5 volt converter as well as the connection of the arduino. For ease of understanding, the 9v to 5v converter is taken as a single board in the Transmitter module sketch.

The LEDs are attached to data pin 13 (default debug LED pin) and the light up when data transmission occurs.

A 9v Nickel Cadmium battery powers the Transmitter station. Hence we need to implement a 9V to 5V voltage regulator circuit because the Arduino runs best on regulated 5v power supply (yes, that's a fact). The rain sensor module has a sensor plate which has variable resistance depending on its level of contact with water. The container is air tight and has a sliding on off switch on the outside.

Refer to the images. Since embedding images in between texts is not possible here in the editor, I have mentioned important tips in the image notes.

I have intended this instructable to be a learning experience. Hence, I want the viewer to go through the material and do the ground work. Rather than attaching schematics, PCB layouts and gerber files, I have attached fritzig sketches. They require a more careful examination than schematics.

Recieving Station

IMG_20160606_061024.jpg
IMG_20160605_201837.jpg
IMG_20160605_201221.jpg
IMG_20160606_060711.jpg
IMG_20160606_061120.jpg
Recieving Station_bb.png

The Receiver station consists of the Arduino Nano, the RF Receiver module, antenna and the Nokia 5110 LCD Display module. A level shifter chip (CD4050) is used to convert the high 5V voltage level to 3.3V voltage level because the Nokia 5110 LCD display is only 3.3 volt tolerant for the logic levels.


Here also, power from a 9v is regulated to stable 5.0 volt. Hence a voltage regulator unit using a 7805 IC is used. The 3.3v output pin of the Arduino is used to power the LCD display. The board is made in such a way that it is compatible with both a 5v Arduino Nano v3 as well as an Arduino Pro Mini 3.3v arduino.

The data lines with the BLUE status LEDs and the Arduino pin 13 and the transmitter and Arduino pin 12 is not hardwired in the board.

The CD4050 Hex Buffer can be disabled easily with a push-button switch. An external slider switch can be used to turn the station ON or OFF.

Code

Arduino Weather Station Splash.bmp
nokia lcd.jpg

The Code for the receiver and transmitter is attached.

The arduino libraries used in this project are:

  1. Adafruit graphics library (for any adafruit LCD)
  2. Adafruit PCD8544 Library (for Nokia 5110 LCD)
  3. VirtualWire Library (for the 433.92 Mhz Transmitter/Reciever Modules)
  4. Adafruit DHT Library (For DHT 11 sensor)
  5. Adafruit BMP085 library (For BMP 180 sensor )

Please use latest versions of the libraries and also if you are using alternate versions or different sensors, please modify the codes accordingly.

Generating the LCD Splash Screen:

I used LCD Assistant software to generate the splash screen. I have attached the Bitmap Image I created to get the splash screen shown in the photo.

Both educ8s.tv and GreatScott! are excellent channels and have good and easy to follow Arduino tutorials on Nokia 5110 LCD and most other sensors used in this project. I learnt a lot from them. So follow their tutorials if you are a beginner.

Working Model

IMG_20160606_060917.jpg

The transmitter station captures all the sensor values as floating point variables and packs them into a data structure package to minimize data loss using error detecting and error correcting codes. Using ASK modulation, the data is transmitted at a frequency of 433.92 MHz. A delay of 1 second is purposefully set to prevent data collision.

The receiver station captures the package and decodes it. Then it displays the results on the LCD according to program code. Since these are battery powered and wireless, they can be deployed hassle free in remote locations ans require very little upkeep. The arduino can be tweaked to use low power mode and hence the battery lives can be maximized.

IMPORTANT : Useful Tips and Hints

tx.jpg
IMG_20160606_060116.jpg
  • If you already know how to build intermediate level circuits and projects (e.g. using ESP8266, Arduino or the Raspberry pi) then I urge you to use 2x 1.5 volts AA alkaline batteries. You will get around 3.2 volts which is enough to use in Rawinput PIN of 3.3 volt arduino pro mini. Depending on the quality of batteries, you may or may not need a boosting circuit. Also, you will not be needing any of the 9v to 5v converter components then.
  • If you use a bare-bones board, or cheap Chinese clones, you may break off all LEDs etc and use the Low Power library to lengthen the battery life.
  • Use breakaway headers for the board and also use ribbon cables for connecting the display to the data pins of the Arduino.
  • The antenna of the 433.92 Mhz receivers need to be around 6.9 inches. Take a Straw and wrap the wire around it with 1mm pitch between the spirals. See the image as a reference. Solder a single female breakaway header to one end, and you will get your detachable antenna. make sure to keep a single Male header pin in the Perfboard connected to the antenna pin of the transmitter/receiver. This will facilitate easy attachment/removal.
  • The CD4050 is a unidirectional level shifter, used for controlling the logic level. Search online for the schematics. The connection pinout is very easy. As an alternate, 10k resistor for the RST, CS, DC, DIN and CLK pins.
  • Make sure to use a 220 ohm resistor for the LED pin of the display. This will limit the current to the four corner LEDs of the Nokia 5110 LCD module.
  • Soldering the connections of adjacent male and female headers can be frustrating. make sure to use proper amount of flux and solder. Remember, less is more. If by any chance adjacent tracks get shorted, skip twor tracks and continue soldering. Use desoldering pump/ wick to remove excess solders. Add a little flux and carefully re-solder the pins. Refer to attached image.
  • The excess length of the resistor, diode and LEDs can be used to make fantastic fround or VCC interconnections. Refer to the Image. It is better to run lesser amount of wires over the Perfboard.
  • If you do not have a drill/Punch you may use a round heated soldering iron tip to make holes on the plastic box for making holes.

References