/* How to use the DHT-22 sensor with Arduino uno.
Is a temperature and humidity sensor!
See it in original form:
https://create.arduino.cc/projecthub/mafzal/temperature-monitoring-with-dht22-arduino-15b013
*/
#include <stdio.h>
//LCD I2C library:
#include <LiquidCrystal_I2C.h>
//DHT22 sensor library:
#include <DHT.h>;
//LCD I2C address 0x27, 20 column and 4 rows!
LiquidCrystal_I2C lcd(0x27, 16, 2);
//Constants:
#define DHTPIN 2 //what pin we're connected to
#define DHTTYPE DHT22 //DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE); //Initialize DHT sensor for normal 16mhz Arduino
//Variables:
int chk;
float H; //Humidity value
float T; //Temperature value
int buzzer = 12;
void setup(){
//Initialize LCD, DHT22 sensor and buzzer:
lcd.init(); lcd.backlight();
//Serial Communication is starting with 9600 of baudrate speed
Serial.begin(115200);
dht.begin();
pinMode(13, OUTPUT); pinMode(buzzer, OUTPUT);
//Print some text in Serial Monitor
Serial.println("DHT22 sensor with Arduino Uno R3!");
pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT);
}
void loop(){
delay(2000);
//Read data and store it to variables hum and temp
H = dht.readHumidity();
T = dht.readTemperature();
//Print temp and humidity values to serial monitor
Serial.print("Humidity: ");
Serial.print(H);
Serial.println(" %; ");
Serial.print("Temperature: ");
Serial.print(T);
Serial.println(" Celsius.\n");
if(T >= 26.00 && T < 30 ){
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
lcd.println(" warm! ");
lcd.setCursor(0, 1);
lcd.println(T );
lcd.setCursor(0, 0);
lcd.println(H);
digitalWrite(buzzer, 1); tone(buzzer, 900, 100);
delay(400);
digitalWrite(buzzer, 0); tone(buzzer, 900, 100);
delay(400);
digitalWrite(buzzer, 1); tone(buzzer, 900, 100);
delay(400);
digitalWrite(buzzer, 0); tone(buzzer, 900, 100);
delay(400);
}
if(T <26 && T >10 )
{
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
lcd.println(" normal ");
lcd.setCursor(0, 1);
lcd.println(T);
lcd.setCursor(0, 0);
lcd.println(H);
digitalWrite(buzzer, 0);
}
if( T >= 35.00){
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
lcd.println("high");
lcd.setCursor(0, 1);
lcd.println(T);
lcd.setCursor(0, 0);
lcd.println(H);
digitalWrite(buzzer, 1); tone(buzzer, 400, 400);
delay(400);
digitalWrite(buzzer, 0); tone(buzzer, 400, 400);
delay(400);
}
if(T <= 10){
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
lcd.println("cool ");
lcd.setCursor(0, 1);
lcd.println(T);
lcd.setCursor(0, 0);
lcd.println(H);
digitalWrite(buzzer, 1); tone(buzzer, 400, 400);
delay(400);
digitalWrite(buzzer, 0); tone(buzzer, 400, 400);
delay(400);
}
}