Countdown timer

Hello i want to put countdown timer when i turn on V11 to blink 2 leds red and blue after 1 hour in case the temperature is not reaching to the desire temperature setup from slider V3 and when is reaching to the desire temperature the timer will turn off and reset and apear green light .


#include <DHT.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#define BLYNK_PRINT Serial
#define DHTPIN 12
#define DHTTYPE DHT22
char auth[] = "";
char ssid[] = "";
char pass[] = "";
const int red = 14;
const int green = 13;
const int blue = 15;
int motorInitiated = 0;
int motorInitiated1 = 0;
int motorInitiated2 = 0;
int setTemp;
int t1;
SimpleTimer timer;
DHT dht(DHTPIN, DHTTYPE);
WidgetBridge bridge1(V1);



BLYNK_CONNECTED() {
  Blynk.syncAll();
  // Place the AuthToken of the second hardware here
  bridge1.setAuthToken("");
}







BLYNK_WRITE(V11) {

  int pinData = param.asInt();

  if (pinData == 1) {
    motorInitiated = 0;
    digitalWrite(blue, LOW );
  } else {
    motorInitiated++;
    motorInitiated1++;
    motorInitiated2++;
    digitalWrite(red, LOW);
    digitalWrite(green, LOW );
  }
}



BLYNK_WRITE(V3)
{
  setTemp = param.asInt();
}

void sendSensor() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  Blynk.virtualWrite(V41, h);
  Blynk.virtualWrite(V31, t);

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }


  if (t >= setTemp)
  {
    digitalWrite(red, LOW);
    digitalWrite(blue, LOW );
    timer.reset(t1);
    timer.disable(t1);
    motorInitiated1++;
    motorInitiated2++;
    if (motorInitiated == 0) {
      digitalWrite(green, HIGH );


    }
  }
  else  {
    digitalWrite(green, LOW );
    if (motorInitiated == 0) {
      digitalWrite(red, HIGH );
      timer.reset(t1);
      timer.enable(t1);
      motorInitiated1 = 0;


    }
    else {
      motorInitiated1++;
      motorInitiated2++;
      digitalWrite(red, LOW);
      digitalWrite(blue, HIGH );
    }

  }

}


void sendSensor1() {

  if (motorInitiated1 == 0)
  {

    motorInitiated2 = 0;

  }
}

void sendSensor2() {

  if (motorInitiated2 == 0)
  {

    digitalWrite(red, LOW);
    delay(500);
    digitalWrite(blue, HIGH );
    delay(500);
    digitalWrite(red, HIGH );
    digitalWrite(blue, LOW );
    delay(500);
    digitalWrite(red, LOW);
  }
}



void setup() {
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);
  digitalWrite(red, LOW);
  digitalWrite(green, LOW);
  digitalWrite(blue, LOW);
  dht.begin();
  timer.setInterval(1000L, sendSensor);
  timer.setInterval(400L, sendSensor2);
  t1 = timer.setInterval(3600000L, sendSensor1);
  timer.disable(t1);



}

void loop() {
  Blynk.run();
  timer.run();
}

And you want someone to code it for you??

i want to check where is my mistake; why is not working

anyway i find solution i think

[Unformatted code removed by moderator]

Please let me know if i did something wrong in this code; if you find something please correctly , to make sure the code is working properly.
Thankyou

