Can Someone help me,please? I want to turn on /off the led with the switch and app blynk but i can't turn on/turn off by switch

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define RELAY_PIN  D6

#define BUTTON_PIN D1

char auth[] = "D_f5LKm2c5E9V-w4qZmtDCiDBxQkktv-";

unsigned long lastMillis ;
char ssid[] = "Đăng Anh";
char pass[] = "1234567890";
WidgetLED connectled(V0);
 BlynkTimer timer;
 void work(){
 if( connectled.getValue())
 {
  connectled.off();
  
  }
  else
  {
    connectled.on();
 
    }}
boolean socketState = 0;

  
void setup()
{
  Serial.begin(9600);
  pinMode(BUTTON_PIN, INPUT);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH);// tat realay truoc khi bat dau
  Blynk.begin(auth, ssid, pass);
  
 attachInterrupt(BUTTON_PIN,update_value,HIGH);
   timer.setInterval(1000L,work);



 
  
}
 void update_value(){
if (digitalRead(BUTTON_PIN) == HIGH) {
  Serial.println("on");
      if(socketState==0){
    socketState = 1;
    Blynk.virtualWrite(V1, socketState);
    digitalWrite(RELAY_PIN, HIGH);
    }
    else if(socketState==1){
    socketState = 0;
    Blynk.virtualWrite(V1, socketState);
    digitalWrite(RELAY_PIN, LOW);
     }
  }
  }
BLYNK_WRITE(V1)
{ 
  int pinValue = param.asInt();
  // Tùy vào lệnh nhận được ta thay đổi trạng thái bật tắt của ổ cắm
  if (pinValue == 1)
   { socketState = 1;
   
       Blynk.virtualWrite(V1, socketState);
       digitalWrite(RELAY_PIN, LOW);
}
  else
  { 
    socketState = 0;
        Blynk.virtualWrite(V1, socketState);
        digitalWrite(RELAY_PIN, HIGH);
}
}
void loop()
{
  Blynk.run();
  timer.run();
  if (millis() - lastMillis >= 1000) {
    lastMillis = millis();
   


}
}

  

Are you talking about a physical LED, or an LED widget?
Is your switch a physical switch, or a button widget?

Which pins are these LEDs and switches attached to?

Pete.

  • physical LED, pin D6
  • physical switch , pin D1
    — ESP8266 NodeMCU lua CP2102

I’m a bit confused by your interrupt service routine.
It won’t work correctly with recent ESP cores, because you’ll get ISR not in IRAM errors.
Also, as it’s HIGH trigger, the ISR will only be called when the pin is HIGH, so I don’t see why you’re checking if the pin is HIGH in the ISR.

Pete.