Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

分析通道数据以发送电子邮件通知

此示例演示如何使用 ThingSpeak 警报服务以电子邮件形式发送通知。使用 TimeControl App 定期触发 MATLAB Analysis App 。MATLAB Analysis App 分析数据,根据土壤湿度数据决定生成适当的电子邮件。利用 MATLAB 的分析能力,您可以从 ThingSpeak 数据生成经过筛选的、有针对性的特定通道活动通知。

通道 276330 记录办公室植物的土壤湿度测量值。在此示例中,当植物需要水时,您可以使用 ThingSpeak 警报接收包含最新土壤传感器值的电子邮件通知。请参阅 Moisture Sensor Using HTTP POST Requests to Channel 了解如何设置土壤湿度监测器来记录 ThingSpeak 上的数据。

创建 MATLAB 分析

使用 MATLAB 分析 ThingSpeak 数据。您可以使用分析结果触发 Web 请求,例如来自 ThingSpeak 警报的电子邮件请求。此分析读取四个星期的数据,以根据历史数据计算阈值。低于数据范围 10% 的测量结果会更改输出消息。

1) 选择 App > “MATLAB 分析”并选择“新建”。

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通道数据并触发其他事件。创建每天调用您的 MATLAB Analysis 代码的 TimeControl App 实例。选择 App > “时间控制”,然后点击“新建时间控制”。

  • 名称 — 命名时间控件。

  • 频率 — 选择 重复

  • 重复 — 选择

  • 操作 — 选择 MATLAB 分析 要执行的代码 列表中,选择您之前编写的 MATLAB Analysis 的名称。

每次运行 TimeControl App 时,您都会收到一封电子邮件,告知您植物是否需要水。10% 的阈值只是一个估计值; ThingSpeak 对您的工厂不承担任何责任。

注意:本示例中的此配置每天消耗一封电子邮件警报。您的警报总数是有限的;如果超出限制,您将无法再触发新的电子邮件警报。

另请参阅

| (MATLAB) | |

相关主题

外部网站