Dear friends welcome back! This is Nick from
educ8s.tv and today we are going to build
a wireless weather station project using Arduino.
Without any further delay, let’s get started!
Today’s project is this. A Wireless Weather
Station with a big 3.2” Color TFT display.
As you can see, the project is up and running,
and it displays the current date and time,
the indoor temperature and humidity, and the
outdoor temperature and humidity. The readings
of the outdoor sensor are updated every second
in order to demonstrate that we have a reliable
communication link established with the transmitter
which is outside at a distance of 5m. The
readings of the indoor sensor are updated
once every minute. The heart of the project
is the fast Arduino Due, and as you can see
there is no flickering of the screen when
the values are updated. Let’s now see the
transmitter.
The transmitter is much simpler. It consists
of an Arduino Nano, a DHT22 sensor and the
NRF24L01 wireless transceiver module. The
transmitter reads the temperature and the
humidity every second, and sends them to the
receiver via the NRF24L01 module. This is
a one way communication link, we don’t know
if the receiver actually receives the data,
but we send new data every second, so in case
we miss a package we are going to receive
another one soon. Let’s now see how to build
this project.
The parts needed for this project are these:
• An Arduino Due or a Mega
• An Arduino Nano
• A 3.2” Color TFT display
• 2 DHT22 sensors
• A DS3231 RTC module
• 2 NRF24L01 Wireless transceiver modules
• 2 Breadboards
• Some header pins
• And some wires
The cost of the project is around 40$. You
can find links for all the parts in the description
of the video. You can lower the cost of the
project by 5$ if you use the Arduino Mega
instead of the Arduino Due. I haven’t tested
it, but it should work fine as well but it
will be much slower.
Let’s now connect all the parts together.
Before we start I highly recommend you to
watch a couple of videos before attempting
to build this project. That’s a difficult
project for beginners, there are many things
that can go wrong, so it requires some experience.
That’s the reason I encourage you to build
the projects shown in these videos first.
Just click on the card here to watch them.
Let’s first build the transmitter. It is
very simple. We connect the output pin of
the sensor to digital pin 4 of the Arduino
Nano. We connect the Ground and Vcc and we
are ready. All we have to do now is to connect
the NRF24L01 wireless module. Please watch
the NRF24L01 tutorial I have prepared in order
to see how to connect it.
The receiver part is a bit trickier. We have
to use 7 header pins and bend them like that.
Then we have to place them at the following
pins. We need one to Ground and one to 3.3V.
We need two at the I2C pins. We need the remaining
3 to digital pins from 6 to 8. We also have
to solder three wires to the hardware SPI
pins of the Arduino Due pins. We need MOSI,
MISO and SCK. Check the diagram carefully.
We can’t use female wires since the display
won’t fit with the wires attached. We connect
the wires to the header pins and we are ready
to attach the display.
We connect GND and 3.3V to the breadboard.
Next we connect the GND and VCC of the DHT22
module and the DS3231 module to the breadboard
GND rail and Vcc rail. Next we connect the
I2C pins of the Real Time clock to I2C wires
and the output pin of the DHT22 sensor to
digital pin 8. That’s it, all we have to
do now is to connect the NRF24L01 module.
The first pin is GND, so it goes to breadboard
GND. The next pin is Vcc so it goes to the
breadboard Vcc. Be careful though, the module
will be destroyed if you connect it to 5V
so be sure that you are providing 3.3V to
breadboard rail. The next pin goes to digital
pin 6. The fourth pin goes to digital pin
7. The fifth pin goes to the hardware SCK
pin that we have soldered earlier. The 6th
pin goes to MOSI, and the 7th to MISO. The
last pin stays unconnected!
That’s it, we are now ready to power up
both the transmitter and the receiver! If
everything went well, we are going to see
live data on the display. Cool, everything
works fine! It wasn’t that difficult, was
it? Let’s now see the code of the project.
The transmitter code is very simple. It is
almost identical with the code of the NRF24L01
tutorial. The only thing that it has changed
is that we now send real data that we get
from the DHT22 sensor. Please, be sure to
use the correct library for the NRF24L01 module.
You can find a link for it in the description
of the video.
Let’s now see the receiver code. We need
4 libraries. I now use a different library
for the display which works great! You can
download it from a link that can be found
in the description of the video. After downloading
the library you have to open the User_Setup.h
file comment line 13 and uncomment line 14
because the display we have is using the HX8357C
driver. Now we can continue with the 3 other
libraries. We need one library for the Real
Time clock, one for the DHT22 sensor and lastly
one for the Wireless module.
Let’s see the code now. The first thing
we have to do is to set the time to the real
time clock module if it is not already set.
In order to do it, enter the current date
and time in this line of code, uncomment this
line of code here and upload the program to
Arduino. Now the time is set. But, then we
have to comment this line of code again and
upload the program to Arduino once more.
The code of the receiver works like this.
In the setup function we initialize all the
sensors and the modules and we print the User
Interface. Then at the loop function we continuously
check for new wireless data. If there is new
data we save that data in variables and print
them on the display. We read the temperature
and the humidity once a minute and we only
update the display if there is a change in
the values. This way we reduce flickering
of the display even more! I have also prepared
a version of the code with the temperature
displayed in degrees Fahrenheit. As always
you can find the code of the project in a
link in the description of the video.
As you can see, this project is a great demonstration
of what open source hardware and software
is capable of. Within a few hours one can
build such an impressive project! Of course,
this is a just the beginning. We can add many
more features to the project. I will soon
add a button, so we can display graphs, and
have different modes. We can also add more
sensors, data logging, internet connection
and so on. We are using the Arduino Due, so
we have plenty of memory to implement many
more things. I would love to hear your opinion
on this project. How do you want to see it
evolve? Please post your comments or ideas
in the comments section below! Thank you!
If this is your first time here, I would love
to have you subscribed. In this channel I
post videos about DIY projects every Saturday.
I love making things and I believe that anyone
can make things, anyone can become a maker.
That’s why I created this channel, in order
to share my knowledge with the community and
learn from the community. I hope you will
join us. Until next Saturday, Watch, Learn, Build!
[ Translating these subtitles? Add your name here! ]
