728x90

728x90

Wednesday, March 3, 2021

Arduino reading temperature and humidity from DHT-11 with SPI character LCD

Overview Of DHT-11

DHT-11 is a humidity and temperature sensor, interfaces to the controller using only one data wire. It could measure the humidity between 20 to 90 %RH with the accuracy of 5%RH. The temperature could be measure between 0 to 50 degree Celsius with the accuracy of 2 degree Celsius.

Arduino reading temperature and humidity from DHT-11 with SPI character LCD
Arduino Example Of Using DHT-11



The voltage typically supplied at 5 VDC. However, The data DQ pin requires a pull up resistor of around 5 kOhm.

Arduino reading temperature and humidity from DHT-11 with SPI character LCD


Arduino reading temperature and humidity from DHT-11 with SPI character LCD
Connection diagram between DHT-11 and MCU.


Arduino Interfacing And Programming

For this sensor, there are a lot of libraries available on line made by many author, especially on Github.

I use SimpleDHT by the authors on Github.

Arduino reading temperature and humidity from DHT-11 with SPI character LCD
SimpleDHT library installation on Arduino

In this example, I use an Arduino, a DHT-11 and an SPI LCD, to read and display the temperature and humidity on the screen. I modified the built-in example comes with this library.

Arduino reading temperature and humidity from DHT-11 with SPI character LCD
Schematic
 

 

Arduino Source Code:

#include <SimpleDHT.h>
#include <ShiftedLCD.h>
#include <SPI.h>

int pinDHT11 = 2;
SimpleDHT11 dht11(pinDHT11);

//Select pin 8 for Enable pin
LiquidCrystal lcd(8);


void setup() {
  lcd.begin(16,4);
  lcd.clear();

  lcd.setCursor(0,0);
  lcd.print("DHT-11 Sensor");
}

void loop() {

  // read without samples.
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    delay(1000);
    return;
  }
  
  lcd.setCursor(0,0);
  lcd.print("DHT-11 Sensor");

  lcd.setCursor(0,1);
  lcd.print("Temp: "+String(temperature)+char(223)+"C");

  lcd.setCursor(-4,2);
  lcd.print("Humidity: "+String(humidity)+"%RH");
 
  // DHT11 sampling rate is 1HZ.
  delay(1500);
 
}

Arduino sketch for this example could be download here.





No comments:

Post a Comment

320x50

Search This Blog

tyro-728x90