#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int DHTPIN = 2;
const int DHTTYPE = DHT22;
DHT dht(DHTPIN, DHTTYPE);
const int buzzer = 11;
byte led1 = 13;
byte led2 = 12;
byte degree[8] =
{
0B01110,
0B01010,
0B01110,
0B00000,
0B00000,
0B00000,
0B00000,
0B00000
};
void setup()
{
lcd.init();
lcd.backlight();
pinMode(buzzer, OUTPUT);
lcd.print("Nhiet do: ");
lcd.setCursor(0,1);
lcd.print("Do am: ");
lcd.createChar(1, degree);
dht.begin();
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {}
else
{
lcd.setCursor(10,0);
lcd.print(round(t));
lcd.print(" ");
if(t>=0)
{
lcd.setCursor(12,0);
lcd.print(" ");
}
lcd.setCursor(14,0);
lcd.write(1);
lcd.print("C");
lcd.setCursor(10,1);
lcd.print(round(h));
if(h<100)
{
lcd.setCursor(12,1);
lcd.print(" ");
}
lcd.setCursor(14,1);
lcd.print(" %");
}
if (t > 30)
{
digitalWrite(led1, 1);
tone(buzzer, 1000); // Send 1KHz sound signal...
delay(1000); // ...for 1 sec
noTone(buzzer); // Stop sound...
delay(1000); // ...for 1sec
}
else
{
digitalWrite(led1, 0);
}
if (h <= 50)
{
digitalWrite(led2, 1);
tone(buzzer, 1000); // Send 1KHz sound signal...
delay(1000); // ...for 1 sec
noTone(buzzer); // Stop sound...
delay(1000); // ...for 1sec
}
else
{
digitalWrite(led2, 0);
}
}