Récupération des données

Les données qui ont été envoyées dans un channel public sont accessibles à condition de disposer du numéro unique permettant l'identification du channel :

  • l'ID du channel

La connaissance de l'ID suffit pour visualiser les données publiques via une url terminant par cet ID, par exemple, pour le channel 683833 :

https://thingspeak.com/channels/683833/

Remarque

Si les données sont dans un channel privé, il faut aussi connaître la clé de lecture unique :

  • une Read API Key, donnant l'accès en lecture aux données contenues dans le channel

Disposant de ces deux informations (ID et clé de lecture) pour les channel privés, ou uniquement de l'ID pour les channel publics, les données peuvent être récupérées par deux méthodes d'accès :

  • selon un web service, en utilisant la RESTful-API[1]

  • via des fonctions spécifiques dans MATLAB

Récupération des données selon la REST API

ThingSpeak[2] a mis en place un ensemble de services web selon la REST API[1].

Exemple

Par exemple, l'url suivante permet de récupérer sous forme d'un fichier JSON, les cinq dernières données du channel 683833 :

https://api.thingspeak.com/channels/683833/feed.json?results=5

Récupération des données dans Matlab

via la REST API

Un script MATLAB peut interroger directement un web service, grâce à la fonction webread.

Exemple

%% Authentification
% Numéro d'identification du channel
channel_ID=683833;
% clé privée de lecture
str_ReadApiKey ='XXXXXXXXXXXXXXXX';
%% Récupération selon la web-api
% quel champ de données ?
num_field=2;
% combien de données ?
num_datas=10;
% appel de la REST-api
datas_T = webread(sprintf('https://api.thingspeak.com/channels/%d/fields/%d.json?results=%d&api_key=%s',channel_ID,num_field,num_datas,str_ReadApiKey));
%
num_field=1;
datas_ID = webread(sprintf('https://api.thingspeak.com/channels/%d/fields/%d.json?results=%d&api_key=%s',channel_ID,num_field,num_datas,str_ReadApiKey));

via des fonctions spécifiques à ThingSpeak

La récupération des données peut être effectuée plus simplement et plus finement, en utilisation la fonction spécifique thingSpeakRead.

On peut ainsi spécifier des options de récupération telles que :

  • 'NumPoints', le nombre de données que l'on veut récupérer ;

  • 'NumMinutes', la période en nombre de minutes pour laquelle on veut récupérer les données ;

  • 'OutputFormat', le format de sortie dans lequel on souhaite récupérer ces données.

Exemple

[datas,channelInfo] = thingSpeakRead(channel_ID,'ReadKey',str_ReadApiKey,'Fields',[1,2],'NumDays',7,'Timeout',2,'OutputFormat','table');