Monday, March 1, 2021

Arduino Reading Humidity And Temperature From DHT-11 With SH1106 Display

Overview

Referring to DHT-11 in the previous post, I show a sample reading humidity and temperature from this device and display them on an SPI character LCD I made. 

Here I use the SH1106 device to display the same parameters from DHT-11. For an example program in how to use SH1106 display click here.

DHT-11 connect to Arduino pin A0 while the display module connects to the Arduino TWI port.

Arduino Reading Humidity And Temperature From DHT-11 With SH1106 Display
A running Arduino program

The picture shows the temperature reading of 34 degree Celsius and the humidity of 74 %RH.

Arduino Program And Circuit

Schematic Diagram

Connect the circuit as follow:

Arduino Reading Humidity And Temperature From DHT-11 With SH1106 Display
Circuit Connection


Arduino C Code



#include <SimpleDHT.h>
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);

//Connect DHT-11 To Pin A0
SimpleDHT11 dht11(A0);

byte temperature = 0;
byte humidity = 0;
  
void displayEnv(void){
  u8g.firstPage();
  do{
    
    u8g.setFont(u8g_font_timB10);
    u8g.setPrintPos(0,10);
    u8g.print("Humidity:");

    u8g.setFont(u8g_font_timB10);
    u8g.setPrintPos(0,25);
    u8g.print(String(humidity)+" %RH");

    u8g.setFont(u8g_font_timB10);
    u8g.setPrintPos(0,40);
    u8g.print("Temperature:");

    u8g.setFont(u8g_font_timB10);
    u8g.setPrintPos(0,55);
    u8g.print(String(temperature)+" "+char(176)+"C");
  }while(u8g.nextPage()); 
}

void displayErr(void){
  u8g.firstPage();
  do{
    
    u8g.setFont(u8g_font_helvB12);
    u8g.setPrintPos(35,25);
    u8g.print("DHT-11");
    u8g.setPrintPos(0,50);
    u8g.print("  NOT FOUND");

    
  }while(u8g.nextPage()); 
}

void setup() {
  
}

void loop() {
  
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    displayErr();
    delay(1000);
    return;
  }
   
  displayEnv();
  delay(1500);
  
}

When there is no DHT-11 sensor connected, the system shows an error.

Arduino Reading Humidity And Temperature From DHT-11 With SH1106 Display
When there's no sensor connected
 

You can download the sketch here.

 

No comments:

Post a Comment

Search This Blog

Labels

25AA010A (1) 8051 (7) 93AA46B (1) ADC (30) Analog Comparator (1) Arduino (15) ARM (6) AT89C52 (7) ATMega32 (56) AVR (57) CCS PICC (28) DAC (1) DHT11 (2) Display (105) Distance Sensor (3) DS18B20 (3) dsPIC (2) dsPIC30F1010 (2) EEPROM (5) Environment Sensor (4) esp8266 (1) I2C (29) Input/Output (67) Interrupt (19) Keil (5) Keypad (10) LCD (47) Master/Slave (1) MAX7221 (1) MCP23017 (5) MCP23S17 (4) Meter (3) MikroC (2) Motor (15) MPLABX (71) Nokia 5110 LCD (3) OLED (2) One-Wire (6) Oscillator (8) PCB (6) PCD8544 (3) PCF8574 (5) PIC (107) PIC12F (2) PIC16F628A (2) PIC16F630 (1) PIC16F716 (3) PIC16F818 (10) PIC16F818/819 (2) PIC16F84A (15) PIC16F876A (1) PIC16F877A (9) PIC16F88 (1) PIC16F887 (60) PIC18 (19) PIC18F1220 (4) PIC18F2550 (3) PIC18F4550 (12) PWM (11) RTC (8) Sensor (10) SH1106 (1) Shift Register (11) Shift Registers (3) SPI (24) STM32 (6) STM32 Blue Pill (6) STM32CubeIDE (6) STM32F103C8T6 (6) SysTick (3) temperature sensor (11) Thermometer (21) Timer/Counter (31) TM1637 (2) UART (7) Ultrasonic (4) Voltmeter (7) WDT (1) XC16 (2) XC8 (94)