分析通道数据以发送电子邮件通知
此示例显示如何使用 ThingSpeak 警报服务以电子邮件形式发送通知。使用 TimeControl App 定期触发 MATLAB 分析 App。MATLAB 分析 App 分析数据以根据土壤湿度数据决定生成适当的电子邮件信息。利用 MATLAB 的分析能力,您可以从 ThingSpeak 数据中生成经过过滤、有针对性的、特定的通道活动通知。
通道 276330 记录了办公室植物的土壤湿度测量值。在此示例中,当植物需要水时,您可以使用 ThingSpeak 警报接收包含最新土壤传感器值的电子邮件通知。请参阅湿度传感器使用 HTTP POST 请求到通道以了解如何设置土壤湿度监测器来记录 ThingSpeak 上的数据。
创建 MATLAB 分析
使用 MATLAB 分析 ThingSpeak 数据。您可以使用分析结果来触发网络请求,例如来自 ThingSpeak 警报的电子邮件请求。该分析读取四周的数据以根据历史数据计算阈值。低于数据范围 10% 的测量值会改变输出信息。
1) 选择 Apps > MATLAB Analysis,然后选择 New。
2) 在示例部分中选择读取通道以触发电子邮件。下面的代码已预先填充在您的 MATLAB 分析窗口中。
3) 命名您的分析并修改代码。更改 alertApiKey
以匹配您的警报 API 密钥。要从您自己的公共通道读取,请更改 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% 的阈值。使用最新的值来设置警报正文。
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
发送警报请求。将发送请求包装在 try/catch
中,以防止在请求因任何原因失败时禁用 MATLAB 分析。
try webwrite(alertUrl , "body", alertBody, "subject", alertSubject, options); catch someException fprintf("Failed to send alert: %s\n", someException.message); end
创建时间控制来运行分析
TimeControl App 可以评估您的 ThingSpeak 通道数据并触发其他事件。创建一个 TimeControl App 实例,每天调用您的 MATLAB 分析代码。选择 Apps > TimeControl,然后点击 New TimeControl。
名称 - 命名 TimeControl。
频率 - 选择重复。
重复 - 选择天。
操作 - 选择 MATLAB 分析。 在要执行的代码 列表中,选择您之前编写的 MATLAB 分析的名称。
每次 TimeControl App 运行时,您都会收到一封电子邮件,告知您植物是否需要浇水。10% 的阈值仅为估计值;ThingSpeak 对您的工厂不承担任何责任。
注意:本示例中的配置每天使用一封电子邮件警报。您的总警报数量是有限的;如果超出限制,您将无法再触发新的电子邮件警报。
另请参阅
Write
Data
| webwrite
(MATLAB) | Send
Alert
| Get Alert
History