Main Content

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

Analice los datos del canal para enviar notificaciones por correo electrónico

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

El canal 276330 registra una medición de 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. Consulte Moisture Sensor Using HTTP POST Requests to Channel para aprender cómo configurar un monitor de humedad del suelo que registre sus datos en ThingSpeak.

Crear un análisis MATLAB

Analice datos de ThingSpeak con MATLAB. Puede utilizar 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 medición inferior al 10% del rango de datos cambia el mensaje de salida.

1) Seleccione Aplicaciones > Análisis MATLAB y seleccione Nuevo.

2) Seleccione Leer canal para activar el correo electrónico en la sección Ejemplos. El siguiente código se completa previamente en la ventana de análisis de MATLAB.

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

channelID = 276330;
alertApiKey = 'TAKXXXXXXXXXXXXX';

4) Establezca la URL y el encabezado. El servicio de alertas requiere un encabezado ThingSpeak-Alerts-API-Key. Utilice weboptions para configurar 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 umbral del 10% a partir del intervalo de 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 activar otros eventos. Cree una instancia de la aplicación TimeControl que llame a su código de análisis MATLAB todos los días. Seleccione Aplicaciones > TimeControl y luego haga clic en Nuevo TimeControl.

  • Nombre—Nombra el TimeControl.

  • Frecuencia—Selecciona Recurrente.

  • Recurrencia—Seleccione Día.

  • Acción — Seleccione Análisis MATLAB. En la lista código a ejecutar , seleccione el nombre del Análisis MATLAB que escribió anteriormente.

Cada vez que se ejecuta la aplicación TimeControl, recibe un correo electrónico informándole si la planta necesita agua. El umbral del 10% es sólo 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 excede el límite, ya no podrá activar nuevas alertas por correo electrónico.

Consulte también

| (MATLAB) | |

Temas relacionados

Sitios web externos