Thx for ur time.
Check ->
[0] Getting IP...
[6639] IP:192.168.1.6
[6640]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ \/ '_/
/____/_/\_, /_//_/_/\_\
/___/ v0.6.1 on Arduino Mega
[6757] Connecting to 192.168.1.14
[6821] Ready (ping: 8ms).
[7182] Time sync: OK
Hora AT START_UP is:15
Hora is:15 TimeDay is: 15 TimeNight is: 16
Flag is:1
Hora is between 8PM and 5AM
Hora is:15
Hora is:15 TimeDay is: 15 TimeNight is: 16
Flag is:0
Hora is:15 TimeDay is: 15 TimeNight is: 16
Flag is:0
Hora is:15 TimeDay is: 15 TimeNight is: 16
Flag is:0
15:58:58.801 -> Hora is:15 TimeDay is: 15 TimeNight is: 16
15:58:58.836 -> Flag is:0
15:58:58.836 -> [308395] Time sync: OK
15:59:58.747 -> Hora is:15 TimeDay is: 15 TimeNight is: 16
15:59:58.782 -> Flag is:0
16:00:58.762 -> Hora is:16 TimeDay is: 15 TimeNight is: 16
16:00:58.797 -> Flag is:0
16:01:58.752 -> Hora is:16 TimeDay is: 15 TimeNight is: 16
16:01:58.820 -> Flag is:0
and this is full code:
#define BLYNK_PRINT Serial
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <DHT.h>
#include <Wire.h>
#include <TimeLib.h>
#include <WidgetRTC.h>
#define DHTPIN 23
#define DHTTYPE DHT11 // DHT 11
char auth[] = "";
#define W5100_CS 10
#define SDCARD_CS 4
BlynkTimer timer;
WidgetTerminal terminal(V73);
WidgetLED ledbomba(V72);
DHT dht(DHTPIN, DHTTYPE);
WidgetRTC rtc;
const int BombaAgua = 30;
const int ReflectorPatio = 32;
const int Presurizadora = 34;
const int SensorPorton = 38;
const int BotonCuarto = 40;
const int ReflectorPorton = 31;
const int ReflectorTerreno = 33;
const int AperturaPorton = 35;
const int LuzCuarto = 37;
int EstadoBombaAgua = LOW;
int EstadoReflectorPatio = LOW;
int EstadoReflectorPorton = LOW;
int EstadoReflectorTerreno = LOW;
int EstadoPresurizadora = LOW;
bool isFirstConnect = true;
int EstadoLuzCuarto, EstadoBotonCuarto, EstadoAperturaPorton, EstadoSensorPorton;
int Hora = 0; //will be set to current hour at boot
int Flag = 0; // will be adjusted once current hour is established
int TimeDay = 15; //0=12AM - 23=11PM (24Hr Format)
int TimeNight = 16; //0=12AM - 23=11PM (24Hr Format)
void setup()
{
Serial.begin(9600);
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH);
Blynk.begin(auth, IPAddress(192, 168, 1, 14), 8080);
pinMode(BombaAgua, OUTPUT);
pinMode(ReflectorPatio, OUTPUT);
pinMode(Presurizadora, OUTPUT);
pinMode(LuzCuarto, OUTPUT);
pinMode(ReflectorPorton, OUTPUT);
pinMode(ReflectorTerreno, OUTPUT);
pinMode(AperturaPorton, OUTPUT);
pinMode(BotonCuarto, INPUT_PULLUP);
pinMode(SensorPorton, INPUT_PULLUP);
dht.begin();
rtc.begin();
setSyncInterval(300);
terminal.clear();
terminal.println(F("Jarvis Home Iniciado V2"));
terminal.println(F("-------------"));
terminal.println(F("Blynk Version: " BLYNK_VERSION));
terminal.flush();
timer.setInterval(1000L, botonluzcuarto);
timer.setInterval(10000L, temperaturayhumedad);
timer.setInterval(10000L, checkconnect);
timer.setInterval(1000L, sensorporton);
timer.setTimeout(1000L, setFlag);
}
void loop()
{
Blynk.run();
timer.run();
}
BLYNK_CONNECTED() {
if (isFirstConnect) {
Blynk.syncAll();
isFirstConnect = false;
}
}
BLYNK_WRITE(V1) {
EstadoBombaAgua = param.asInt();
digitalWrite(BombaAgua, EstadoBombaAgua);
if (EstadoBombaAgua == 0) {
ledbomba.on();
terminal.println(F("Bomba Encendida"));
terminal.flush();
}
else {
ledbomba.off();
terminal.println(F("Bomba Apagada"));
terminal.flush();
}
}
BLYNK_WRITE(V2) {
EstadoReflectorPatio = param.asInt();
digitalWrite(ReflectorPatio, EstadoReflectorPatio);
}
BLYNK_WRITE(V3) {
EstadoPresurizadora = param.asInt();
digitalWrite(Presurizadora, EstadoPresurizadora);
if (EstadoPresurizadora == 0) {
Blynk.virtualWrite(V103, "Presurizada");
}
else {
Blynk.virtualWrite(V103, "Normal");
}
}
BLYNK_WRITE(V4) {
EstadoLuzCuarto = param.asInt();
digitalWrite(LuzCuarto, EstadoLuzCuarto);
}
BLYNK_WRITE(V5) {
EstadoReflectorPorton = param.asInt();
digitalWrite(ReflectorPorton, EstadoReflectorPorton);
}
BLYNK_WRITE(V6) {
EstadoReflectorTerreno = param.asInt();
digitalWrite(ReflectorTerreno, EstadoReflectorTerreno);
}
BLYNK_WRITE(V7) {
EstadoAperturaPorton = param.asInt();
digitalWrite(AperturaPorton, EstadoAperturaPorton);
}
void botonluzcuarto()
{
if (digitalRead(BotonCuarto) == LOW) {
if (EstadoBotonCuarto != LOW) {
EstadoLuzCuarto = !EstadoLuzCuarto;
digitalWrite(LuzCuarto, EstadoLuzCuarto);
Blynk.virtualWrite(V4, EstadoLuzCuarto);
}
EstadoBotonCuarto = LOW;
} else {
EstadoBotonCuarto = HIGH;
}
}
void temperaturayhumedad()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
String currentTime = String(hour()) + ":" + minute() + ":" + second();
String currentDate = String(day()) + "/" + month() + "/" + year();
terminal.println("Error Temperatura Cuarto Kevin: ");
terminal.print(currentTime);
terminal.print(" ");
terminal.print(currentDate);
terminal.println();
terminal.flush();
return;
}
Blynk.virtualWrite(V10, h);
Blynk.virtualWrite(V11, t);
}
void checkconnect()
{
bool result = Blynk.connected();
if (result == false) {
Blynk.connect();
}
}
void sensorporton() {
EstadoSensorPorton = digitalRead(SensorPorton);
if (EstadoSensorPorton == 1)
{
Blynk.virtualWrite(V8, "Abierto");
} else {
Blynk.virtualWrite(V8, "Cerrado");
}
}
void setFlag()
{
Hora = hour();
Serial.println(" Hora AT START_UP is:" + String(Hora));
if (Hora > TimeDay && Hora < TimeNight)
{
Flag = 0;
}
else
{
Flag = 1;
}
timer.setInterval(60000L, automatic); //starts the check
}
void automatic() {
Hora = hour();
Serial.println(" Hora is:" + String(Hora) + " " + "TimeDay is: " + String(TimeDay) + " " + "TimeNight is: " + String(TimeNight));
Serial.println(" Flag is:" + String(Flag));
if (Flag == 0)
{
if (Hora > TimeDay && Hora < TimeNight)
{
Serial.println(" Hora is between 6AM and 7PM" );
Serial.println(" Hora is:" + String(Hora));
Blynk.virtualWrite (V2, "0");
Blynk.virtualWrite (V5, "0");
Blynk.virtualWrite (V6, "0");
Blynk.virtualWrite (V3, "0");
Flag = 1;
}
}
else if (Flag == 1)
{
if (Hora <= TimeDay || Hora >= TimeNight)
{
Serial.println(" Hora is between 8PM and 5AM" );
Serial.println(" Hora is:" + String(Hora));
Blynk.virtualWrite (V6, "1");
Blynk.virtualWrite (V5, "1");
Blynk.virtualWrite (V2, "1");
Blynk.virtualWrite (V3, "1");
Flag = 0;
}
}
}