分析通道数据发送邮件通知
这个例子展示了如何使用ThingSpeak警报服务以电子邮件消息的形式发送通知。使用TimeControl应用程序定期触发MATLAB分析应用程序。MATLAB分析应用程序分析数据,根据土壤湿度数据决定生成适当的电子邮件消息。使用MATLAB的分析功能,您可以从ThingSpeak数据中生成过滤的,有针对性的和特定的通道活动通知。
通道276330办公室植物的土壤湿度测量日志。在本例中,当植物需要水时,使用ethingspeak警报接收带有最后一个土壤传感器值的电子邮件通知。看到水分传感器使用HTTP POST请求通道学习如何设置一个土壤湿度监测器,在ThingSpeak上记录你的数据。
创建MATLAB分析
用MATLAB分析ThingSpeak数据。您可以使用您的分析结果来触发网络请求,例如从ThingSpeak警报请求电子邮件。该分析读取四周的数据,根据历史数据计算阈值。低于数据范围10%的测量值将更改输出消息。
1)选择应用程序>MATLAB分析并选择新.
2)选择阅读触发电子邮件的通道在例子部分。下面的代码是在MATLAB分析窗口中预先填充的。
3)的名字您的分析和修改代码。改变alertApiKey
以匹配您的警报API密钥。若要从您自己的公共频道读取,请更改channelID
价值。首先设置通道ID和警报键。所有警报API键都以达克
.
channelID = 276330;alertApiKey =“TAKXXXXXXXXXXXXX”;
4)设置URL和标题。警报服务需要一个ThingSpeak-Alerts-API-Key
头。使用weboptions
设置标头。
alertUrl =“https://api.thingspeak.com/alerts/send”;选项= weboptions(“HeaderFields”, (“ThingSpeak-Alerts-API-Key”, alertApiKey]);alertSubject = sprintf(“植物土壤资料”);
5)使用thingSpeakRead读取最近的数据。
保湿数据= thingSpeakRead(channelID,“NumDays”30岁的“字段”1);
6)确保有从信道读取的数据,并相应地设置消息。根据数据的跨度计算一个10%的阈值。使用最近的值设置警报正文消息。
如果isempty(moistureData) alertBody =“没有从工厂读取数据。”;其他的根据近期数据计算10%的阈值。span = max(保湿数据)- min(保湿数据);dryValue = 0.1 * span + min(moistureData);获取湿度数据数组中最近的点。lastValue = moistureData(end);%设置发送消息如果(lastValue“我需要水!”;结束如果(lastValue>dryValue) alertBody =“不需要水。”;结束结束
7)用户webwrite
发送警报请求。将发送请求包装在try / catch
以防止MATLAB分析被禁用,如果请求失败的任何原因。
试一试webwrite (alertUrl“身体”alertBody,“主题”, alertSubject, options);抓someException流("发送警报失败:%s\n", someException.message);结束
创建一个运行分析的时间控件
TimeControl应用程序可以评估ThingSpeak频道数据并触发其他事件。创建一个TimeControl应用程序实例,每天调用MATLAB分析代码。选择应用程序>TimeControl,然后按新TimeControl.
的名字—命名TimeControl。
频率——选择反复出现的.
递归式——选择一天.
行动——选择MATLAB分析.在要执行的代码列表,选择您之前编写的MATLAB Analysis的名称。
每次TimeControl应用程序运行时,你都会收到一封电子邮件,让你知道植物是否需要浇水。10%的阈值只是一个估计;ThingSpeak不对您的植物承担任何责任。
注意:本例中的配置每天消耗一个电子邮件警报。您的警报总数是有限的;如果超过限制,则不能再触发新的电子邮件警报。
另请参阅
写入数据
|webwrite
(MATLAB)|发送警报
|获取警报历史记录