Menu

Adskeeper - header widge

728x90

468x60

Navbar

AdsKeeper - IAB Display Standard Ad Unit

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

Adskeep- Standard Ads

336x280

Search This Blog

AdsKeeper - 2091654

Labels

23K256 (1) 24C16B (2) 25AA010A (2) 8051 (7) 93AA46B (1) ADC (34) Analog Comparator (1) Arduino (16) ARM (15) AT89C52 (7) ATMega32 (59) ATMega644P (27) AVR (88) AVR PCB (2) Bootloader (1) CCS PICC (31) Change Notify Interrupt (CNI) (2) DAC (2) DHT11 (4) Display (137) Distance Sensor (3) dot matrix (1) ds1307 (10) DS18B20 (5) ds3231 (1) ds3232 (2) dsPIC (5) dsPIC30F1010 (3) dsPIC30F2010 (5) EEPROM (5) Environment Sensor (5) ESP32 (1) esp8266 (1) Graphical LCD (3) I2C (38) ILI9341 (1) Input/Output (78) Interrupt (22) IoT PCB (1) Keil (5) Keypad (16) KS0108 (3) LCD (76) LM35 (3) Master/Slave (2) MAX7221 (1) MCP23017 (8) MCP23S17 (7) MCP4921 (1) MCP4922 (2) Meter (3) MikroC (2) Module PCB (1) Motor (15) MPLABX (73) Nokia 5110 LCD (4) OLED (2) One-Wire (7) Oscillator (8) PCB (12) PCD8544 (3) PCF8574 (10) PIC (108) PIC12F (3) PIC16 (105) PIC16F628A (3) PIC16F630 (2) PIC16F716 (4) PIC16F818 (11) PIC16F818/819 (3) PIC16F84A (16) PIC16F876A (2) PIC16F877A (9) PIC16F88 (2) PIC16F887 (60) PIC18 (19) PIC18F1220 (5) PIC18F2550 (5) PIC18F4550 (12) PICKit2 (1) PICMicro PCB (4) Pin Change Interrupt (1) PWM (12) RTC (12) SBN0064G (1) Sensor (13) SH1106 (3) Shift Register (13) Shift Registers (12) SN74HC595N (2) Software TWI (2) SPI (39) ST7735 (1) STM32 (14) STM32 Black Pill (1) STM32 Blue Pill (12) STM32 HAL (8) STM32CubeIDE (16) STM32F103C8T6 (9) STM32F103R6 (3) STM32F401CCU6 (1) SysTick (4) temperature sensor (13) TFT (1) TG12864A (1) Thermometer (22) Timer/Counter (32) TM1637 (2) twi (10) UART (8) Ultrasonic (4) Voltmeter (7) WDT (1) XC16 (2) XC8 (96)