Bulk-Update Using ESP8266
1 view (last 30 days)
Show older comments
Hi guys,
One way of posting multiple data at once is bulk-write JSON Data. There is an example re this here, which shows how to update the data on ESP8266 frequently. I can't work out step 8, which expalins how to update the JSON file.
Could you please provide me a reference/tutorial/manual so that I can upskill myself to work this out?
Also, I need to send the temperature readings (variables). Do I need to define the temp data as object or array on JSON?
Below provides the code for step 8.
// Updates the josnBuffer with data
void updatesJson(char* jsonBuffer){
/* JSON format for updates paramter in the API
* This examples uses the relative timestamp as it uses the "delta_t". You can also provide the absolute timestamp using the "created_at" parameter
* instead of "delta_t".
* "[{\"delta_t\":0,\"field1\":-70},{\"delta_t\":3,\"field1\":-66}]"
*/
// Format the jsonBuffer as noted above
strcat(jsonBuffer,"{\"delta_t\":");
unsigned long deltaT = (millis() - lastUpdateTime)/1000;
size_t lengthT = String(deltaT).length();
char temp[4];
String(deltaT).toCharArray(temp,lengthT+1);
strcat(jsonBuffer,temp);
strcat(jsonBuffer,",");
long rssi = WiFi.RSSI();
strcat(jsonBuffer, "\"field1\":");
lengthT = String(rssi).length();
String(rssi).toCharArray(temp,lengthT+1);
strcat(jsonBuffer,temp);
strcat(jsonBuffer,"},");
// If posting interval time has reached 2 minutes, update the ThingSpeak channel with your data
if (millis() - lastConnectionTime >= postingInterval) {
size_t len = strlen(jsonBuffer);
jsonBuffer[len-1] = ']';
httpRequest(jsonBuffer);
}
lastUpdateTime = millis(); // Update the last update time
}
0 Comments
Answers (1)
Christopher Stapels
on 18 Feb 2022
You can just define the temperature readings as variables, but making them in an array will make it easier to write them to the JSON object in a loop. In the above example the data are originally stored in the variables temp and rssi before they become part of the JSON string in step 8.
In step 10 of this example, you can see how to build the posting string from a data array. This string is for the single update not bulk, but it shows the basic idea.
As far as a reference manual, I would suggest you make sure you understand JSON format, but then just study the format specified in the documentation page that you linked for bulk update JSON. Its a bit of a custom thing that we created, so Im not sure there is a standard that covers it exactly.
0 Comments
Communities
More Answers in the ThingSpeak Community
See Also
Categories
Find more on Read Data from Channel in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!