Data - export, format, etc. - Table or Report Widget

…I have been reading for hours and ‘know’ less than when I started…

Nano 33 IoT using WiFi
iOS all up to date
Blynk Cloud Server
Sensors with multiple channels of data that user will collect via periodically sampling (e.g. 20 data values every 1min).
Data is displayed in multiple Value Display Widgets

I cannot, for the life of me, figure out how to structure the Table or Reports Widgets to develop a single row of data with all sensor values followed by the next row of all sensor values - the user is toggling a button to collect data after changing a solution.

I am likely missing some documentation or examples so, please, point me towards a clear example or documentation of a way to create multiple rows of data in a csv file based on user events - I am NOT using the Super Plot.

Thanks,
Sean

The Table widget only has two useable columns, and the amount of data that can be displayed in each column is limited, so I wouldn’t have thought it was the way to go.

The data that comes from the Report widget is structured so that it gives all of the values for the first datastream, then all of the values the second datastream etc.
There is no report which shows one column per datastream. If you want this then you’d need to process tie .csv data in Excel or similar and create a pivot table from the Blynk report…

As you’ve probably realised, the Blynk server buffers the data received over a 1 minute period, averages it, then writes tis averaged value to the database. This is the data that is used for producing reports.

Blynk isn’t a data analysis tool, and the primary reason for storing data in this way is to allow trends to be plotted using the SuperChart widget.

I guess one option is for you to write your data out to an external database. This could be a google sheets spreadsheet or something like Adafruit.IO

Alternatively, you could run a local server with Raw Data Storage enabled and write your own queries to extract the data from the SQL database and present it in whatever format you require.

Pete.

Thanks Pete:

I have been thinking about different approaches and limitation to what I need for demo purposes; so, I am now approaching this via an email output - good enough for now to use:

#define BLYNK_MAX_SENDBYTES 1200

…wish it were larger :slight_smile:

That said, is there an example available where the Blynk.email body has lines for each ‘entry’ derived from a 2-D array

I am implementing an array like:

//max for demo is eight sample at six channels
int storeData[8][6] = {{0, 0, 0, 0, 0, 0},
                       {0, 0, 0, 0, 0, 0},
                       {0, 0, 0, 0, 0, 0},
                       {0, 0, 0, 0, 0, 0},
                       {0, 0, 0, 0, 0, 0},
                       {0, 0, 0, 0, 0, 0},
                       {0, 0, 0, 0, 0, 0},
                       {0, 0, 0, 0, 0, 0}};

Thanks,
Sean

I guess that you’d need to use the sprintf command to construct your data string that would be included in the email body.
However, this isn’t the approach I’d take. The Excel pivot table, maybe with a macro to run it, would be my approach.

Pete.

Thanks for your attention Pete. and apology for the lag in responses; I am trying to learn on-the-fly about the various options of retrieving data from the Arduino sketch via the Blynk App project UI.

For clarity regarding your comments about Excel and Google Sheets, are you indicating that there is a process to ‘push a Blynk Button’ and generate a file or just suggesting these as tools for post-processing data?

My challenge is in getting data from the analytical instrument I have built, and which is controlled by a Blynk App UI, to a user (me in this case) so the data can be post-processed.

So, far:

  1. As I understand, I cannot use Reports due to averaging nor Table due to column limits;
  2. I have successfully implemented Terminal and can see the data I want but cannot get it out to a usable form/location;
  3. I have not been successful at receiving Email via the widget but that is an obvious path to get a limited data set out to a usable form/location;
  4. I do not think the SuperChart is applicable because the data is a mixed bag of means, standard deviations, and meta info about sample conditions (e.g. sensor temp, sample name, etc), but maybe I am missing something…

I have been searching/reading as many topics as I can but maybe I am not searching the correct terms.

Restating: what I want to accomplish is for a user to activate a Button in a Blynk App UI and have the data that has been generated by the user to arrive at a location (e.g. email) where the data can be extracted and post-processed.

Any guidance or examples would be helpful.

Thanks,
Sean

If the averaged data from the Blynk database isn’t acceptable then I guess you’re looking at writing the data out to an external database.
The data export capabilities will depend on the database you choose, but it’s doubtful that you’ll be able to “press a button in Blynk” to initiate an export, unless you can do that via an API call.

I’ve already suggested Adafruit.io and google sheets, but presumably these don’t appeal to you?

You could create your own database, maybe on a Raspberry Pi. If you were going to take that approach then I’d suggest some sort of SQL database, and maybe using Node-Red and possibly MQTT as a method of getting the data from your device into the database.
However, it’s very difficult to say without more information.

Pete.

Thanks Pete - yes, have looked at what you suggested and brought up in last post, just trying to get off the learning curve here.

I appreciate the suggestions and attention.

Sean

Pete - I found a solution in the Terminal widget. It turns out that, on my iOS devices, I can select the data that is displayed on the Terminal widget ‘screen’ and email to someone using either copy/past or the share option- close enough for now…so, solved.

example of an email content:

2922,1387,1732,1715,1177,496,
1000,0,0,0,0,0,
1343,675,866,854,613,264,
2147483647,0,0,0,1414,1414,
1396,698,901,876,634,279,
1000,1414,1414,1414,1414,1414,
1342,654,869,863,618,256,
0,1414,0,0,0,1414,
1534,756,921,909,663,306,
1000,2147483647,0,1414,1000,1414,
3103,1558,1772,1873,1193,520,
0,0,0,0,1414,1414,
1414,681,908,876,632,268,
2147483647,0,0,1414,0,1000,
1401,663,905,878,631,257,
0,1414,0,1414,0,1414,
1468,729,938,907,658,289,
0,1414,1414,0,0,1414,
1538,790,990,955,695,311,
0,1000,0,0,0,1414,
3085,1432,1841,1814,1228,507,
1000,0,1000,0,0,1414,
1409,687,904,871,634,272,
0,1000,1414,1414,1414,1414,
1459,716,932,900,659,277,
1414,1000,0,0,0,1414,
1446,719,926,900,649,283,
0,0,0,1414,1414,1414,
1475,745,942,918,657,297,
0,0,0,0,0,0,