Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

Analizar datos de canales para enviar notificaciones por correo electrónico

Este ejemplo muestra cómo utilizar el servicio de alertas de ThingSpeak para enviar notificaciones como mensajes de correo electrónico. Utilice la aplicación TimeControl para activar una aplicación de análisis de MATLAB a intervalos regulares. La aplicación MATLAB Analysis analiza los datos para decidir el mensaje de correo electrónico apropiado para generar en función de los datos de humedad del suelo. Con el poder analítico de MATLAB, puede generar notificaciones filtradas, dirigidas y específicas de la actividad del canal a partir de los datos de ThingSpeak.

Canal 276330 registra una medición de la humedad del suelo de una planta de oficina. En este ejemplo, utiliza las alertas de ThingSpeak para recibir una notificación por correo electrónico con el último valor del sensor de suelo cuando la planta necesita agua. Ver Sensor de humedad mediante solicitudes HTTP POST al canal para aprender a configurar un monitor de humedad del suelo que registre sus datos en ThingSpeak.

Crear un análisisMATLAB

Analice los datos de ThingSpeak con MATLAB. Puede usar el resultado de su análisis para activar solicitudes web, como una solicitud de correo electrónico de alertas de ThingSpeak. Este análisis lee cuatro semanas de datos para calcular un umbral basado en datos históricos. Una medida inferior al 10% del rango de datos cambia el mensaje de salida.

1) Seleccionar aplicaciones > AnálisisMATLAB y seleccione Nuevo.

2) Seleccionar Leer canal para activar correo electrónico en el Ejemplos sección. El siguiente código está precargado en su ventana de análisis de MATLAB.

3) Nombre su análisis y modificar el código. Cambio alertApiKey para que coincida con su clave API de alertas. Para leer de su propio canal público, cambie el channelID valor. Comience configurando la ID del canal y la clave de alertas. Todas las claves API de alertas comienzan con TAK.

channelID = 276330;
alertApiKey = 'TAKXXXXXXXXXXXXX';

4) Establecer la URL y el encabezado. El servicio de alertas requiere una ThingSpeak-Alerts-API-Key encabezamiento. Usar weboptions para establecer el encabezado.

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

5) Lea los datos recientes usando thingSpeakRead.

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

6) Asegúrese de que haya datos leídos del canal y configure el mensaje en consecuencia. Calcule un valor de umbral del 10 % a partir del intervalo de los datos. Utilice el valor más reciente para configurar el mensaje del cuerpo de la alerta.

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) Usuario webwrite para enviar la solicitud de alerta. Envuelva la solicitud de envío en un try/catch para evitar que el análisis de MATLAB se deshabilite si la solicitud falla por algún motivo.

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

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

Cree un control de tiempo para ejecutar su análisis

La aplicación TimeControl puede evaluar los datos de su canal ThingSpeak y desencadenar otros eventos. Cree una instancia de la aplicación TimeControl que llame a su código de análisis de MATLAB todos los días. Seleccione aplicaciones > Control del tiempo y luego haga clic en Nuevo control de tiempo.

  • Nombre — Asigne un nombre al control de tiempo.

  • Frecuencia - Seleccione Periódico.

  • Reaparición - Seleccione Día.

  • Acción - Seleccione AnálisisMATLAB. En el código para ejecutar lista, seleccione el nombre del análisis de MATLAB que escribió anteriormente.

Cada vez que se ejecuta la aplicación TimeControl, recibe un correo electrónico que le informa si la planta necesita agua. El umbral del 10% es solo una estimación; ThingSpeak no asume ninguna responsabilidad por su planta.

Nota: Esta configuración en este ejemplo consume una alerta de correo electrónico cada día. Su número total de alertas es limitado; si supera el límite, ya no podrá activar nuevas alertas por correo electrónico.

Consulte también

| (MATLAB) | |

Temas relacionados

Sitios web externos