Christopher Stapels, MathWorks
本视频将演示如何使用定制的MATLAB应用程序探索ThingSpeak数据,然后详细介绍如何使用应用程序设计器构建应用程序。
ThingSpeak是一款物联网分析平台服务,允许您在云中聚合、可视化和分析实时数据流。您可以从您的设备向ThingSpeak发送数据,创建实时数据的即时可视化,并发送警报。
ThingSpeak频道视图提供您的流数据快照。这个交通监控器通道正在观察MathWorks总部外主干道上向东和向西行驶的实时交通数据。
您可以使用MATLAB为您的数据创建自定义可视化,例如这个周与周的比较,或48小时的总结。然而,如果没有图形控件来快速修改数据可视化,探索性数据分析可能会有些乏味。
ThingSpeak的物联网数据资源管理器提供了一个易于使用的图形化界面,以探索从ThingSpeak读取的数据。
该应用程序及其代码可在文件Exchange和ThingSpeak GitHub网站上公开获取,我们将使用它来查看最近的隔离对MathWorks总部周围污染和交通水平的影响。
安装后,可以从MATLAB应用程序库中打开此MATLAB应用程序。我们将看看这个应用程序特有的一些功能,然后演示如何自己制作一个类似的应用程序。
该频道显示了由PurpleAir制作的空气质量监控器的测量结果,该监控器安装在MathWorks总部的一个车库中。随着越来越多的人开始在家工作,开车上班和使用车库的人越来越少,因此我们应该会看到空气质量的改善。
首先,作为一种控制,让我们比较隔离期间两个日期的空气质量。我们来看看4月28日的情况,并将其与一周前的情况进行比较。填写通道ID并在这里设置日期,然后指定[Duration]时间宽度,从指定日期的午夜开始。为了与一周前进行比较,我们将这个字段[compare Length]设置为一周。
尽管这两个日期都发生在隔离期间,但我们看到了空气质量的显著差异——蓝色为指定日期,橙色为前一周。也许一天中的温度变化会影响传感器的读数。我们通道的字段6包含这个数据,所以我们可以检查它。粗略地看一下这两种可视化图像,就会发现可能会有影响,但目前还不清楚。
尽管这两个日期都发生在隔离期间,但我们看到了空气质量的显著差异——蓝色为指定日期,橙色为前一周。也许一天中的温度变化会影响传感器的读数。我们通道的字段6包含这个数据,所以我们可以检查它。粗略地看一下这两种可视化图像,就会发现可能会有影响,但目前还不清楚。
现在让我们比较当前日期与隔离前时间的数据。我们将此数据与7周前没有隔离的数据进行比较。正如我们所预料的那样,空气质量更差了,正如更高的数字所表明的那样。然而,温度是也高得多。
让我们看看这种趋势是否会持续几天。由于每次读取可以获得多达8000个数据点,因此我们可以可视化近连续3天的数据。我们看到这些时间的空气质量水平相似,尽管隔离和不隔离,并注意到这两个日期范围不包括周末。因为我们也看到温度在这些时候变得相似,这似乎表明温度对空气质量的影响可能比使用车库的汽车数量更大。
["请注意,如果你的时间范围内的原始数据非常混乱,这个应用程序可以让你快速应用MATLAB retime函数来查看诸如每小时平均值之类的东西。-替换所有红色文字。]
希望您已经了解了交互式图形工具如何使执行探索性数据分析变得更加容易。让我们来谈谈如何在MATLAB中制作自己的物联网数据浏览器。
如前所述,你在这个视频中看到的应用程序可以从文件交换和ThingSpeak github网站获得,强烈建议你下载它,并将其作为一个起点。MATLAB应用程序设计器使您能够从头创建自己的应用程序,或编辑现有的应用程序。
在MATLAB命令行中输入“appdesigner”即可。
作为上下文,ThingSpeak资源管理器应用程序是一个带有回流流的2面板应用程序。让我们找到应用程序,并在应用程序设计器中打开它。虽然你当然可以制作一个应用程序,每当这些输入之一发生变化时自动更新可视化,但这个应用程序让事情变得简单,允许你按照自己的节奏设置参数,然后在准备好时使用更新按钮。
在左边,您可以看到一些用于提供输入、日期选择器、下拉菜单和选择时间的开关的控件。[同时添加另一个复选框:]只需将控件拖放到界面上,然后单击它们进行编辑和重命名。
右键单击任何元素以创建回调。当元素以某种相关方式被触发时,这些回调就会被激活。回调的一个重要用途是输入验证:与用户通信,例如,一个字段是否需要一个整数,或者一个日期是否需要相对于另一个日期设置过去。
这个物联网资源管理器应用程序通过在这个更新按钮的回调上进行所有输入验证来使事情变得简单,这也是主要操作发生的地方。让我们看一下回调函数。
这个函数有三个主要部分。首先,我们从UI获取所有输入,并执行输入验证。接下来,我们使用该输入从ThingSpeak收集数据——首先是从选定的日期开始,然后是从过去的日期开始。最后,我们绘制数据可视化图。
让我们看看关键功能:从ThingSpeak读取数据。你可以通过右键单击函数名,然后点击“打开”来导航到函数定义。虽然看起来这里有很多代码,但大部分代码只是为了让应用程序更健壮一点,因为从ThingSpeak读取数据完全包含在这一行代码中。
ThingSpeakRead需要知道一些信息,特别是通道ID。然后,您可以使用名称-值对指定其他数据,例如带有开始和结束日期的DateRange、选中的复选框所指示的选定字段、如果通道是私有的则使用API键,以及结果的输出格式。MATLAB时间表是一个很好的输出格式,因为它们可以很容易地绘制和重新计时数据。
下一节通过确保我们从ThingSpeakRead接收到数据来帮助我们的应用程序运行得更顺畅,如果出现错误,它会通知用户。
如果选择了该选项,则最后一部分执行重新计时。这就结束了获取当前和过去日期数据的过程,Update回调函数将继续进行下一步。
希望您已经能够看到从ThingSpeak中获取数据是多么容易,并使用MATLAB App Designer来构建和修改自定义应用程序,以便您和您的同事可以以交互的方式分析和可视化数据。使用下面的链接在Github上找到该应用程序,在那里你可以下载该应用程序,自己试用,也可以留下评论和反馈。
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。