计算风寒并更新通道
此示例演示如何从公共通道读取数据、分析数据以及调度代码定期运行。在示例中,您修改 MATLAB Analysis 和 MATLAB Visualizations App 提供的代码模板之一。此示例使用 ThingSpeak channel 12397 的数据计算风寒,该数据从位于马萨诸塞州纳蒂克的基于 Arduino 的气象站收集温度和风速。
创建通道
登录 ThingSpeak 创建私有通道来记录和绘制温度、风速和风寒。转到“通道”选项卡并选择“我的通道”。点击“新建通道”。选择相应的复选框,然后输入以下通道设置值:
名称 —
Wind Chill Measurement
字段 1 —
Temperature (F)
字段 2 —
Wind Speed (mph)
字段 3 —
Wind Chill (F)
点击“保存通道”。
分析并写入您的数据
要分析来自公共通道的数据并将其写入您的私有通道,您可以使用代码模板编写 MATLAB® 脚本。内蒂克的气象站收集天气相关数据并将结果发送到公共 ThingSpeak通道。您可以访问实时气象站数据来计算风寒并自动绘制图表。
1) 转到 App 选项卡并选择“MATLAB 分析”。点击“新建”,选择“计算风寒并更新通道”选项,然后点击“创建”。
2) “MATLAB 代码”字段预先填充了用于分析和写入数据的代码。将 writeChID
和 writeAPIKey
的给定值替换为您的通道设置。您可以在页面右侧的“通道信息”面板下找到通道ID 并写入 API Key。
readChID = 12397; % Replace the following with your channel ID. writeChID = 17504; % Enter your write API key between the ''. writeAPIKey = '23ZLGOBBU9TWHG2H';
3) 使用 thingSpeakRead
函数分别从气象站通道中的字段 4 和字段 2 检索最新的温度和风速读数。该函数还记录时间戳。
[temp,time] = thingSpeakRead(readChID,'Fields',4); windSpeed = thingSpeakRead(readChID,'Fields',2);
4) 计算并显示风冷温度。风寒是衡量空气温度的指标,考虑了风对人体皮肤的冷却效果。该措施仅在气温低于 50 华氏度且风速大于每小时 3 英里的情况下有效。此示例使用 National Weather Service formula 来计算风寒。
windChill = 35.74 + (0.06215*temp) - (35.75*windSpeed^0.16) + (0.4275*temp*windSpeed^0.16);
display(windChill,'Wind Chill');
39.9372
5) 将两个测量值和计算值写入您的私有 ThingSpeak通道中的字段 1、2 和 3。
thingSpeakWrite(writeChID,[temp,windSpeed,windChill],'Fields',[1,2,3],... 'TimeStamps',time,'WriteKey',writeAPIKey);
6) 点击“保存并运行”执行代码。ThingSpeak通道中的三个图表中的每一个都填充有一个点。您可以通过点击页面右侧“通道信息”面板中的通道链接来访问您的通道。
调度代码
您可以使用 TimeControl App 将代码设置为定期运行。定期运行代码会在 ThingSpeak通道中生成随时间变化的连续风寒图。
1) 在包含 MATLAB 代码的页面上,滚动到底部并打开 TimeControl App 设置。
2) 将新的 TimeControl 命名为$$。将“频率”设置为“重复”,将“重复”设置为“分钟”。在“每 — 分钟”下拉列表中选择 30
。
3) 将“操作”设置为 MATLAB Analysis
,并将“要执行的代码”设置为 Calculate wind chill and update channel
。
4) 点击“保存时间控制”。
注意: 设置 TimeControl 以将数据写入您的通道会使用 ThingSpeak 帐户上的可用消息。此操作最终可能会耗尽可用消息,从而导致拒绝通道源更新。
ThingSpeak通道中的三个图表每 30 分钟更新一次新的风寒值。