#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include"DHT.h"
DHT dht(19, DHT22);
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
byte degr[8] = {B00011,
B00011,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000};
byte Smi01[8] = { B00000,
B00000,
B00001,
B00010,
B00100,
B01001,
B00001,
B01000};
byte Smi02[8] = { B00000,
B11111,
B00000,
B00000,
B00000,
B10001,
B10001,
B00000};
byte Smi03[8] = { B00000,
B00000,
B10000,
B01000,
B00100,
B10010,
B10000,
B00010};
byte Smi04[8] = { B01000,
B00000,
B01000,
B01000,
B00100,
B00010,
B00001,
B00000};
byte Smi05[8] = { B00000,
B00000,
B10001,
B01110,
B00000,
B00000,
B00000,
B11111};
byte Smi06[8] = { B00010,
B00000,
B00010,
B00010,
B00100,
B01000,
B10000,
B00000};
byte Smi07[8] = { B00000,
B00000,
B00000,
B01110,
B10001,
B00000,
B00000,
B11111};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
dht.begin();
LCD.init();
LCD.backlight();
ini_SpecialChar();
}
void ini_SpecialChar(){
LCD.createChar(0,degr);
LCD.createChar(1,Smi01);
LCD.createChar(2,Smi02);
LCD.createChar(3,Smi03);
LCD.createChar(4,Smi04);
LCD.createChar(5,Smi05);
LCD.createChar(6,Smi06);
LCD.createChar(7,Smi07);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("Humidity: ");
Serial.print(h);
Serial.print("% \t");
LCD.setCursor(0, 0);
LCD.print("Hum.: ");
LCD.print(h);
LCD.print("%");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println("°C ");
LCD.setCursor(0, 1);
LCD.print("Temp: ");
LCD.print(t);
LCD.print(char(0));
LCD.print("C ");
//Affichage Smiley
LCD.setCursor(13,0);
LCD.print(char(1));
LCD.setCursor(14,0);
LCD.print(char(2));
LCD.setCursor(15,0);
LCD.print(char(3));
LCD.setCursor(13,1);
LCD.print(char(4));
LCD.setCursor(14,1);
if(t <= 10.0){
LCD.print(char(7));// Grimace
}else{
LCD.print(char(5));// Sourire
}
LCD.setCursor(15,1);
LCD.print(char(6));
delay(500);
}