Dear all
I have used arduino platform and nodemcu unit. I have uploaded the below code earlier its working well.
I have updated IDE Know all arduino option related to Nodemcu setting upgrated.
With this upgrade i could not able to establish connection between blynkserver and nodemcu.
#include"glob.h"
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define YELLOW 0xFFE0
#define D5 5
#define D6 6
#define D7 7
#define D8 8
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <WidgetRTC.h>
BlynkTimer timer;
WidgetRTC rtc; // Set RTC widget.
char auth[] = "tI_2ykfiEEbYCZx36gYP5T3NQ_6YMO8T";// COde generated from Blynk
char ssid[] = "HOT SPOT";// user has to set wifi device SSID
char pass[] = "airtel123";// user has to set wifi device Password
WidgetLED led25(25);
WidgetLED led22(22);
WidgetLED led23(23);
WidgetLED led24(24);
#define OLED_RESET LED_BUILTIN //4
Adafruit_SSD1306 display(OLED_RESET);
void TimeZone1_Function();
void setup()
{
Serial.begin(115200);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.display();
display.setTextSize(1);
display.setTextColor(WHITE);
Blynk.begin(auth, ssid, pass);
pinMode(D5, OUTPUT);// TimeZone1_Function
pinMode(D7, OUTPUT);// TimeZone2_Function
pinMode(D6, OUTPUT);//TimeZone3_Function
pinMode(D8, OUTPUT);// TimeZone4_Function
rtc.begin();
setSyncInterval(360);
timer.setInterval(10000L, TimeZone1_Function); // Update Time Check every 10 seconds
timer.setInterval(10000L, TimeZone2_Function); // Update Time Check every 10 seconds
timer.setInterval(10000L, TimeZone3_Function); // Update Time Check every 10 seconds
timer.setInterval(10000L, TimeZone4_Function); // Update Time Check every 10 seconds
timer.setInterval(1000, Chk_manual_Auto_Status);
}
void loop()
{
Blynk.run();
timer.run();
sprintf(Date, "%04d/%02d/%02d", year() , month() , day() );
sprintf(Time, "%02d:%02d:%02d", hour(), minute(), second());
Blynk.virtualWrite(V11, Date);
Blynk.virtualWrite(V10, Time);
Display();
}
BLYNK_CONNECTED()
{
Blynk.syncVirtual(V3); // sync timeinput widget
Blynk.syncVirtual(V4); // sync timeinput widget
Blynk.syncVirtual(V5); // sync timeinput widget
Blynk.syncVirtual(V6); // sync timeinput widget
Blynk.syncVirtual(V2);
Blynk.syncVirtual(V50);
}
BLYNK_WRITE(V3)// TimeZone1 TimeInput Store in below variable
{
TimeInputParam t(param);
SThour = t.getStartHour();
STmin = t.getStartMinute();
STsec = t.getStartSecond();
SPhour = t.getStopHour();
SPmin = t.getStopMinute();
SPsec = t.getStopSecond();
}
BLYNK_WRITE(V4)// TimeZone2 TimeInput Store in below variable
{
TimeInputParam t(param);
Wk_Emd_SThour = t.getStartHour();
Wk_Emd_STmin = t.getStartMinute();
Wk_Emd_STsec = t.getStartSecond();
Wk_Emd_SPhour = t.getStopHour();
Wk_Emd_SPmin = t.getStopMinute();
Wk_Emd_SPsec = t.getStopSecond();
}
BLYNK_WRITE(V5)// TimeZone3 TimeInput Store in below variable
{
TimeInputParam t(param);
Al_SThour = t.getStartHour();
Al_STmin = t.getStartMinute();
Al_STsec = t.getStartSecond();
Al_SPhour = t.getStopHour();
Al_SPmin = t.getStopMinute();
Al_SPsec = t.getStopSecond();
}
BLYNK_WRITE(V6)// TimeZone4 TimeInput Store in below variable
{
TimeInputParam t(param);
TimeZ4__SThour = t.getStartHour();
TimeZ4__STmin = t.getStartMinute();
TimeZ4__STsec = t.getStartSecond();
TimeZ4__SPhour = t.getStopHour();
TimeZ4__SPmin = t.getStopMinute();
TimeZ4__SPsec = t.getStopSecond();
}
BLYNK_WRITE(V51) // Time Zone1 Button Selected
{
if (param.asInt() == 1)
{
Serial.println("Time Zone1 is selected ");
TimeZone1 = 1;
TimeZone2 = 0;
TimeZone3 = 0;
TimeZone4 = 0;
Blynk.virtualWrite(V52, 0);
Blynk.virtualWrite(V53, 0);
Blynk.virtualWrite(V54, 0);
} else
{
TimeZone1 = 0;
led22.off();
}
}
BLYNK_WRITE(V52) // Time Zone2 Button Selected
{
if (param.asInt() == 1)
{
Serial.println("Time Zone 2 is selected ");
TimeZone2 = 1;
TimeZone3 = 0;
TimeZone1 = 0;
TimeZone4 = 0;
Blynk.virtualWrite(V51, 0);
Blynk.virtualWrite(V53, 0);
Blynk.virtualWrite(V54, 0);
} else
{
TimeZone2 = 0;
led23.off();
}
}
BLYNK_WRITE(V53) // Time Zone3 Button Selected
{
if (param.asInt() == 1)
{
Serial.println("Time Zone3 selected ");
// timer.setTimeout(50, resetTerminal);
// timer.setTimeout(50, resetManual);
// timer.setTimeout(50, checklastbuttonpressed);
TimeZone3 = 1;
TimeZone1 = 0;
TimeZone2 = 0;
TimeZone4 = 0;
Blynk.virtualWrite(V51, 0);
Blynk.virtualWrite(V52, 0);
Blynk.virtualWrite(V54, 0);
} else
{
TimeZone3 = 0;
led24.off();
}
}
BLYNK_WRITE(V54) // Time Zone4 Button Selected
{
if (param.asInt() == 1)
{
Serial.println("Time Zone4 selected ");
TimeZone4 = 1;
TimeZone1 = 0;
TimeZone2 = 0;
TimeZone3 = 0;
Blynk.virtualWrite(V51, 0);
Blynk.virtualWrite(V52, 0);
Blynk.virtualWrite(V53, 0);
} else
{
TimeZone4 = 0;
led25.off();
}
}
void TimeZone1_Function()
{
if (TimeZone1 == 1)
{
// call with timer every 30 seconds or so
// Get RTC time
sprintf(currentTime, "%02d:%02d:%02d", hour(), minute(), second());
Serial.print("Current Time: ");
Serial.println(currentTime);
// Get Time Input Widget time
sprintf(startTime, "%02d:%02d:%02d", SThour, STmin, STsec);
Serial.print("Start Time: ");
Serial.println(startTime);
sprintf(stopTime, "%02d:%02d:%02d", SPhour, SPmin, SPsec);
Serial.print("Stop Time: ");
Serial.println(stopTime);
Current_SHour = hour() * 60 * 60 + minute() * 60 + second();
T1_STHour = SThour * 60 * 60 + STmin * 60 + STsec;
T1_STPhour = SPhour * 60 * 60 + SPmin * 60 + SPsec;
if (Current_SHour >= T1_STHour && Current_SHour <= T1_STPhour)
{
Serial.println("RELAY IS ON");
Serial.println("..........................");
digitalWrite(D5, HIGH); // Turn ON built-in LED
led22.on();
Relay_Status = 1;
TimeZone_Status = 1;
} else
{
Serial.println("RELAY IS OFF"); Serial.println("..........................");
digitalWrite(D5, LOW); // Turn ON built-in LED
led22.off();
Relay_Status = 0;
Blynk.virtualWrite(V51, 0);
// TimeZone_Status = 0;
}
}
}
void TimeZone2_Function()
{
if (TimeZone2 == 1)
{
sprintf(currentTime, "%02d:%02d:%02d", hour(), minute(), second());
Serial.print("Current Time: ");
Serial.println(currentTime);
// Get Time Input Widget time
sprintf(Sat_Sun_startTime, "%02d:%02d:%02d", Wk_Emd_SThour, Wk_Emd_STmin, Wk_Emd_STsec);
Serial.print("Start Time: ");
Serial.println(Sat_Sun_startTime);
sprintf(Sat_Sun_stopTime, "%02d:%02d:%02d", Wk_Emd_SPhour, Wk_Emd_SPmin, Wk_Emd_SPsec);
Serial.print("Stop Time: ");
Serial.println(Sat_Sun_stopTime);
Current_SHour = hour() * 60 * 60 + minute() * 60 + second();
T2_STHour = Wk_Emd_SThour * 60 * 60 + Wk_Emd_STmin * 60 + Wk_Emd_STsec;
T2_STPhour = Wk_Emd_SPhour * 60 * 60 + Wk_Emd_SPmin * 60 + Wk_Emd_SPsec;
if (Current_SHour >= T2_STHour && Current_SHour <= T2_STPhour)
{
Serial.println("RELAY IS ON");
Serial.println("..........................");
digitalWrite(D7, HIGH); // Turn ON built-in LED
led23.on();
Relay_Status = 1;
TimeZone_Status = 2;
} else
{
Serial.println("RELAY IS OFF"); Serial.println("..........................");
digitalWrite(D7, LOW); // Turn ON built-in LED
led23.off();
Blynk.virtualWrite(V52, 0);
Relay_Status = 0;
// TimeZone_Status = 0;
}
}
}
void TimeZone3_Function()
{
if (TimeZone3 == 1)
{
// call with timer every 30 seconds or so
// Get RTC time
sprintf(currentTime, "%02d:%02d:%02d", hour(), minute(), second());
Serial.print("Current Time: ");
Serial.println(currentTime);
// Get Time Input Widget time
sprintf(AllDay_startTime, "%02d:%02d:%02d", Al_SThour, Al_STmin, Al_STsec);
Serial.print("Start Time: ");
Serial.println(AllDay_startTime);
sprintf(AllDay_stopTime, "%02d:%02d:%02d", Al_SPhour, Al_SPmin, Al_SPsec);
Serial.print("Stop Time: ");
Serial.println(AllDay_stopTime);
Current_SHour = hour() * 60 * 60 + minute() * 60 + second();
T3_STHour = Al_SThour * 60 * 60 + Al_STmin * 60 + Al_STsec;
T3_STPhour = Al_SPhour * 60 * 60 + Al_SPmin * 60 + Al_SPsec;
if (Current_SHour >= T3_STHour && Current_SHour <= T3_STPhour)
{
Serial.println("RELAY IS ON");
Serial.println("..........................");
digitalWrite(D6, HIGH); // Turn ON built-in LED
led24.on();
Relay_Status = 1;
TimeZone_Status = 3;
} else
{
Serial.println("RELAY IS OFF"); Serial.println("..........................");
digitalWrite(D6, LOW); // Turn ON built-in LED
led24.off();
Blynk.virtualWrite(V53, 0);
Relay_Status = 0;
//TimeZone_Status = 0;
}
}
}
void TimeZone4_Function()
{
if (TimeZone4 == 1)
{
// call with timer every 30 seconds or so
// Get RTC time
sprintf(currentTime, "%02d:%02d:%02d", hour(), minute(), second());
Serial.print("Current Time: ");
Serial.println(currentTime);
// Get Time Input Widget time
sprintf(TimeZone4SRTTime, "%02d:%02d:%02d", TimeZ4__SThour, TimeZ4__STmin, TimeZ4__STsec);
Serial.print("Start Time: ");
Serial.println(TimeZone4SRTTime);
sprintf(TimeZone4STPTime, "%02d:%02d:%02d", TimeZ4__SPhour, TimeZ4__SPmin, TimeZ4__SPsec);
Serial.print("Stop Time: ");
Serial.println(TimeZone4STPTime);
Current_SHour = hour() * 60 * 60 + minute() * 60 + second();
T4_STHour = TimeZ4__SThour * 60 * 60 + TimeZ4__STmin * 60 + TimeZ4__STsec;
T4_STPhour = TimeZ4__SPhour * 60 * 60 + TimeZ4__SPmin * 60 + TimeZ4__SPsec;
if (Current_SHour >= T4_STHour && Current_SHour <= T4_STPhour)
{
Serial.println("RELAY IS ON");
Serial.println("..........................");
digitalWrite(D8, HIGH); // Turn ON built-in LED
led25.on();
Relay_Status = 1;
TimeZone_Status = 4;
} else
{
Serial.println("RELAY IS OFF"); Serial.println("..........................");
digitalWrite(D8, LOW); // Turn ON built-in LED
led25.off();
Blynk.virtualWrite(V54, 0);
Relay_Status = 0;
//TimeZone_Status = 0;
}
}
}
BLYNK_WRITE(V50) // Manual/Auto selection
{
if (param.asInt() == 0)
{
manual = 1;
Serial.println("Manual mode is selected ");
// restorelastbuttonpressed ();
} else
{
manual = 0;
Serial.println("AUTO mode is selected ");
AutoMode_Function();
//checklastbuttonpressed();
}
}
void Chk_manual_Auto_Status()
{
if (manual == 0)
{
AutoMode_Function();
}
}
void AutoMode_Function()
{
sprintf(currentTime, "%02d:%02d:%02d", hour(), minute(), second());
Serial.print("Current Time: ");
Serial.println(currentTime);
if (Current_SHour >= T1_STHour && Current_SHour <= T1_STPhour)
{
TimeZone1 = 1;
Blynk.virtualWrite(V51, 1);
Blynk.virtualWrite(V52, 0);
Blynk.virtualWrite(V53, 0);
Blynk.virtualWrite(V54, 0);
if ((digitalRead(D7) == 1 ) && (digitalRead(D6) == 1) && (digitalRead(D8) == 1))
{
digitalWrite(D7, LOW); digitalWrite(D6, LOW); digitalWrite(D8, LOW);
led25.off(); led24.off(); led23.off();
}
}
if (Current_SHour >= T2_STHour && Current_SHour <= T2_STPhour)
{
TimeZone2 = 1;
Blynk.virtualWrite(V51, 0);
Blynk.virtualWrite(V52, 1);
Blynk.virtualWrite(V53, 0);
Blynk.virtualWrite(V54, 0);
if ((digitalRead(D5) == 1 ) && (digitalRead(D6) == 1) && (digitalRead(D8) == 1))
{
digitalWrite(D5, LOW); digitalWrite(D6, LOW); digitalWrite(D8, LOW);
led25.off(); led24.off(); led22.off();
}
}
if (Current_SHour >= T3_STHour && Current_SHour <= T3_STPhour)
{
TimeZone3 = 1;
Blynk.virtualWrite(V51, 0);
Blynk.virtualWrite(V52, 0);
Blynk.virtualWrite(V53, 1);
Blynk.virtualWrite(V54, 0);
if ((digitalRead(D5) == 1 ) && (digitalRead(D7) == 1) && (digitalRead(D8) == 1))
{
digitalWrite(D5, LOW); digitalWrite(D7, LOW); digitalWrite(D8, LOW);
led25.off(); led23.off(); led22.off();
}
}
if (Current_SHour >= T4_STHour && Current_SHour <= T4_STPhour)
{
TimeZone4 = 1;
Blynk.virtualWrite(V51, 0);
Blynk.virtualWrite(V52, 0);
Blynk.virtualWrite(V53, 0);
Blynk.virtualWrite(V54, 1);
if ((digitalRead(D5) == 1 ) && (digitalRead(D6) == 1) && (digitalRead(D7) == 1))
{
digitalWrite(D5, LOW); digitalWrite(D6, LOW); digitalWrite(D7, LOW);
led23.off(); led24.off(); led22.off();
}
}
else if (TimeZone1 == 0 && TimeZone2 == 0 && TimeZone3 == 0 && TimeZone4 == 0)
{
TimeZone_Status = 0;
Relay_Status = 0;
Blynk.virtualWrite(V51, 0);
Blynk.virtualWrite(V52, 0);
Blynk.virtualWrite(V53, 0);
Blynk.virtualWrite(V54, 0);
digitalWrite(D5, LOW); digitalWrite(D6, LOW); digitalWrite(D7, LOW); digitalWrite(D8, LOW);
led23.off(); led24.off(); led22.off(); led25.off();
}
else if ((digitalRead(D5) == 1 ) || (digitalRead(D6) == 1) || (digitalRead(D7) == 1) || (digitalRead(D8) == 1))
{
Relay_Status = 1;
}
}
void Display()
{
Chk_manual_Auto_Status();
display.setCursor(0, 0);
//display.clearDisplay();
display.print("MODE:");
if (manual == 0)
{
//display.setTextColor(WHITE);
display.clearDisplay();
display.println("AUTO");
display.display();
//display.setTextColor(BLUE);
} else
{
//display.setTextColor(WHITE);
display.clearDisplay();
display.println("MANUAL");
display.display();
// display.setTextColor(BLUE);
}
display.print("TIME:");
//display.clearDisplay();
display.println(currentTime);
display.display();
//display.setTextColor(WHITE);
display.print("TIME_ZONE:");
display.println(TimeZone_Status);
display.display();
display.print("RELAY STATUS:");
if (Relay_Status == 1)
{
display.println("ON");
display.display();
} else
{
display.println("OFF");
display.display();
}
delay(2000);
}