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
Write
Data | webwrite (MATLAB) | Send
Alert | Get Alert
History
Themen
- Alerts-API
- TimeControl App
- MATLAB Analyse-App
- Reagieren Sie auf Kanalaktivität mit Benachrichtigungen von IFTTT