Arduino Wireless Weather Station

In this DIY guide I will show you how to make your own wireless weather
station. 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.

~Project updates and more Arduino projects can be found here:

Video presentation:

Step 1: What You Will Need - Hardware Part List

For Master Station you will need:

----> 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.

Step 2: The Circuit at EasyEDA, the Free Online Circuit Design Platform

Step 3: Arduino Connection Pins

--> For Master Station


  • 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


  • 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


  • to Arduino A0

Step 4: 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.




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) /*********************/


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.

Step 5: JLCPCB - Make Your Own Circuit Boad From 2$!

Enter hereto produce your PCB board!

Use JLCPCB for $2 PCB Fabrication & 2-day Build Time, the quality is really good, check the below photo of our pcb board.

Step 6: 3D Parts

Step 7: Well Done!

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



    • Organization Contest

      Organization Contest
    • Paper Contest

      Paper Contest
    • Weaving Challenge

      Weaving Challenge