hi everyone…i found a post in a website claiming about how to send more than 10 values to blynk cloud???.. i have arduino mega, and i want to upload 15 readings, so as per their idea, i will use 2 second timer, and everything will be fine…
website post:
Everything has its limitation including the Blynk Server. We cannot upload so many sensor values in a very short time. For example, you cannot upload 100 values every second. Blynk Server is a web interface service provider and they are providing their services worldwide. It will get congested if everybody is doing so. Besides, during uploading, the Blynk server requires time for verification thus uploading speed faster than the verification time may cause error leading Blynk server rejects the values. Typically every 10 values of upload requires 1 second of pending time. For example, if you would like to upload 100 values to the Blynk Server, you need to provide a pending time of about 10 seconds before it can be uploaded again.
#define BLYNK_DEVICE_NAME "Device"
#define BLYNK_AUTH_TOKEN "YourAuthToken"
// Comment this out to disable prints and save space
#define BLYNK_PRINT SerialUSB
#include <SPI.h>
#include <WiFi101.h>
#include <BlynkSimpleWiFiShield101.h>
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void myTimerEvent()
{
// You can send any value at any time.
// Please don't send more that 10 values per second, (** here i want to send more than 10 **)
}
void setup()
{
// Debug console
SerialUSB.begin(115200);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
}
void loop()
{
Blynk.run();
timer.run(); // Initiates BlynkTimer
}```
I don’t see how posting a standard example sketch containing information about the limit of 10 values per second helps us to understand more about what you are trying to achieve and why.
That’s true, but if you have a genuine requirement to send a large amount of data in a short period of time then that’s what you’ll need to do.
Your initial post seemed to imply that sending this data then waiting for a period of time before sending more would be an acceptable solution. If this is the case then your requirement is not to send more than ten values per second, every second, but to send a burst of data then - some time later - send another burst of data.
Without some sort of insight into the type of data you are sending, how you will be using this data in the app, and whether some of the data could be updated at less frequent intervals it’s difficult to know where to start when advising you on possible solutions. Without you sharing that sort of information you aren’t likely to much in the way of helpful advice.
I’d recommend that you upload half of your readings, wait 1 second and upload the rest.
There are several ways to do this.
You could use a timeout timer to create the delay between uploads, or you could have two staggered setInterval timers running one second apart.
hii sir. firstly thank you for your information that you gave . i have one doubt can i use dealy function in between 2 successive blynk uplod. as i am not using it in void loop i am using timer function and in that after uploding half values to blynk can i use delay function to introduce 1 sec delay and then upload half value . i set timer-interval as 2 sec