#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
BlynkTimer timer;
#define buttonPin D2
int selectMode = 1;
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
timer.setInterval(100, mode);
Blynk.begin("key", "SSID", "pass");
}
BLYNK_CONNECTED() {
Blynk.syncVirtual(V1);
}
BLYNK_WRITE(V1) {
selectMode = param.asInt();
}
void mode() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
buttonPushCounter++;
}
delay(50);
}
lastButtonState = buttonState;
if(buttonPushCounter % 4 == 1){
selectMode=1;
}else if(buttonPushCounter % 4 == 2){
selectMode=2;
}else if(buttonPushCounter % 4 == 3){
selectMode=3;
}else{
selectMode=4;
}
switch (selectMode) {
case 1:
//...
break;
case 2:
//...
break;
case 3:
//...
break;
default:
//...
break;
}
}
void loop() {
Blynk.run();
timer.run();
}
Hello I have this code but its wrong.
I tried to write code that you are able to switch to the cases from the menu widget from Blynk app and also be able to cycle through the cases using a physical button in D2 pin