このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
チャネルデータを解析して電子メール通知を送信する
この例では、ThingSpeak ™ アラート サービスを使用して通知を電子メール メッセージとして送信する方法を示します。TimeControl アプリを使用して、MATLAB® Analysis アプリを定期的に起動します。MATLAB Analysis アプリはデータを解析して、土壌水分データに基づいて生成する適切な電子メール メッセージを決定します。MATLAB の解析機能を使用すると、ThingSpeak データから、チャネルアクティビティに関するフィルタリングされ、ターゲットを絞った具体的な通知を生成できます。
チャネル276330 は、オフィスの植物からの土壌水分測定を記録します。この例では、ThingSpeak アラートを使用して、植物に水が必要になったときに、最後の土壌センサーの値を含む電子メール通知を受信します。ThingSpeak にデータを記録する土壌水分モニターの設定方法については、チャネルへの HTTP POST要求を使用した水分センサー を参照してください。
MATLAB 解析を作成する
ThingSpeak データを MATLAB で解析します。解析の結果を使用して、ThingSpeak アラートからの電子メールの要求などの Web要求をトリガーできます。この解析では、4 週間分のデータを読み取り、履歴データに基づいてしきい値を計算します。データ範囲の 10% 未満の測定値では、出力メッセージが変わります。
1) [Apps] > [MATLAB Analysis] を選択し、[New] を選択します。
2) 例セクションでチャネルを読み取り、電子メールをトリガーするを選択します。以下のコードは、MATLAB 解析ウィンドウに事前に入力されています。
3) 解析に 名前を付け、コードを変更します。アラート API キーと一致するように alertApiKey
を変更します。自分のパブリックチャネルから読み取るには、channelID
値を変更します。まず、チャネルID とアラート キーを設定します。すべてのアラート API キーは TAK
で始まります。
channelID = 276330;
alertApiKey = 'TAKXXXXXXXXXXXXX';
4) URLとヘッダーを設定します。アラート サービスには ThingSpeak-Alerts-API-Key
ヘッダーが必要です。ヘッダーを設定するには weboptions
を使用します。
alertUrl = "https://api.thingspeak.com/alerts/send"; options = weboptions("HeaderFields", ["ThingSpeak-Alerts-API-Key", alertApiKey ]); alertSubject = sprintf("Plant soil information");
5) thingSpeakRead を使用して最新のデータを読み取ります。
moistureData = thingSpeakRead(channelID,'NumDays',30,'Fields',1);
6)チャネルから読み取られたデータがあることを確認し、それに応じてメッセージを設定します。データの範囲から 10% のしきい値を計算します。最新の値を使用してアラートbodyメッセージを設定します。
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) ユーザー webwrite
がアラート要求を送信します。何らかの理由で要求が失敗した場合に MATLAB Analysis が無効にならないように、送信要求を try/catch
でラップします。
try webwrite(alertUrl , "body", alertBody, "subject", alertSubject, options); catch someException fprintf("Failed to send alert: %s\n", someException.message); end
解析を実行するための時間コントロールを作成する
TimeControlアプリは、ThingSpeakチャネルデータを評価し、他のイベントをトリガーできます。毎日 MATLAB Analysis コードを呼び出すTimeControlアプリのインスタンスを作成します。[Apps] > [TimeControl] を選択し、[New TimeControl] をクリックします。
名前 — TimeControlに名前を付けます。
頻度 — 定期的を選択します。
繰り返し — 日を選択します。
Action - MATLAB Analysis を選択します。 実行するコード リストで、前に記述した MATLAB Analysis の名前を選択します。
TimeControlアプリが実行されるたびに、植物に水が必要かどうかを知らせるメールが届きます。10% のしきい値はあくまでも推定値であり、ThingSpeak はお客様の植物に対して一切の責任を負いません。
メモ: この例の構成では、毎日 1 つの電子メール アラートが使用されます。アラートの合計数には制限があり、制限を超えると、新しい電子メールアラートをトリガーできなくなります。
参考
Write
Data
| webwrite
(MATLAB) | Send
Alert
| Get Alert
History