Looks like you use punctuation marks instead of back ticks to format your code… backticks look like this > ```

Please edit your post and I’m sure someone will have a look.

```
your code
```

Edit: also, tell us exactly which part is and isn’t working.

Hello i fix the timer its working fine ; but some one can check if any issue appear in code below to make sure the board and blynk run perfectly without stopping . This is a smart light wall switch with CH control ; and opening the light by photo barrier.


#include <DHT.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#define BLYNK_PRINT Serial
#define DHTPIN 12
#define DHTTYPE DHT22
char auth[] = "";
char ssid[] = "";
char pass[] = "";
const int red = 0;
const int green = 1;
const int blue = 16;
const int pbuttonPin = 5;   // change as per your button attached.
const int relayPin =  14;;
int motorInitiated = 0;
int motorInitiated1 = 0;
int motorInitiated2 = 0;
int motorInitiated3 = 0;
int motorInitiated4 = 0;
int motorInitiated5 = 0;
int setTemp;
int t1;
int val = 0; // push value from pin 2
int lightON = 0;//light status
int pushed = 0;//push status
SimpleTimer timer;
DHT dht(DHTPIN, DHTTYPE);
WidgetBridge bridge1(V1);



BLYNK_CONNECTED() {
  Blynk.syncAll();
  // Place the AuthToken of the second hardware here
  bridge1.setAuthToken("ee83e9c210d84210843dcceb2a7f0046");
}


BLYNK_WRITE(V10) {

  int pinData = param.asInt();

  if (pinData == 1) {
    motorInitiated3 = 0;
  } else {
    motorInitiated3++;
    motorInitiated4 = 0;
  }
}


BLYNK_WRITE(V12) {

  int pinData = param.asInt();

  if (pinData == 1) {
    motorInitiated5 = 0;
  } else {
    motorInitiated5++;
  }
}




BLYNK_WRITE(V11) {

  int pinData = param.asInt();

  if (pinData == 1) {
    digitalWrite(blue, HIGH );
    motorInitiated = 0;
    timer.restartTimer(t1);
  } else {
    timer.restartTimer(t1);
    timer.disable(t1);
    motorInitiated++;
    motorInitiated1++;
    motorInitiated2++;
    digitalWrite(red, HIGH);
    digitalWrite(green, HIGH );
  }
}



BLYNK_WRITE(V3)
{
  setTemp = param.asInt();
}

void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  Blynk.virtualWrite(V41, h);
  Blynk.virtualWrite(V31, t);

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }


  if (t >= setTemp)
  {
    digitalWrite(red, HIGH);
    digitalWrite(blue, HIGH );
    timer.restartTimer(t1);
    timer.disable(t1);
    motorInitiated1++;
    motorInitiated2++;
    if (motorInitiated == 0) {
      digitalWrite(green, LOW );


    }
  }
  else  {
    digitalWrite(green, HIGH );
    if (motorInitiated == 0) {
      digitalWrite(red, LOW );
      timer.enable(t1);
      motorInitiated1 = 0;


    }
    else {
      motorInitiated1++;
      motorInitiated2++;
      digitalWrite(red, HIGH);
      digitalWrite(blue, LOW );
    }

  }

}


void sendSensor1() {

  if (motorInitiated1 == 0)
  {

    motorInitiated2 = 0;

  }
}

void sendSensor2() {

  if (motorInitiated2 == 0)
  {

    digitalWrite(red, HIGH);
    delay(500);
    digitalWrite(blue, LOW );
    delay(500);
    digitalWrite(blue, HIGH );
    digitalWrite(red, LOW );
    delay(500);
    digitalWrite(red, HIGH);
  }

}


void sendSensor3()
{
  val = digitalRead(pbuttonPin);// read the push button value

  if (val == 1 && lightON == 0) {

    pushed = 1 - pushed;
    delay(200);
  }

  lightON = val;

  if (pushed == 1 && motorInitiated3 == 0) {
    motorInitiated4++;
  }
  else {
    motorInitiated4 = 0;

  }
  if (motorInitiated4 == 0 && motorInitiated5 == 1)
  {

    digitalWrite(relayPin, LOW);
  } else {
    digitalWrite(relayPin, HIGH);
  }
}






void setup() {
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(pbuttonPin, INPUT_PULLUP);
  pinMode(relayPin, OUTPUT);
  digitalWrite(red, HIGH);
  digitalWrite(green, HIGH);
  digitalWrite(blue, HIGH);
  digitalWrite(relayPin, LOW);
  dht.begin();
  timer.setInterval(800L, sendSensor);
  timer.setInterval(400L, sendSensor2);
  timer.setInterval(300L, sendSensor3);
  t1 = timer.setInterval(3600000L, sendSensor1);
  timer.disable(t1);



}

void loop() {
  Blynk.run();
  timer.run();
}



I think that’s your job!

Pete.

1 Like