I’m using multiple Virtual Write (10 to be exact), which are controlled by Sliders from blynk app, then to be sent each value by the serial port. The code that will be used is working but not efficiently, since when sliding constantly the Slider seems to send too many values and causes the esp8266 nodemcu to disconnect from the BLYNK server. How do I prevent this from happening?
// declare three strings:
String string1, string2, string3, string4, string5, string6, string7, string8, string9, string10, string11, string12, string13, string14, string15, string16, string17, string18, string19, string20; ;
int old_value1, old_value2, old_value3, old_value4, old_value5, old_value6, old_value7, old_value8, old_value9, old_value10;
int virtualpin1, virtualpin2, virtualpin3, virtualpin4, virtualpin5, virtualpin6, virtualpin7, virtualpin8, virtualpin9, virtualpin10;
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "SimpleTimer.h" //Timer Rotation Library
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = " ";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = " ";
char pass[] = " ";
BLYNK_WRITE(V1)
{
virtualpin1 = param.asInt(); // assigning incoming value from pin V1 to a variable
// process received value
// adding a variable integer to a string:Virtualpin1
if(virtualpin1 != old_value1){
old_value1 = virtualpin1; // save the changed value
string1 = "A";
string2 = string1 + old_value1;
Serial.print(string2);
}
}
BLYNK_WRITE(V2)
{
virtualpin2 = param.asInt(); // assigning incoming value from pin V2 to a variable
// process received value
// adding a variable integer to a string:Virtualpin2
if(virtualpin2 != old_value2){
old_value2 = virtualpin2; // save the changed value
string3 = "B";
string4 = string3 + old_value2;
Serial.print(string4);
}
}
BLYNK_WRITE(V3)
{
virtualpin3 = param.asInt(); // assigning incoming value from pin V3 to a variable
// process received value
// adding a variable integer to a string:Virtualpin2
if(virtualpin3 != old_value3){
old_value3 = virtualpin3; // save the changed value
string5 = "C";
string6 = string5 + old_value3;
Serial.print(string6);
}
}
BLYNK_WRITE(V4)
{
virtualpin4 = param.asInt(); // assigning incoming value from pin V4 to a variable
// process received value
// adding a variable integer to a string:Virtualpin2
if(virtualpin4 != old_value4){
old_value4 = virtualpin4; // save the changed value
string7 = "D";
string8 = string7 + old_value4;
Serial.print(string8);
}
}
BLYNK_WRITE(V5)
{
virtualpin5 = param.asInt(); // assigning incoming value from pin V5 to a variable
// process received value
// adding a variable integer to a string:Virtualpin2
if(virtualpin5 != old_value5){
old_value5 = virtualpin5; // save the changed value
string9 = "E";
string10 = string9 + old_value5;
Serial.print(string10);
}
}
BLYNK_WRITE(V6)
{
virtualpin6 = param.asInt(); // assigning incoming value from pin V6 to a variable
// process received value
// adding a variable integer to a string:Virtualpin2
if(virtualpin6 != old_value6){
old_value6 = virtualpin6; // save the changed value
string11 = "F";
string12 = string11 + old_value6;
Serial.print(string12);
}
}
BLYNK_WRITE(V7)
{
virtualpin7 = param.asInt(); // assigning incoming value from pin V7 to a variable
// process received value
// adding a variable integer to a string:Virtualpin7
if(virtualpin7 != old_value7){
old_value7 = virtualpin7; // save the changed value
string13 = "G";
string14 = string13 + old_value7;
Serial.print(string14);
}
}
BLYNK_WRITE(V8)
{
virtualpin8 = param.asInt(); // assigning incoming value from pin V8 to a variable
// process received value
// adding a variable integer to a string:Virtualpin8
if(virtualpin8 != old_value8){
old_value8 = virtualpin8; // save the changed value
string15 = "H";
string16 = string15 + old_value8;
Serial.print(string16);
}
}
BLYNK_WRITE(V9)
{
virtualpin9 = param.asInt(); // assigning incoming value from pin V8 to a variable
// process received value
// adding a variable integer to a string:Virtualpin8
if(virtualpin9 != old_value9){
old_value9 = virtualpin9; // save the changed value
string17 = "I";
string18 = string17 + old_value9;
Serial.print(string18);
}
}
BLYNK_WRITE(V10)
{
virtualpin10 = param.asInt(); // assigning incoming value from pin V8 to a variable
// process received value
// adding a variable integer to a string:Virtualpin8
if(virtualpin10 != old_value10){
old_value10 = virtualpin10; // save the changed value
string19 = "J";
string20 = string19 + old_value10;
Serial.print(string20);
}
}
void setup()
{
// 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);
}
void loop()
{
Blynk.run();
}