DEV Community

Hedy
Hedy

Posted on

How to display the temperature and humidity from the DHT sensor on an LCD screen?

Let’s display the temperature and humidity from the DHT sensor on an LCD screen using Python on a Raspberry Pi.

Project: Display Sensor Data on 16x2 LCD with I2C
What You Need:

Wiring the I2C LCD to Raspberry Pi:

Enable I2C on Raspberry Pi:

bash sudo raspi-config 
Enter fullscreen mode Exit fullscreen mode

Go to Interface Options > I2C > Enable

Then reboot:

bash sudo reboot 
Enter fullscreen mode Exit fullscreen mode

Step 1: Install Required Libraries

bash sudo apt update sudo apt install python3-pip i2c-tools pip3 install adafruit-circuitpython-charlcd pip3 install Adafruit_DHT 
Enter fullscreen mode Exit fullscreen mode

Step 2: Find Your I2C Address
Run:

bash i2cdetect -y 1 
Enter fullscreen mode Exit fullscreen mode

Look for an address like 0x27 or 0x3F (that’s your LCD address).

Step 3: Python Script
Create a file:

bash nano lcd_dht.py 
Enter fullscreen mode Exit fullscreen mode

Paste this code (make sure to adjust your I2C address if needed):

python import time import board import busio import adafruit_character_lcd.character_lcd_i2c as character_lcd import Adafruit_DHT # Set up DHT sensor sensor = Adafruit_DHT.DHT11 dht_pin = 4 # Set up I2C and LCD i2c = busio.I2C(board.SCL, board.SDA) lcd_columns = 16 lcd_rows = 2 lcd = character_lcd.Character_LCD_I2C(i2c, lcd_columns, lcd_rows) # Clear screen lcd.clear() try: while True: humidity, temperature = Adafruit_DHT.read_retry(sensor, dht_pin) if humidity is not None and temperature is not None: lcd.clear() lcd.message = f"Temp:{temperature:.1f}C\nHum:{humidity:.1f}%" else: lcd.clear() lcd.message = "Sensor Error" time.sleep(2) except KeyboardInterrupt: lcd.clear() lcd.message = "Goodbye!" time.sleep(2) lcd.clear() 
Enter fullscreen mode Exit fullscreen mode

Save and exit (Ctrl+X, then Y, then Enter).

Run It:

bash python3 lcd_dht.py 
Enter fullscreen mode Exit fullscreen mode

You should now see the temperature and humidity values update every 2 seconds on your LCD!

What You Learn:

  • I2C device communication
  • Combining input (DHT) and output (LCD)
  • Building real-time display systems

Top comments (0)