Main Content

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

Dati aggregati nel canale ThingSpeak

Questo esempio mostra come aggregare i dati con una risoluzione temporale inferiore in un canale ThingSpeak™ per rimuovere le irregolarità. L'irregolarità nei dati può essere causata da diversi fattori come il rilevamento guidato da eventi, il malfunzionamento dei sensori o le latenze di rete.

Leggi i dati

Il canale ThingSpeak 22641 contiene dati sulle maree e sul meteo misurati una volta al minuto a Ockway Bay, Cape Cod. Il campo 2 del canale contiene i dati sulla temperatura dell'aria. Leggere i dati della temperatura dell'aria delle ultime 3 ore dal canale 22641 utilizzando la funzione 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');

Aggrega i dati

I dati vengono misurati una volta al minuto. Tuttavia, a causa della latenza di rete associata al sistema di misurazione, i timestamp effettivi possono essere superiori o inferiori a un minuto di distanza. Inoltre, per l'applicazione di interesse, la frequenza dei dati misurati ogni minuto è elevata. Sono sufficienti i dati con risoluzione oraria. È possibile utilizzare la funzione retime per aggregare i dati di ogni ora in un singolo valore. È possibile utilizzare il valore massimo per ogni ora per aggregare i dati. Visualizza l'anteprima dei primi quattro valori dei dati con 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      

Invia dati a ThingSpeak

Modifica il channelID e la writeAPIKey per inviare i dati al tuo canale

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

Vedi anche

(MATLAB) | (MATLAB) | (MATLAB)