物联网数据浏览器的ThingSpeak和MATLAB
本视频将演示如何使用定制的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中制作自己的物联网数据浏览器。
正如之前提到的,你在这个视频中看到的应用程序可以从File exchange和ThingSpeak github网站上获得,我们强烈建议你下载它并利用它作为起点。MATLAB App Designer使您能够从零开始创建自己的应用程序,或编辑现有的应用程序。
只需在MATLAB命令行中输入“appdesigner”。
作为背景,ThingSpeak Explorer应用程序是一个带有回流的2面板应用程序。让我们找到应用程序,并在应用程序设计器中打开它。你当然可以制作一个应用程序,在每次这些输入发生变化时自动更新可视化效果,这个应用程序让事情变得简单,它允许你按照自己的节奏设置参数,然后在准备好时使用更新按钮。
在左侧,您可以看到一些用于提供输入的控件、日期选择器、下拉菜单和用于选择时间的开关。[同时添加另一个复选框:]只需将控件拖放到界面上,然后单击它们来编辑和重命名。
右键单击任何元素以创建回调。每当元素以某种相关方式被触发时,这些回调函数就会被激活。回调的一个重要用途是输入验证:与用户进行通信,例如一个字段是否需要一个整数,或者一个日期是否需要设置在过去相对于另一个日期的位置。
这个物联网资源管理器应用程序通过对这个更新按钮的回调进行所有输入验证,使事情变得简单,这也是发生主要动作的地方。让我们看一下回调函数。
这个函数有三个主要部分。首先,我们从UI获取所有输入,并执行输入验证。接下来,我们使用输入从ThingSpeak收集数据——首先从选定的日期收集数据,然后从过去的日期收集数据。最后,我们绘制数据可视化图。
让我们看看关键功能:从ThingSpeak读取数据。你可以通过右键单击函数名,然后点击“打开”来导航到函数定义。虽然这里看起来有很多代码,但大部分代码只是为了让应用程序更健壮一点,因为从ThingSpeak读取数据完全包含在这一行代码中。
ThingSpeakRead需要知道一些信息,特别是通道ID。然后,您可以使用名称-值对指定其他数据,例如带有开始和结束日期的DateRange、选中的复选框指示的选定字段、如果通道是私有的则使用API键,以及结果的输出格式。MATLAB时间表是一种很好的输出格式,因为它可以很容易地绘制和重新计时数据。
下一节通过确保我们实际从ThingSpeakRead接收到数据来帮助我们的应用程序更平稳地运行,它会在出现错误时通知用户。
如果选择了该选项,最后一部分执行重计时。这就结束了获取当前和过去日期的数据的过程,Update回调函数将继续下一步。
希望您已经能够看到从ThingSpeak获取数据是多么容易,并使用MATLAB应用程序设计器来构建和修改自定义应用程序,以便您和您的同事可以以交互式的方式分析和可视化数据。使用下面的链接在Github上找到条目,在那里你可以下载应用程序,自己尝试,也可以留下评论和反馈。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。