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
Write
Data
| webwrite
(MATLAB) | Send
Alert
| Get Alert
History
Temas relacionados
- API de alertas
- Aplicación TimeControl
- MATLAB Aplicación de análisis
- Reaccionar a la actividad del canal con notificación de IFTTT