Project 1: Build a Smart Thermometer with an LCD Display (Beginner Arduino Project)
- Cartell Automotive
- May 29
- 2 min read
Getting started with Arduino can be overwhelming, but with the right project, you’ll gain confidence in no time. In this post, we’ll build a smart thermometer using a DHT11 temperature and humidity sensor and display the live readings on a 16x2 I2C LCD screen. Learn by doing, just follow along, need more info? got any questions?, head to the comments below.
What You’ll Need (From Your Starter Kit)
Component | Quantity |
UNO R3 Development Board | 1 |
16x2 I2C LCD Display (Blue Backlight) | 1 |
DHT11 Temperature and Humidity Sensor | 1 |
Breadboard (830 points) | 1 |
Jumper Wires | ~6 |
Learning Objectives
Understand how to connect and use the DHT11 sensor.
Learn how to work with an I2C LCD screen.
Practice reading sensor data and displaying it.
Format sensor output for user-friendly display.
Wiring
DHT11 Pin | Connect To | Arduino Pin |
VCC | +5V | 5V |
Data | Signal | D2 |
GND | Ground | GND |

I2C LCD Display Pinout
I2C LCD Pin | Connect To | Arduino Pin |
GND | Ground | GND |
VCC | +5V | 5V |
SDA | Data Line | SDA |
SCL | Clock Line | SCL |

Assembly Guide
Mount the DHT11 sensor and LCD onto the breadboard.
Use jumper wires to connect each pin based on the tables above.
Double-check connections before powering on.
Arduino Code
Before uploading the code, make sure you install these libraries:
Required Libraries
DHT sensor library by Adafruit
LiquidCrystal_I2C by Frank de Brabander or compatible
Go to Sketch > Include Library > Manage Libraries, search for these, and install.
The CH340 Driver is available in our store free to download or could be found with a quick internet search, the CH340 Driver must be installed while the board is connected to the computer.
Full Code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 2 // Digital pin connected to the DHT11
#define DHTTYPE DHT11 // DHT 11 sensor type
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Address 0x27, 16 column x 2 row
void setup()
{
Serial.begin(9600);
dht.begin();
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Initializing...");
delay(2000);
lcd.clear();
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
lcd.setCursor(0, 0);
lcd.print("Sensor error ");
return;
}
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(h);
lcd.print(" %");
delay(2000);
}How It Works
The DHT11 sensor measures temperature and humidity every 2 seconds.
The I2C LCD displays this data in real-time.
The isnan() check ensures your code doesn’t break if the sensor fails to read.
The lcd.setCursor(x, y) controls where text appears on the screen.
Tips for Beginners
If your LCD shows nothing, adjust the contrast using the small screw on the I2C backpack.
The I2C address 0x27 is the most common, but yours might be different. You can use an I2C Scanner sketch to find it.
The DHT11 has limited accuracy. This is perfect for learning, but not for precise measurements.
Project Expansions
Once you've mastered this project, try adding:
LED indicators for "Hot", "Normal", and "Cold".
A buzzer alert if humidity drops too low.
Serial output to log data in the Arduino Serial Monitor.
Conclusion
This Smart Thermometer project introduces you to sensor integration, displaying data, and using libraries in Arduino. It’s a fantastic way to get familiar with your kit’s core components.
In the next blog, we’ll take a step further into RFID-based access control. Stay tuned!



Comments