#include
#include
#include
#include
BlynkTimer timer;
#define BLYNK_PRINT Serial
#define DEBUG_SW 0
const int sensor_pin = 22;
const int buzzer = 19;
#define S1 25
#define R1 15
#define S2 33
#define R2 2
#define S3 32
#define R3 4
#define S4 35
#define R4 5
#define S5 34
#define R5 18
#define S6 36
#define R6 21
#define LED1 12
#define LED2 14
#define LED3 13
#define Buzzer 19
#define DHTPIN 26
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int MODE = 0;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "rab2";
char pass[] = "065578444";
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "NOTUizjQx4nWhwRWO7-iTo4qFgkroDH3";
int switch_ON_Flag1_previous_I = 0;
int switch_ON_Flag2_previous_I = 0;
int switch_ON_Flag3_previous_I = 0;
int switch_ON_Flag4_previous_I = 0;
int switch_ON_Flag5_previous_I = 0;
int switch_ON_Flag6_previous_I = 0;
BLYNK_WRITE(V1)
{
int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
digitalWrite(R1, pinValue);
// process received value
}
BLYNK_WRITE(V2)
{
int pinValue = param.asInt(); // assigning incoming value from pin V2 to a variable
digitalWrite(R2, pinValue);
// process received value
}
BLYNK_WRITE(V3)
{
int pinValue = param.asInt(); // assigning incoming value from pin V3 to a variable
digitalWrite(R3, pinValue);
// process received value
}
BLYNK_WRITE(V4)
{
int pinValue = param.asInt(); // assigning incoming value from pin V4 to a variable
digitalWrite(R4, pinValue);
// process received value
}
BLYNK_WRITE(V5)
{
int pinValue = param.asInt(); // assigning incoming value from pin V5 to a variable
digitalWrite(R5, pinValue);
// process received value
}
BLYNK_WRITE(V6)
{
int pinValue = param.asInt(); // assigning incoming value from pin V6 to a variable
digitalWrite(R6, pinValue);
// process received value
}
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V7, t);
Blynk.virtualWrite(V8, h);
}
void with_internet()
{
if (digitalRead(S1) == LOW)
{
if (switch_ON_Flag1_previous_I == 0 )
{
digitalWrite(R1, LOW);
if (DEBUG_SW) Serial.println("Relay1- ON");
Blynk.virtualWrite(V1, 0);
switch_ON_Flag1_previous_I = 1;
}
if (DEBUG_SW) Serial.println("Switch1 -ON");
}
if (digitalRead(S1) == HIGH )
{
if (switch_ON_Flag1_previous_I == 1)
{
digitalWrite(R1, HIGH);
if (DEBUG_SW) Serial.println("Relay1 OFF");
Blynk.virtualWrite(V1, 1);
switch_ON_Flag1_previous_I = 0;
}
if (DEBUG_SW)Serial.println("Switch1 OFF");
}
if (digitalRead(S2) == LOW)
{
if (switch_ON_Flag2_previous_I == 0 )
{
digitalWrite(R2, LOW);
if (DEBUG_SW) Serial.println("Relay2- ON");
Blynk.virtualWrite(V2, 0);
switch_ON_Flag2_previous_I = 1;
}
if (DEBUG_SW) Serial.println("Switch2 -ON");
}
if (digitalRead(S2) == HIGH )
{
if (switch_ON_Flag2_previous_I == 1)
{
digitalWrite(R2, HIGH);
if (DEBUG_SW) Serial.println("Relay2 OFF");
Blynk.virtualWrite(V2, 1);
switch_ON_Flag2_previous_I = 0;
}
if (DEBUG_SW)Serial.println("Switch2 OFF");
//delay(200);
}
if (digitalRead(S3) == LOW)
{
if (switch_ON_Flag3_previous_I == 0 )
{
digitalWrite(R3, LOW);
if (DEBUG_SW) Serial.println("Relay3- ON");
Blynk.virtualWrite(V3, 0);
switch_ON_Flag3_previous_I = 1;
}
if (DEBUG_SW) Serial.println("Switch3 -ON");
}
if (digitalRead(S3) == HIGH )
{
if (switch_ON_Flag3_previous_I == 1)
{
digitalWrite(R3, HIGH);
if (DEBUG_SW) Serial.println("Relay3 OFF");
Blynk.virtualWrite(V3, 1);
switch_ON_Flag3_previous_I = 0;
}
if (DEBUG_SW)Serial.println("Switch3 OFF");
//delay(200);
}
if (digitalRead(S4) == LOW)
{
if (switch_ON_Flag4_previous_I == 0 )
{
digitalWrite(R4, LOW);
if (DEBUG_SW) Serial.println("Relay4- ON");
Blynk.virtualWrite(V4, 0);
switch_ON_Flag4_previous_I = 1;
}
if (DEBUG_SW) Serial.println("Switch4 -ON");
}
if (digitalRead(S4) == HIGH )
{
if (switch_ON_Flag4_previous_I == 1)
{
digitalWrite(R4, HIGH);
if (DEBUG_SW) Serial.println("Relay4 OFF");
Blynk.virtualWrite(V4, 1);
switch_ON_Flag4_previous_I = 0;
}
if (DEBUG_SW)Serial.println("Switch4 OFF");
//delay(200);
}
if (digitalRead(S5) == LOW)
{
if (switch_ON_Flag5_previous_I == 0 )
{
digitalWrite(R5, LOW);
if (DEBUG_SW) Serial.println("Relay5- ON");
Blynk.virtualWrite(V5, 0);
switch_ON_Flag5_previous_I = 1;
}
if (DEBUG_SW) Serial.println("Switch5 -ON");
}
if (digitalRead(S5) == HIGH )
{
if (switch_ON_Flag5_previous_I == 1)
{
digitalWrite(R5, HIGH);
if (DEBUG_SW) Serial.println("Relay5 OFF");
Blynk.virtualWrite(V5, 1);
switch_ON_Flag5_previous_I = 0;
}
if (DEBUG_SW)Serial.println("Switch5 OFF");
//delay(200);
}
if (digitalRead(S6) == LOW)
{
if (switch_ON_Flag6_previous_I == 0 )
{
digitalWrite(R6, LOW);
if (DEBUG_SW) Serial.println("Relay6- ON");
Blynk.virtualWrite(V6, 0);
switch_ON_Flag6_previous_I = 1;
}
if (DEBUG_SW) Serial.println("Switch6 -ON");
}
if (digitalRead(S6) == HIGH )
{
if (switch_ON_Flag6_previous_I == 1)
{
digitalWrite(R6, HIGH);
if (DEBUG_SW) Serial.println("Relay6 OFF");
Blynk.virtualWrite(V6, 1);
switch_ON_Flag6_previous_I = 0;
}
if (DEBUG_SW)Serial.println("Switch6 OFF");
//delay(200);
}
}
void without_internet()
{
digitalWrite(R1, digitalRead(S1));
digitalWrite(R2, digitalRead(S2));
digitalWrite(R3, digitalRead(S3));
digitalWrite(R4, digitalRead(S4));
digitalWrite(R5, digitalRead(S5));
digitalWrite(R6, digitalRead(S6));
}
void checkBlynk() { // called every 3 seconds by SimpleTimer
bool isconnected = Blynk.connected();
if (isconnected == false) {
MODE = 1;
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
if (isconnected == true) {
MODE = 0;
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
}
}
void setup()
{
{// Debug console
if (DEBUG_SW) Serial.begin(9600);
pinMode(S1, INPUT);
pinMode(R1, OUTPUT);
pinMode(S2, INPUT);
pinMode(R2, OUTPUT);
pinMode(S3, INPUT);
pinMode(R3, OUTPUT);
pinMode(S4, INPUT);
pinMode(R4, OUTPUT);
pinMode(S5, INPUT);
pinMode(R5, OUTPUT);
pinMode(S6, INPUT);
pinMode(R6, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(Buzzer, OUTPUT);
digitalWrite(LED1, HIGH);
delay(200);
digitalWrite(LED2, HIGH);
delay(200);
digitalWrite(LED3, HIGH);
delay(200);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(500);
digitalWrite(LED1, HIGH);
delay(200);
digitalWrite(LED2, HIGH);
delay(200);
digitalWrite(LED3, HIGH);
delay(200);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
//pinMode(MODE, INPUT);
WiFi.begin(ssid, pass);
timer.setInterval(3000L, checkBlynk); // check if connected to Blynk server every 3 seconds
Blynk.config(auth);//, ssid, pass);
}
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);
dht.begin();
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
{
pinMode(sensor_pin,INPUT_PULLUP);
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
}
}
void loop()
{
if (WiFi.status() != WL_CONNECTED)
{
if (DEBUG_SW) Serial.println("Not Connected");
}
else
{
if (DEBUG_SW) Serial.println(" Connected");
Blynk.run();
}
timer.run(); // Initiates SimpleTimer
if (MODE == 0)
with_internet();
else
without_internet();
{
Blynk.run();
timer.run();
}
{
if(digitalRead(sensor_pin) == LOW){
{
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(50);
}
}else{
digitalWrite(buzzer,LOW);
}
}
}