Arduino Based Wireless (RF) Weather Station Network

by Giannis Vasilakis in Circuits > Arduino

10179 Views, 89 Favorites, 0 Comments

Arduino Based Wireless (RF) Weather Station Network

FW1401WJP6T60O6.LARGE.jpg
FVXY1I4JP6T60L6.LARGE.jpg
FAGPLEDJP6T60L7.LARGE.jpg
FVIY7WBJP6T9MPA.LARGE.jpg

In this DIY guide I will show you how to make your own wireless weather station!

My communication protocol will allow you to have up to 10 sensor stations in your wireless network, but you can change and extend it up to 254 stations! The RF technology and the module that we used will allow you to have a long range distance between your sensors and master station that will have in your room. You can power on your sensor stations with 5V battery (or even with 3.7V) or a solar panel system!

Every "Sensor Station" can have a:

  • Photocell / photoresistor Light sensor
  • DHT-22/DHT11 Temperature/Humidity Sensor
  • DS12B20 Waterproof Temp Sensor

In this project I decided to make my own PCB that is based on Arduino UNO microcontroller - Atmega328p.

Bellow you will find the electronic schematic with PCB layout so you can easily produce it!

Let's get started!

~Projects can be found here:

https://www.ardumotive.com/arduino-wireless-weathe...


Video presentation:

What You Will Need - Hardware Part List

71NubvOu5aL._SX679_.jpg

For Master Station you will need:

  • Our custom PCB circuit *
  • Atmega328 (with Arduino UNO bootloader)
  • 28 dip socket
  • 16 MHz crystal oscillator
  • 2x22 pF capacitors
  • 1x100nF ceramic capacitor
  • 1x10uF Electrolytic Capacitor
  • 1x10K resistor
  • Screw terminal 2P 2.54mm
  • 2xPin Header
  • 1x5 Female 2.54mm

----> Or use an Arduino board with breadboard

~Power by 5V power adapter or USB powerbank~

For every Slave - Sensor Station you will need:

  • Our custom PCB circuit *
  • Atmega328 (with Arduino UNO bootloader)
  • 28 dip socket
  • 16 MHz crystal oscillator
  • 2x22 pF capacitors
  • 1x100nF ceramic capacitor
  • 1x10uF Electrolytic Capacitor
  • 1x10K resistor
  • Screw terminal 2P 2.54mm
  • 2xPin Header
  • 1x5 Female 2.54mm

----> Or use an Arduino board with breadboard

One of the following sensors:

~Power by 5V power adapter or USB powerbank or battery pack~

*You will also need a TTL to USB module or an Arduino UNO board for the programming procedure.

The Circuit - Electronic and PCB Schematic

FU6KB8IJP6T5ZSP.LARGE.jpg
F4DNSOJJP6T5ZTF.LARGE.jpg
F06COOTJP6T5ZSQ.LARGE.jpg
FDB8UO6JP6T5ZTG.LARGE.jpg


Find the electronic and pcb schematic at link below:

Master Station:

https://easyeda.com/mi.vasilakis/Wireless-Weather-...


Slave/Sensor Station:

https://easyeda.com/mi.vasilakis/slave

You can make any changes you want!

Arduino Connection Pins

FFQ5ZYZJP6T600S.LARGE.jpg
FHVAS8DJP6T600C.LARGE.jpg
FQM4YBRJP6T600L.LARGE.jpg
FVH5THDJP6T600F.LARGE.jpg
FGKMJUVJP6T6002.LARGE.jpg

--> For Master Station

LCD

  • RS pin to Arduino Pin 3
  • EN pin to Arduino Pin 4
  • D4 pin to Arduino Pin 5
  • D5 pin to Arduino Pin 6
  • D6 pin to Arduino Pin 7
  • D7 pin to Arduino Pin 11

DHT Sensor

  • Data pin to Arduino Pin 2

HC-12

  • TX pin to Arduino Pin 8
  • RX pin to Arduino Pin 9

--> For Slave/Sensor Station

DHT Sensor

  • Data pin to Arduino Pin 8

DS18B20 Sensor

  • Data pin to Arduino Pin 2

Photocell

  • to Arduino A0

The Code

How to program our PCBs:

Connect your circuit with TTL to USB module with 5 cables to the programming header. The pins RX and TX must be cross-connected.

NOTE: If you are using the Arduino UNO board make sure to remove the ATmega328 IC from it first and connect the headers RX to RX and TX to TX pins of the board. The RS pin must be connected to Arduino UNO reset pin.

-------------CONFIGURATION-----------------

Master

/***CONFIGURATION ****/
const long interval = 5000; // ms

const int slaves = 1; //Number of slaves (max 16) (go to line 95 and complete the if statement for every sensor) /*********************/

Slave

/***CONFIGURATION ****/
const long interval = 5000; // ms

String ADDR = "0"; //Device address from 0 to f #define SENSOR_TYPE 1 // Type of sensor in slave unit. Can be 1 for DHT, 2 for DS18B20 or 3 for PHOTOCELL

/*********************/

Download the code from here and open it with Arduino IDE. Inside you will also find the libraries for this project.

Downloads

3D Parts

FZY8G04JP6T60D0.LARGE.jpg
FZVO9QQJP6T60D3.LARGE.jpg
F20K3GZJP6T60D4.LARGE.jpg
FNWQV20JP6T60D5.LARGE.jpg
FK2VGXLJP6T60H9.LARGE.jpg
FD7SB2BJP6T60H3.LARGE.jpg

Download and print the case of the master and slave stations with your 3D printer!

Downloads

Well Done!

FHYRC8ZJP6T60PT.LARGE.jpg
FOZ4VVVJP6T9M70.LARGE.jpg
F25PHL6JP6T60L4.LARGE.jpg
F4U6NJFJP6T9N7M.LARGE.jpg

I hope you liked this, let me know in the comments !!!