How to make a Temperature and Humidity monitoring system using Arduino UNO R4 WIFI and Arduino Cloud

In this project, we will learn how to make a Temperature and Humidity monitoring system using the Arduino UNO R4 WiFi board. This board has built-in WiFi, so we can connect it to the internet easily. For this project, I used a DHT11 sensor. It can measure temperature and humidity. So, we can check the current weather conditions in real-time. I connected this sensor to the Arduino, and then sent the data to the Arduino IoT Cloud. Because of that, we can see the values from anywhere in the world using a phone or computer.
I used the Arduino Cloud dashboard to display the values. It’s very easy to use. You can add gauges, charts, or text displays to show the temperature and humidity values live. I used two Gauge widgets to the dashboard. Also, you can customize these widgets as you like. If you want to learn more about the Arduino UNO R4 WiFi board, you can check this link. It’s more powerful than the old UNO board and perfect for internet-based projects. Also, if you want more accurate values, you can use a DHT22 sensor instead of the DHT11. It’s a little bit better and gives more stable results. This is a simple and fun project. You can use it for many ideas like a room weather monitor, a greenhouse system, or part of a home automation setup.
Ok, let’s do this project step by step. The required components are given below.
- Arduino UNO R4 WIFI x 1 — Our Store / Amazon
- DHT11 sensor module x 1 — Our Store / Amazon
- LCD screen x 1 — Our Store /Amazon
- I2C module x 1 — Our Store / Amazon
- Breadboard x 1 — Our Store / Amazon
- Jumper wires — Our Store / Amazon
Disclosure: These Amazon links are Affiliate links. As an Amazon Associate, I earn from qualifying purchases.
Step 1
First, let’s identify the components.






Step 2
Secondly, place the DHT11 sensor properly on the breadboard.

Step 3
Then, connect the DHT11 sensor to the Arduino board. For this, connect the VCC and GND pins of the sensor to the power rails on the breadboard. You can follow the circuit diagram below to make the connections easily.






Step 4
After that, connect the I2C module to the Arduino board. Make sure to connect the VCC, GND, SDA, and SCL pins properly. You can also check the circuit diagram to see the correct connections.



Step 5
Now, connect the Arduino UNO R4 WiFi board to your computer using a USB cable. Then, log in to the Arduino Cloud using your account to start the setup.

- First, connect your device to the Arduino Cloud. To do that, download and install the Arduino Agent on your computer. After installing it, you can connect your Arduino UNO R4 WiFi board to the Arduino Cloud easily.









- After that, unplug your Arduino board and plug it back in. Then, it will connect properly to the Arduino Cloud, and you can give it any name you like.





- Now, go to the “Things” tab and create a new Thing. Then, create two variables, one for temperature and one for humidity. Make sure to set the data type to “int” for both variables.






- After that, connect your associated device and enter your WiFi name and password. This will allow your Arduino board to connect to the internet through your home WiFi network.


Step 6
Now, click on the “Sketch” tab and copy the following code into the auto-generated program. Additionally, I have added the header file to display the animation design on the Arduino UNO R4 matrix LED. Finally, click the upload button.
- Program and Circuit diagram — Download
Main Program
#include "Arduino_LED_Matrix.h" //Include the LED_Matrix library
#include "animation.h" //Include animation.h header file
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Adafruit_Sensor.h>
#include "thingProperties.h"
#define sensor 2
// Create an instance of the ArduinoLEDMatrix class
ArduinoLEDMatrix matrix;
LiquidCrystal_I2C dis(0x27, 16, 2);
DHT dht(sensor, DHT11);
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
// you can also load frames at runtime, without stopping the refresh
matrix.loadSequence(animation);
matrix.begin();
// turn on autoscroll to avoid calling next() to show the next frame; the paramenter is in milliseconds
// matrix.autoscroll(300);
matrix.play(true);
dht.begin();
dis.init();
dis.backlight();
showLoadingScreen(); // Call here
}
void loop() {
ArduinoCloud.update();
onTemperatureChange();
onHumidityChange();
}
void onTemperatureChange() {
temperature = dht.readTemperature();
dis.setCursor(0, 0);
dis.print("Temp:");
dis.setCursor(6, 0);
dis.print(temperature);
dis.print(" C ");
}
void onHumidityChange() {
humidity = dht.readHumidity();
dis.setCursor(0, 1);
dis.print("Humi:");
dis.setCursor(6, 1);
dis.print(humidity);
dis.print(" %");
}
void showLoadingScreen() {
dis.clear();
dis.setCursor(0, 0);
dis.print("System Loading");
for (int i = 0; i < 16; i++) {
dis.setCursor(i, 1);
dis.print(".");
delay(150); // adjust speed
}
delay(500);
dis.clear();
}
Animation Program
const uint32_t animation[][4] = {
{
0x30c20,
0x43fc3fc2,
0x430c000,
66
},
{
0x30c29,
0x436c36c2,
0x9430c000,
66
},
{
0x30c2f,
0x430c30c2,
0xf430c000,
66
},
{
0x36c29,
0x41081082,
0x9436c000,
66
},
{
0x3fc30,
0xc1081083,
0xc3fc000,
66
},
{
0x3fc20,
0x42042042,
0x43fc000,
66
},
{
0x3f,
0xc2042043,
0xfc000000,
66
},
{
0x0,
0x3fc3fc0,
0x0,
66
},
{
0x0,
0x1f81f80,
0x0,
66
},
{
0x0,
0xf00f00,
0x0,
66
},
{
0x0,
0x600600,
0x0,
66
},
{
0x0,
0x0,
0x0,
66
}
};








Step 7
Next, go to the Dashboard and create both web and mobile dashboards to monitor the Temperature and Humidity values. For this, I added two gauge widgets to the dashboard. You can also customize these widgets as you like—change the color, size, or range. Make sure to link each widget to the correct variable we created earlier.







Now, you can test your project as you like. I used my hot air gun to test the temperature and humidity readings. The full video guide is below. We hope to see you in the next project. Have a great day!


How to make a Temperature and Humidity monitoring system using Arduino UNO R4 WIFI and Arduino Cloud