Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la version originale en anglais.

Analyser les données du canal pour envoyer une notification par e-mail

Cet exemple montre comment utiliser le service d’alertes ThingSpeak ™ pour envoyer des notifications sous forme d’e-mails. Utilisez l'application TimeControl pour déclencher une application MATLAB® Analysis à intervalles réguliers. L'application MATLAB Analysis analyse les données pour décider du message électronique approprié à générer en fonction des données d'humidité du sol. Grâce à la puissance d'analyse de MATLAB, vous pouvez générer des notifications filtrées, ciblées et spécifiques, de l'activité du canal à partir des données ThingSpeak.

Le canal 276330 enregistre une mesure d'humidité du sol provenant d’une plante de bureau. Dans cet exemple, vous utilisez les alertes ThingSpeak pour recevoir une notification par e-mail avec la dernière valeur du capteur de sol lorsque la plante a besoin d'eau. Pour savoir comment configurer un moniteur d'humidité du sol qui enregistre vos données sur ThingSpeak, consultez Moisture Sensor Using HTTP POST Requests to Channel (Capteur d'humidité utilisant des requêtes HTTP POST vers le canal).

Créer une analyse MATLAB

Analysez les données ThingSpeak avec MATLAB. Vous pouvez utiliser le résultat de votre analyse pour déclencher des requêtes Web, telles qu'une demande d'e-mail à partir des alertes ThingSpeak. Cette analyse lit quatre semaines de données pour calculer un seuil basé sur des données historiques. Une mesure inférieure à 10% de la plage de données modifie le message de sortie.

1) Sélectionnez Apps > MATLAB Analysis et sélectionnez New.

2) Sélectionnez Read Channel to Trigger Email dans la section Examples. Le code ci-dessous est pré-rempli dans votre fenêtre d'analyse MATLAB.

3) Name (Nommez) votre analyse et modifiez le code. Modifiez alertApiKey pour qu'il corresponde à votre clé API d'alertes. Pour lire depuis votre propre canal public, modifiez la valeur channelID . Commencez par définir l'ID du canal et la clé des alertes. Toutes les clés API d'alertes commencent par TAK.

channelID = 276330;
alertApiKey = 'TAKXXXXXXXXXXXXX';

4) Définissez l'URL et l'en-tête. Le service d'alertes nécessite un en-tête ThingSpeak-Alerts-API-Key. Utilisez weboptions pour définir l'en-tête.

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

5) Lisez les données récentes à l'aide de thingSpeakRead.

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

6) Assurez-vous que des données sont lues à partir du canal et définissez le message en conséquence. Calculez une valeur seuil de 10 % à partir de l'étendue des données. Utilisez la valeur la plus récente pour définir le corps du message d'alerte.

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) Utilisateur webwrite pour envoyer la demande d'alerte. Enveloppez la demande d'envoi dans un try/catch pour empêcher la désactivation de l'analyse MATLAB si la demande échoue pour une raison quelconque.

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

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

Créez un contrôle de temps pour exécuter votre analyse

L'application TimeControl peut évaluer les données de votre canal ThingSpeak et déclencher d'autres événements. Créez une instance de l'application TimeControl qui appelle votre code MATLAB Analysis tous les jours. Sélectionnez Apps > TimeControl, puis cliquez sur New TimeControl.

  • Name — Nommez le TimeControl.

  • Frequency — Sélectionnez Recurring.

  • Recurrence — Sélectionnez Day.

  • Action — Sélectionnez MATLAB Analysis. Dans la liste code to execute , sélectionnez le nom de l'analyse MATLAB que vous avez écrite précédemment.

Chaque fois que l'application TimeControl s'exécute, vous recevez un e-mail vous indiquant si la plante a besoin d'eau. Le seuil de 10 % n'est qu'une estimation ; ThingSpeak n'assume aucune responsabilité pour votre installation.

Note: Cette configuration dans cet exemple consomme une alerte par e-mail chaque jour. Votre nombre total d'alertes est limité ; si vous dépassez la limite, vous ne pouvez plus déclencher de nouvelles alertes par e-mail.

Voir aussi

| (MATLAB) | |

Rubriques

Sites web externes