//SDA = A4, SCL = A5;
const unsigned long TSec=1000;
unsigned long Num_ms, Num_sec,Num_min;
unsigned long Num_heur,Temps_ms;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <DHT.h>
#define DHTPIN 2 // Pin where the sensor is connected
#define DHTTYPE DHT22 // Sensor type "normally is DHT11"
const int trig = 4;
const int echo = 5;
const int led = 0;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(led, OUTPUT);
lcd.init();
lcd.backlight();
delay(10);
Serial.begin(9600);
dht.begin();
}
void loop() {
long duration, distance;
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration/2) / 29.1;
if (distance < 20) {
Serial.print(distance);
Serial.println(" cm");
digitalWrite(led, HIGH);
} else if (distance>20) {
Serial.print(distance);
Serial.println(" cm");
digitalWrite(led, LOW);
}
float humidity = dht.readHumidity();
float temperatureC = dht.readTemperature();
if (isnan(humidity) || isnan(temperatureC)) {
Serial.println("Error reading data!");
return;
} else {
// Output data to the serial monitor
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.print("°C, ");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println("%");
lcd.setCursor(0,1);
lcd.print("t=");
lcd.print(temperatureC);
lcd.print("C.");
lcd.print("h=");
lcd.print(humidity);
lcd.print("%");
}
Temps_ms=millis();
Num_sec= (Temps_ms/TSec)%60;
Num_min= (Temps_ms/(TSec*60))%60;
Num_heur= (Temps_ms/(TSec*3600))%60;
Serial.print(Num_heur);Serial.print(":");
Serial.print(Num_min);Serial.print(":");
Serial.println(Num_sec);
lcd.setCursor(0, 0);
lcd.print(Num_heur);lcd.print(":");lcd.print(Num_min);lcd.print(":");lcd.print(Num_sec);
delay(1000);
}