Main Content

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

Analizza i dati del canale per inviare notifiche e-mail

Questo esempio mostra come utilizzare il servizio di avvisi ThingSpeak per inviare notifiche come messaggi di posta elettronica. Utilizza l'app TimeControl per attivare un'app MATLAB Analysis 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, puoi generare notifiche filtrate, mirate e specifiche dell'attività del canale dai dati ThingSpeak .

Il canale 276330 registra una misurazione dell'umidità del suolo da una pianta d'ufficio. In questo esempio, utilizzi gli avvisi ThingSpeak per ricevere una notifica via email con l'ultimo valore del sensore del suolo quando la pianta ha bisogno di acqua. Vedi Moisture Sensor Using HTTP POST Requests to Channel per sapere come impostare un monitor dell'umidità del suolo che registri i tuoi dati su ThingSpeak.

Crea un'analisi MATLAB

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

1) Selezionare App > MATLAB Analysis e selezionare Nuovo.

2) Selezionare Leggi canale per attivare l'e-mail nella sezione Esempi. Il codice seguente è precompilato nella finestra di MATLAB Analysis.

3) Nomina la tua analisi e modifica il codice. Modifica alertApiKey in modo che corrisponda alla chiave API degli avvisi. Per leggere dal tuo canale pubblico, modifica il valore channelID . Inizia impostando l'ID del canale e la chiave degli avvisi. 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) Leggi i dati recenti utilizzando thingSpeakRead.

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

6) Assicurarsi che ci siano dati letti dal canale e impostare il messaggio di conseguenza. Calcolare un valore di soglia del 10% dall'intervallo dei dati. Utilizza il valore più recente per impostare il corpo del messaggio di 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 alert. Avvolgi la richiesta di invio in un try/catch per evitare che MATLAB Analysis 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

Crea un controllo temporale per eseguire la tua 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 tuo codice di MATLAB Analysis. Selezionare App > TimeControl, quindi fare clic su Nuovo TimeControl.

  • Nome — Assegna un nome al TimeControl.

  • Frequenza — Selezionare Ricorrente.

  • Ricorrenza — Selezionare Giorno.

  • Azione — Seleziona MATLAB Analysis . Nell'elenco codice da eseguire seleziona il nome MATLAB Analysis che hai scritto in precedenza.

Ogni volta che viene eseguita l'app TimeControl, ricevi 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: la configurazione di questo esempio utilizza un avviso e-mail ogni giorno. Il numero totale di avvisi è limitato; se superi il limite, non puoi più attivare nuovi avvisi via email.

Vedi anche

| (MATLAB) | |

Argomenti complementari

Siti web esterni