top of page

Project 1: Build a Smart Thermometer with an LCD Display (Beginner Arduino Project)

  • Writer: Cartell Automotive
    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

ree

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

I2C Display Module
I2C Display Module

Assembly Guide

  1. Mount the DHT11 sensor and LCD onto the breadboard.

  2. Use jumper wires to connect each pin based on the tables above.

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


bottom of page