Analizza i tuoi dati
Questo esempio mostra come leggere i dati di temperatura e umidità dal canale 12397 ThingSpeak, che raccoglie dati meteorologici da un dispositivo Arduino®. Scrivi i dati di temperatura e umidità nel tuo canale di misurazione del punto di rugiada, insieme ai dati del punto di rugiada calcolati. Quindi usa ThingSpeak™ per visualizzare i risultati sul tuo canale.
Passaggi preliminari
Questo esempio richiede che siano già stati eseguiti questi passaggi:
Accedi al tuo MathWorks® Account o ThingSpeak oppure crea un nuovo MathWorksAccount.
Crea un canale come canale di misurazione del punto di rugiada.
Leggere i dati da un canale
Leggi l'umidità e la temperatura dai campi 3 e 4 del canale pubblico WeatherStation e scrivi tali dati rispettivamente nei campi 2 e 1 del tuo canale di misurazione del punto di rugiada. Il punto di rugiada viene calcolato e scritto nel Campo 3.
Utilizza un'app di analisi MATLAB® per leggere, calcolare e scrivere i tuoi dati.
Vai alla scheda Apps e clicca su MATLAB Analysis.
Clicca New. Selezionare il modello Custom e fare clic su Create.
Nel campo Name, immettere
Dew Point Calculation.Nel campo Codice MATLAB, immettere le seguenti righe di codice.
Salva l'ID del canale pubblico della stazione meteorologica e l'ID del canale di misurazione del punto di rugiada nelle variabili.
readChId = 12397; writeChId = ZZZZZ; % Replace with your channel numberSalva la tua chiave API di scrittura in una variabile.
writeKey = 'XXXXXXXXXXXXXXXX'; % Replace with your channel write key
Per trovare l'ID del canale e la chiave API di scrittura, fare riferimento a Informazioni sul canale nella scheda My Channels.

Leggi gli ultimi 20 punti di dati sulla temperatura con timestamp e dati sull'umidità dal canale pubblico Weather Station in variabili.
[temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20); humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);
Calcola il punto di rugiada
Aggiungere il seguente codice MATLAB per calcolare il punto di rugiada utilizzando le letture di temperatura e umidità:
Converti la temperatura da Fahrenheit a Celsius.
tempC = (5/9)*(temp-32);
Specificare le costanti per il vapore acqueo (
b) e la pressione barometrica (c).b = 17.62; c = 243.5;
Calcola il punto di rugiada in gradi Celsius.
gamma = log(humidity/100) + b*tempC./(c+tempC); dewPoint = c*gamma./(b-gamma);
Convertire nuovamente il risultato in gradi Fahrenheit.
dewPointF = (dewPoint*1.8) + 32;
Scrivi i dati sul tuo canale di misurazione del punto di rugiada. Questo codice pubblica tutti i dati disponibili in un'unica operazione e include i timestamp corretti.
thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],... 'TimeStamps',time,'Writekey',writeKey);
Il blocco completo di codice ora appare come:

Fai clic su Save and Run per convalidare ed elaborare il tuo codice.
Eventuali errori nel codice vengono indicati nel campo Output.
Per verificare se il codice è stato eseguito correttamente, fai clic sul collegamento del canale Dew Point Measurement nel pannello Channel Info.

Il canale Misurazione del punto di rugiada ora mostra grafici con i dati del canale da ciascun campo.

Codice di pianificazione
Utilizza l'app TimeControl per pianificare il calcolo del punto di rugiada nel codice di analisi MATLAB. Programmalo per leggere i dati dalla stazione meteorologica ogni 30 minuti e calcolare il punto di rugiada.
Scorri fino in fondo alla pagina Calcolo del punto di rugiada dell'analisi MATLAB. Fare clic su TimeControl per aprire l'app con l'analisi MATLAB preselezionata nel campo Actions e il calcolo del punto di rugiada come Code to execute.
Assegna al tuo nuovo TimeControl il nome
Dew Point TCScegli Recurring nel campo Frequency.
Scegli Minute nel campo Recurrence.
Selezionare 30 nel campo Every — minutes.
Mantenere Start Time sul valore predefinito.
Verifica che Action sia
MATLAB Analysise che Code to execute siaDew Point Calculation.Clicca Save TimeControl

Nota
L'impostazione di un TimeControl per scrivere dati sul tuo canale utilizza i messaggi disponibili sul tuo account ThingSpeak. Questa azione può alla fine esaurire i messaggi disponibili, con conseguente rifiuto degli aggiornamenti del feed del canale. Assicuratevi che i dati scritti su un canale non si sovrappongano nel dominio del tempo, poiché ciò causerebbe un utilizzo non necessario di messaggi.
Visualizza la misurazione del punto di rugiada
Utilizza l'app MATLAB Visualizations per visualizzare i dati misurati sul punto di rugiada, sulla temperatura e sull'umidità dal tuo canale Dew Point Measurement. In questo esempio viene utilizzata la funzione plot (MATLAB) per mostrare tutti e tre i punti dati in un'unica visualizzazione.
Vai su Apps > MATLAB Visualizations e clicca su New per creare una visualizzazione.
In alternativa, puoi fare clic su MATLAB Visualization nella vista del canale di misurazione del punto di rugiada.

Selezionare il modello Custom e fare clic su Create.
Assegna alla visualizzazione il nome "Punto di rugiada".
Crea variabili per l'ID del canale di misurazione del punto di rugiada e per la chiave API di lettura. Sostituisci i valori nel codice con l'ID del tuo canale e la chiave API di lettura.
readChId = ZZZZZ; readKey = 'XXXXXXXXXXXXXXXX';Leggi i dati dai campi del tuo canale e ottieni gli ultimi 100 punti di dati per:
Temperatura: dal Campo 1
Umidità: dal Campo 2
Punto di rugiada: dal Campo 3
[dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],... 'NumPoints',100,'ReadKey',readKey);
Rappresentare graficamente i dati con etichette x e y, un titolo e una legenda.
plot(timeStamps,dewPointData); xlabel('TimeStamps'); ylabel('Measured Values'); title('Dew Point Measurement'); legend({'Temperature','Humidity','Dew Point'}); grid on;
Il tuo codice sarà simile a questo codice:

Clicca Save and Run. Se il codice MATLAB non presenta errori, l'output del grafico sarà simile al grafico mostrato qui:

Prossimi passi
Nell'esempio Agisci sui tuoi dati, puoi monitorare il punto di rugiada calcolato per attivare un'e-mail automatica quando viene superato un livello specificato.
Vedi anche
thingSpeakRead | thingSpeakWrite | plot (MATLAB) | xlabel (MATLAB) | ylabel (MATLAB) | title (MATLAB) | legend (MATLAB) | grid (MATLAB)
