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.
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:
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.
When there's no sensor connected |
You can download the sketch here.
No comments:
Post a Comment