Main Content

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

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

Dieses Beispiel zeigt, wie Sie den ThingSpeak Benachrichtigungsdienst verwenden, um Benachrichtigungen als E-Mail-Nachrichten zu senden. Verwenden Sie die TimeControl-App, um in regelmäßigen Abständen eine MATLAB Analyse-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, gezielte und spezifische Benachrichtigungen über die Kanalaktivität generieren.

Der Kanal 276330 protokolliert eine Bodenfeuchtigkeitsmessung einer Büropflanze. In diesem Beispiel verwenden Sie ThingSpeak-Benachrichtigungen, um eine E-Mail-Benachrichtigung mit dem letzten Bodensensorwert zu erhalten, wenn die Pflanze Wasser benötigt. Unter Moisture Sensor Using HTTP POST Requests to Channel erfahren Sie, wie Sie einen Bodenfeuchtigkeitsmonitor einrichten, der Ihre Daten auf ThingSpeak aufzeichnet.

Erstellen Sie eine MATLAB Analyse

Analysieren Sie ThingSpeak Daten mit MATLAB. Sie können das Ergebnis Ihrer Analyse verwenden, um Webanfragen auszulösen, beispielsweise eine E-Mail-Anfrage von ThingSpeak Benachrichtigungen. Bei dieser Analyse werden Daten aus vier Wochen gelesen, um einen Schwellenwert basierend auf historischen Daten zu berechnen. Eine Messung von weniger als 10 % des Datenbereichs ändert die Ausgabemeldung.

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

2) Wählen Sie im Abschnitt „Beispiele“ die Option „Read Channel to Trigger Email“. Der folgende Code ist in Ihrem MATLAB Analysefenster vorab ausgefüllt.

3) Benennen Sie Ihre Analyse und ändern Sie den Code. Ändern Sie alertApiKey so, dass es Ihrem Warnungs-API-Schlüssel entspricht. Um aus Ihrem eigenen öffentlichen Kanal zu lesen, ändern Sie den Wert channelID . Beginnen Sie mit dem Festlegen 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 Benachrichtigungsdienst 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 stellen Sie die Nachricht entsprechend ein. 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 Alarmanfrage. Schließen Sie die Sendeanforderung in ein try/catch ein , 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 Zeitkontrolle für die Durchführung Ihrer Analyse

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

  • Name — Benennen Sie das TimeControl.

  • Häufigkeit – Wählen Sie Wiederkehrend.

  • Wiederholung — Wählen Sie Tag.

  • „Aktion“ – Wählen Sie „MATLAB Analyse“. „Wählen Sie in der Liste „Auszuführender Code“ den Namen der MATLAB Analyse aus, die Sie zuvor geschrieben haben.

Jedes Mal, wenn die TimeControl-App ausgeführt wird, erhalten Sie eine E-Mail, die Sie darüber informiert, ob die Pflanze Wasser benötigt. Bei der 10 %-Schwelle handelt es sich nur um eine Schätzung; ThingSpeak übernimmt keine Verantwortung für Ihre Anlage.

Notiz: 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) | |

Verwandte Themen

Externe Websites