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