BLYNK ESP9266 кнопки

gzp13
Offline
Зарегистрирован: 06.04.2015

Здравствуйте, совсем запутался.Есть ESP, к ней на пин 15 подключена кнопка. В приложении настроена кнопка V2. На выход GPIO2 подключено реле. Не получается сделать так, чтобы реле можно было управлять и с виртуальной кнопки V2 и с физической с пина 15, т.е нажал на V2-реле включилось, нажал на кнопку(пин 15)-реле выключилось, т.е 4 варианта включения выключения. Подсобите пожалуйста.


#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define OUT_2 2  // Выход реле СВЕТ GPIO2
#define VBUTTO_2 V2  // Виртуальная кнопка в приложении
boolean State ;
BlynkTimer timer;
int state_esp;
char auth[] = "111111111111111111111";  //вводим TOKEN из приложения
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "111";
char pass[] = "11111111";
// Это первое подключение
bool is_First_Connection = true;
// Если устройство перезагрузилось то интерфейс в приложении нужно привести
// в соответствии с базовыми настройками
BLYNK_CONNECTED() {
  if (is_First_Connection) {
    Blynk.virtualWrite(VBUTTO_2, LOW);
    is_First_Connection = false;
  }
}
BLYNK_WRITE(VBUTTO_2) {  ////КНОПКА ВКЛЮЧЕНИЯ СВЕТА V2
  int State = param.asInt();  // От виртуальной нопки получаем Число
  Blynk.virtualWrite(VBUTTO_2, State);
  digitalWrite(OUT_2,State);
}
void setup() {
  pinMode(OUT_2, OUTPUT);
  pinMode(15, INPUT);
  digitalWrite(OUT_2, HIGH);
  Blynk.begin(auth, ssid, pass);
  delay(1200);
}
void loop() {
  state_esp = digitalRead(15);
  if (digitalRead(15) == state_esp  ) //15 пин-это пин кнопки
  {
    digitalWrite(OUT_2, state_esp);
    Blynk.virtualWrite(VBUTTO_2, state_esp);
  }

  Blynk.run();
  timer.run();
}

 

Fenicksnet
Offline
Зарегистрирован: 25.03.2019


state_esp = digitalRead(15);
  if (digitalRead(15) == state_esp  )

а так тоже можно?