Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version 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 de messages électroniques. 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 de l'humidité du sol à partir d'une usine 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. Voir Moisture Sensor Using HTTP POST Requests to Channel pour savoir comment configurer un moniteur d'humidité du sol qui enregistre vos données sur ThingSpeak.

 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 Applications > MATLAB Analysis et sélectionnez Nouveau .

2) Sélectionnez Lire le canal pour déclencher l'e-mail dans la section Exemples . Le code ci-dessous est pré-rempli dans votre fenêtre d'analyse MATLAB.

3) Nommez votre analyse et modifiez le code. Modifiez alertApiKey pour qu'il corresponde à la clé d'API de vos alertes. Pour lire à partir de 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'alerte 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 éviter que l'analyse MATLAB ne soit désactivée 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 temporel 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 Applications > TimeControl, puis cliquez sur New TimeControl.

  • Name — Nommez le TimeControl.

  • Fréquence— Sélectionnez Récurrent.

  • Récurrence— Sélectionnez Jour.

  • Action — Sélectionnez MATLAB Analysis . Dans la liste code à exécuter , 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) | |

Sujets associés

Sites web externes