Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

Données agrégées dans le canal ThingSpeak

Cet exemple montre comment agréger des données à une résolution temporelle inférieure dans un canal ThingSpeak ™ pour supprimer les irrégularités. L'irrégularité des données peut être due à plusieurs facteurs tels que la détection événementielle, le dysfonctionnement des capteurs ou les latences du réseau.

Lire les données

Le canal ThingSpeak 22641 contient des données sur les marées et la météo mesurées une fois par minute à Ockway Bay, Cape Cod. Le champ 2 du canal contient les données de température de l'air. Lisez les données de température de l'air des 3 dernières heures à partir du canal 22641 à l'aide de la fonction thingSpeakRead.

datetimeStop = dateshift(datetime('now'),'start','hour');
datetimeStart = dateshift(datetime('now'),'start','hour') - hours(3);

data = thingSpeakRead(22641,'DateRange',[datetimeStart,datetimeStop],...
    'Fields',2,'outputFormat','timetable');

Agréger les données

Les données sont mesurées une fois par minute. Cependant, en raison de la latence du réseau associée au système de mesure, les horodatages réels peuvent être espacés de plus ou moins d'une minute. De plus, pour l'application d'intérêt, la fréquence des données mesurées toutes les minutes est élevée. Les données à une résolution horaire sont suffisantes. Vous pouvez utiliser la fonction retime pour agréger les données de chaque heure en une seule valeur. Vous pouvez utiliser la valeur maximale pour chaque heure pour agréger les données. Prévisualisez les quatre premières valeurs des données avec head.

dataHourly = retime(data,'hourly','max');
head(dataHourly,4)
ans =

  3×1 timetable

         Timestamps         AirTemperatureC
    ____________________    _______________

    03-Jan-2019 14:00:00          7.5      
    03-Jan-2019 15:00:00          6.9      
    03-Jan-2019 16:00:00          6.4      

Envoyer des données à ThingSpeak

Modifiez le channelID et le writeAPIKey pour envoyer des données à votre canal

channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID,data,'writeKey',writeAPIKey);

Voir aussi

(MATLAB) | (MATLAB) | (MATLAB)