Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um das englische Original zu sehen.

Analysieren Sie Kanaldaten, um E-Mail-Benachrichtigungen zu senden

Dieses Beispiel zeigt, wie Sie den Benachrichtigungsdienst ThingSpeak ™ verwenden, um Benachrichtigungen als E-Mail-Nachrichten zu senden. Verwenden Sie die TimeControl-App, um in regelmäßigen Abständen eine MATLAB® Analysis-App auszulösen. Die MATLAB Analysis-App analysiert die Daten, um anhand der Bodenfeuchtigkeitsdaten zu entscheiden, welche E-Mail-Nachricht generiert werden soll. Mithilfe der Analyseleistung von MATLAB können Sie aus ThingSpeak-Daten gefilterte, zielgerichtete und spezifische Benachrichtigungen zur Kanalaktivität generieren.

Kanal 276330 protokolliert eine Bodenfeuchtigkeitsmessung einer Büropflanze. In diesem Beispiel verwenden Sie ThingSpeak-Alarme, um eine E-Mail-Benachrichtigung mit dem letzten Bodensensorwert zu erhalten, wenn die Pflanze Wasser benötigt. Informationen zum Einrichten eines Bodenfeuchtigkeitsmonitors, der Ihre Daten auf ThingSpeak aufzeichnet, finden Sie unter Feuchtigkeitssensor mit HTTP-POST-Anfragen an den Kanal.

Erstellen Sie eine MATLAB-Analyse

Analysieren Sie ThingSpeak-Daten mit MATLAB. Sie können das Ergebnis Ihrer Analyse verwenden, um Webanforderungen auszulösen, beispielsweise eine Anforderung für E-Mails von ThingSpeak-Benachrichtigungen. Diese Analyse liest Daten von vier Wochen, um einen Schwellenwert basierend auf historischen Daten zu berechnen. Ein Messwert, der weniger als 10 % des Datenbereichs beträgt, ändert die Ausgabenachricht.

1) Wählen Sie Apps > MATLAB Analysis und wählen Sie Neu.

2) Wählen Sie im Abschnitt Beispiele Kanal zum Auslösen von E-Mails lesen aus. Der folgende Code ist in Ihrem MATLAB Analysis-Fenster bereits ausgefüllt.

3) Benennen Sie Ihre Analyse und ändern Sie den Code. Ändern Sie alertApiKey, damit es mit Ihrem API-Schlüssel für Warnungen übereinstimmt. Um von Ihrem eigenen öffentlichen Kanal zu lesen, ändern Sie den Wert channelID . Beginnen Sie mit der Festlegung der Kanal-ID und des Alarmschlüssels. Alle API-Schlüssel für Warnungen beginnen mit TAK.

channelID = 276330;
alertApiKey = 'TAKXXXXXXXXXXXXX';

4) Legen Sie die URL und den Header fest. Der Warndienst erfordert einen ThingSpeak-Alerts-API-Key-Header. Verwenden Sie weboptions, um den Header festzulegen.

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

5) Lesen Sie die aktuellen Daten mit thingSpeakRead.

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

6) Stellen Sie sicher, dass Daten vom Kanal gelesen werden, und legen Sie die Nachricht entsprechend fest. Berechnen Sie einen 10 %-Schwellenwert aus der Datenspanne. Verwenden Sie den aktuellsten Wert, um die Warnmeldung festzulegen.

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) Benutzer webwrite zum Senden der Alarmanforderung. Umschließen Sie die Sendeanforderung mit einem try/catch, um zu verhindern, dass die MATLAB-Analyse deaktiviert wird, wenn die Anforderung aus irgendeinem Grund fehlschlägt.

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

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

Erstellen Sie eine Zeitsteuerung zum Ausführen Ihrer Analyse

Die TimeControl-App kann Ihre ThingSpeak-Kanaldaten auswerten und andere Ereignisse auslösen. Erstellen Sie eine Instanz der TimeControl-App, die jeden Tag Ihren MATLAB Analysiscode aufruft. Wählen Sie Apps > TimeControl und klicken Sie dann auf Neues TimeControl.

  • Name — Benennen Sie die Zeitsteuerung.

  • Häufigkeit — Wählen Sie Wiederkehrend aus.

  • Wiederholung — Wählen Sie Tag aus.

  • Aktion – Wählen Sie MATLAB Analysis aus. Wählen Sie in der Liste Code to execute den Namen der MATLAB-Analyse aus, die Sie zuvor geschrieben haben.

Bei jedem Start der TimeControl-App erhalten Sie eine E-Mail, die Sie darüber informiert, ob die Pflanze Wasser benötigt. Die 10%-Schwelle ist nur eine Schätzung; ThingSpeak übernimmt keine Verantwortung für Ihre Anlage.

Hinweis: Diese Konfiguration in diesem Beispiel verbraucht jeden Tag eine E-Mail-Benachrichtigung. Die Gesamtzahl Ihrer Benachrichtigungen ist begrenzt. Wenn Sie das Limit überschreiten, können Sie keine neuen E-Mail-Benachrichtigungen mehr auslösen.

Siehe auch

| (MATLAB) | |

Themen

Externe Websites