#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
DHT dht(5, DHT22);
float temperature ;
float humidity;
int counter;
LiquidCrystal_I2C lcd(0x27, 20, 4);
int relay1=2;
int relay2=4;
int relay3=15;
String data;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
lcd.setCursor(6,0);
lcd.print("welcome to");
lcd.setCursor(6,1);
lcd.print("nit");
lcd.setCursor(0,3);
lcd.print("timestamp(DateTime::TIMESTAMP_FULL)");
lcd.setCursor(0,3);
lcd.print("timestamp(DateTime::TIMESTAMP_DATE");
delay(1500);
lcd.clear();
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop()
{
relayControl();
dhtvalues();
rtcstatus();
}
void relayControl()
{
if(Serial.available()>0)
{
data=Serial.readString();
Serial.println(data);
data.trim();
if(data=="motor1 on")
{
digitalWrite(relay1,HIGH);
}
if(data=="motor1 off")
{
digitalWrite(relay1,LOW);
}
if(data=="motor2 on")
{
digitalWrite(relay2,HIGH);
}
if(data=="motor2 off")
{
digitalWrite(relay2,LOW);
}
if(data=="motor3 on")
{
digitalWrite(relay3,HIGH);
}
if(data=="motor3 off")
{
digitalWrite(relay3,LOW);
}
}
}
void dhtvalues()
{
temperature = dht.readTemperature();
humidity = dht.readHumidity();
Serial.println("Data: "+ String(counter));
// Print the values of temperature in Celsus
Serial.print("Temperatue:\t");
Serial.print(dht.readTemperature(false));
Serial.println("C");
// Print the values of temperature in Fahrenheit
Serial.print("Temperatue:\t");
Serial.print(dht.readTemperature(true));
Serial.println("F");
// print Humidity in perscent
Serial.println("Humidity: \t"+String(humidity)+ "%");
// Print the values of the heat Index for both Units
Serial.print("Heat Index In Celsus: ");
Serial.println(dht.computeHeatIndex(temperature, humidity, false));
Serial.print("Heat Index In Fahrenheit: ");
Serial.println(dht.computeHeatIndex(temperature, humidity, true));
Serial.println(" ");
delay(1000);
lcd.setCursor(3,0);
lcd.print("temp = ");
lcd.print(temperature);
lcd.setCursor(3,2);
lcd.print("hum = ");8
lcd.print(humidity);
counter++;
}
void rtcstatus()
{
DateTime time = rtc.now();
//Full Timestamp
Serial.println(String("DateTime::TIMESTAMP_FULL:\t")+time.timestamp(DateTime::TIMESTAMP_FULL));
//Date Only
Serial.println(String("DateTime::TIMESTAMP_DATE:\t")+time.timestamp(DateTime::TIMESTAMP_DATE));
//Full Timestamp
Serial.println(String("DateTime::TIMESTAMP_TIME:\t")+time.timestamp(DateTime::TIMESTAMP_TIME));
Serial.println("\n");
//Delay 5s
delay(500);
}