/*
Basic Parallel LCD Demo with DHT
Shows basic wiring and writing to a parallel LCD module
11/11/2025
*/
#include <LiquidCrystal.h>
#include <dht.h>
struct sensorData {
float temperature;
int humidity;
};
// pin constants
const int RS = 12, EN = 11, D4 = 10, D5 = 9, D6 = 8, D7 = 7;
const int DHT_PIN = 13;
sensorData dhtData;
// create objects
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
dht DHT;
void showData() {
Serial.print(dhtData.temperature, 1);
Serial.print("\t");
Serial.println(dhtData.humidity);
lcd.setCursor(8, 0);
lcd.print(dhtData.temperature, 1);
lcd.print(char(223));
lcd.print("C ");
lcd.setCursor(10, 1);
lcd.print(dhtData.humidity);
lcd.print(" %");
}
void setup() {
// start serial
Serial.begin(9600);
// start LCD
lcd.begin(16, 2);
// print a splash on the LCD
lcd.setCursor(4, 0);
lcd.print("DHT Demo");
lcd.setCursor(6, 1);
lcd.print("V1.0");
delay(2000);
lcd.clear();
// print headers
lcd.setCursor(0, 0);
lcd.print("Temp:");
lcd.setCursor(0, 1);
lcd.print("Humidity:");
}
void loop() {
int chk = DHT.read22(DHT_PIN);
dhtData.temperature = DHT.temperature;
dhtData.humidity = DHT.humidity;
showData();
delay(2000);
}