/********************
* Humidity Detection
* 40 bit data
* 8 humidity int + 8 humidity float +
* 8 temperature int + 8 temperature float +
* 8 checksum
*********************/
#include <dht.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
dht DHT;
const int DHT11_PIN = 7;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
D:
int chk = DHT.read11(DHT11_PIN);
switch (chk) {
case DHTLIB_OK:
Serial.println("OK!");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Checksum error, \t");
break;
case DHTLIB_ERROR_TIMEOUT:
goto D;
Serial.println("Time out error, \t");
break;
default:
Serial.println("Unknow erro, \t");
break;
}
lcd.setCursor(0, 0);
lcd.print("Tem: ");
Serial.print("Tem: ");
lcd.print(DHT.temperature, 1);
Serial.print(DHT.temperature, 1);
lcd.print(char(223));
Serial.print(char(223));
lcd.print("C");
Serial.println("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
Serial.print("Hum: ");
lcd.print(DHT.humidity, 1);
Serial.print(DHT.humidity, 1);
lcd.print("%");
Serial.println("%");
delay(1000);
}