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
thingSpeakRead
(MATLAB) | thingSpeakWrite
(MATLAB) | retime
(MATLAB)