Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

Analizzare i dati del canale per inviare notifiche via e-mail

Questo esempio mostra come utilizzare il servizio di avvisi ThingSpeak ™ per inviare notifiche come messaggi di posta elettronica. Utilizzare l'app TimeControl per attivare un'app di analisi MATLAB ® a intervalli regolari. L'app MATLAB Analysis analizza i dati per decidere il messaggio e-mail appropriato da generare in base ai dati sull'umidità del suolo. Utilizzando la potenza analitica di MATLAB, è possibile generare notifiche filtrate, mirate e specifiche sull'attività del canale a partire dai dati ThingSpeak.

Il canale 276330 registra una misurazione dell'umidità del terreno da una pianta da ufficio. In questo esempio, si utilizzano gli avvisi ThingSpeak per ricevere una notifica via e-mail con l'ultimo valore del sensore del terreno quando la pianta ha bisogno di acqua. Per informazioni su come configurare un monitor dell'umidità del terreno che registra i dati su ThingSpeak, vedere Sensore di umidità che utilizza richieste HTTP POST al canale.

Creare un'analisi MATLAB

Analizza i dati ThingSpeak con MATLAB. Puoi utilizzare il risultato della tua analisi per attivare richieste web, ad esempio una richiesta di e-mail dagli avvisi ThingSpeak. Questa analisi legge quattro settimane di dati per calcolare una soglia basata sui dati storici. Una misurazione inferiore al 10% dell'intervallo di dati modifica il messaggio di output.

1) Seleziona App > Analisi MATLAB e seleziona Nuovo.

2) Seleziona Leggi canale per attivare e-mail nella sezione Esempi. Il codice seguente è precompilato nella finestra di analisi MATLAB.

3) Assegna un nome alla tua analisi e modifica il codice. Modifica alertApiKey in modo che corrisponda alla tua chiave API degli avvisi. Per leggere dal tuo canale pubblico, modifica il valore channelID . Iniziare impostando l'ID del canale e la chiave di avviso. Tutte le chiavi API degli avvisi iniziano con TAK.

channelID = 276330;
alertApiKey = 'TAKXXXXXXXXXXXXX';

4) Imposta l'URL e l'intestazione. Il servizio di avvisi richiede un'intestazione ThingSpeak-Alerts-API-Key. Utilizzare weboptions per impostare l'intestazione.

alertUrl = "https://api.thingspeak.com/alerts/send";
options = weboptions("HeaderFields", ["ThingSpeak-Alerts-API-Key", alertApiKey ]);
alertSubject = sprintf("Plant soil information");

5) Leggere i dati recenti utilizzando thingSpeakRead.

moistureData = thingSpeakRead(channelID,'NumDays',30,'Fields',1);

6) Assicurarsi che i dati siano stati letti dal canale e impostare il messaggio di conseguenza. Calcolare un valore soglia del 10% dall'intervallo dei dati. Utilizzare il valore più recente per impostare il messaggio del corpo dell'avviso.

if isempty(moistureData)
      alertBody = ' No data read from plant. ';
      
 else
    % Calculate a 10% threshold value based on recent data.
    span = max(moistureData) - min(moistureData);
    dryValue = 0.1 * span + min(moistureData);

    % Get the most recent point in the array of moisture data.
    lastValue = moistureData(end); 

    % Set the outgoing message
    if (lastValue<dryValue)
        alertBody = ' I need water! ';
    end

    if (lastValue>dryValue)
        alertBody = ' No water needed. ';
    end
end

7) Utente webwrite per inviare la richiesta di avviso. Racchiudi la richiesta di invio in un try/catch per evitare che l'analisi MATLAB venga disabilitata se la richiesta fallisce per qualsiasi motivo.

try
    webwrite(alertUrl , "body", alertBody, "subject", alertSubject, options);

    catch someException
    fprintf("Failed to send alert: %s\n", someException.message);
end

Creare un controllo temporale per eseguire l'analisi

L'app TimeControl può valutare i dati del tuo canale ThingSpeak e attivare altri eventi. Crea un'istanza dell'app TimeControl che richiama ogni giorno il codice di analisi MATLAB. Seleziona App > TimeControl, quindi fai clic su Nuovo TimeControl.

  • Nome — Assegna un nome al TimeControl.

  • Frequenza — Seleziona Ricorrente.

  • Ricorrenza — Seleziona Giorno.

  • Azione — Seleziona Analisi MATLAB. Nell'elenco codice da eseguire , seleziona il nome dell'analisi MATLAB scritta in precedenza.

Ogni volta che l'app TimeControl viene eseguita, riceverai un'e-mail che ti informa se la pianta ha bisogno di acqua. La soglia del 10% è solo una stima; ThingSpeak non si assume alcuna responsabilità per il tuo impianto.

Nota: In questo esempio, la configurazione consuma un avviso e-mail al giorno. Il numero totale di avvisi è limitato; se superi il limite, non potrai più attivare nuovi avvisi e-mail.

Vedi anche

| (MATLAB) | |

Argomenti

Siti web esterni