罗兰在MATLAB的艺术

把想法变成MATLAB

请注意

罗兰在MATLAB的艺术已经存档,不会被更新。

探索物联网数据ThingSpeak和MATLAB

今天我想向你们介绍一个客座博客,Eric Wetjen,在MathWorks产品营销经理。今天,Eric将ThingSpeak讨论平台,收集和分析物联网与MATLAB(物联网)数据。

内容

介绍

你知道你可以收集和分析的数据联网传感器使用吗ThingSpeak吗?ThingSpeak原型物联网应用程序是一个web服务。ThingSpeak允许您收集、分析和行为数据,包括一个MATLAB分析应用程序在云中送到ThingSpeak分析数据。我们将向您展示如何在桌面MATLAB分析ThingSpeak数据,我们还将展示如何在云中运行你们的MATLAB分析代码使用MATLAB分析应用程序内置ThingSpeak。

在这个项目中,我们使用一个覆盆子π,汽车网络摄像头和ThingSpeak计数和分析交通模式在一条繁忙的高速公路。我们的车反发送数据频道38629在ThingSpeak每15秒。

网络摄像头的汽车图像的计算是以覆盆子π2,只看到每15秒的汽车数量是ThingSpeak设备发送的。汽车的硬件设置和发展计算算法是完全在下面描述文件交换提交。传感器设置的图片和一个视图的原始数据显示在ThingSpeak如下所示。

一旦ThingSpeak收集的数据,我们已经准备好使用MATLAB的交通模式。今天,我们将专注于交通数据的数据分析和可视化使用MATLAB和ThingSpeak。

离线分析:分析数据存储在ThingSpeak

为了深入了解我们的交通数据,我们首先需要从ThingSpeak导入数据到桌面MATLAB。从ThingSpeak简化数据的检索,我们使用的功能ThingSpeak支金宝app持工具箱,可以在MATLAB中央文件交换。

一周的交通数据解读MATLAB

我们开始通过指定开始日期和结束日期使用datetime对象。因为我们是将数据发送到ThingSpeak每隔15秒,我们有大约40000数据点来检索。ThingSpeak只允许8000点一个读操作,所以我们创建一个for循环在批量收集数据。然后我们将每次迭代的流量和时间数据为两个向量,调用alltrafficData时间戳

endDate = datetime (“3/13/2016”,“InputFormat”,“MM / dd / yyyy”);startDate可以= datetime (“3/6/2016”,“InputFormat”,“MM / dd / yyyy”);%创建日期向量dateVector = startDate可以:endDate;%查看,最后endDate dateVector值是一样的,如果%不添加如果(dateVector(结束)~ = endDate) dateVector = [dateVector, endDate];结束alltrafficData = [];时间戳= [];%读取数据块因为ThingSpeak每读的上限为8000分dayCount = 1:长度(dateVector) 1 dateRange = [dateVector (dayCount) dateVector (dayCount + 1)];[channelData t] = thingSpeakRead (38629“DateRange”,dateRange);[alltrafficData] = [alltrafficData;channelData];[时间]=[时间戳;t];结束

绘制原始交通数据

接下来我们的阴谋和标签的数据图。每日波动在交通从原始数据清晰可见。马上,我们可以看到相对应的峰值早上和下午“高峰”。

图绘制(时间戳,alltrafficData) datetick包含(“日期”)ylabel (的车辆计数每15秒间隔网格)标题(3月6日的一周交通量)传说(“西界交通”,“东界交通”)

看着每日资金往东的交通作为一个直方图

可视化的体积流量每一天,我们总结原始交通数据和使用条形图来可视化。它看起来像我们繁忙的公路上看到从45000年到65000年汽车每一天!

eastTraffic = alltrafficData (:, 2);westTraffic = alltrafficData (: 1);i = 1:4%去掉几个分被5647整除(分一天)eastTraffic (i) = [];westTraffic (i) = [];结束%将数据分成7块(接近24小时的一天)dailysumeast =总和(重塑(eastTraffic地板(长度(alltrafficData) / 7), []));日期= dateVector;%转换为串行的日期栏阴谋日期(8)= [];日期= datenum(日期);图酒吧(日期、dailysumeast)网格包含(“日期”)ylabel (“每天车辆数”甘氨胆酸)ax =;ax.YAxis。指数= 3;标题(“东界交通量本周3月6日的)datetick

更深层次的看一个人的一天

获得更多的了解我们的交通数据,我们看交通一个人一天。每天,我们指定一个开始时间和停止时间。

清晰的所有开始时间{1}=2016年3月8日,“就是”;stopTime {1} =“2016年3月8日23:59:59;%我们从ThingSpeak检索数据,和我们% downsample数据删除短期波动。然后,我们使用% findpeaks函数图并寻找乘以交通量在哪里%最高。为简单起见,我们只看往东的数据。startDate可以= datetime(开始时间{1},“InputFormat”,“嗯,yyyy HH: mm: ss”);endDate = datetime (stopTime {1},“InputFormat”,“嗯,yyyy HH: mm: ss”);datevector = [startDate可以,endDate];[每日t] = thingSpeakRead (38629“DateRange”,datevector);%看东界交通DailyEast =每日(:,2);时间戳= datetime (t)“ConvertFrom”,“datenum”);dateAnalyzed =开始时间{1};dateAnalyzed = {dateAnalyzed (1: (end-8))};

将采样到48箱30分钟的数据块,发现山峰

原始交通数据非常的难以想象。如果我们想看看每天的时间最高的体积流量,我们需要看数据在时间尺度大于15秒。为此,我们将每天24小时划分为30分钟的片段。每一段的顶部开始小时30分钟后结束。

downsamplesize =地板(长度(DailyEast) / 48);teastper30 = datetime(开始时间{1});DailyEastper30为止(1:48)= 0;%预先分配为止k = 1:48% calucate每日tarffic每30分钟的片段DailyEastper30 (k) =总和(DailyEast (1 + downsamplesize * (k - 1): downsamplesize * k));teastper30 (k + 1) = teastper30 (k) + 1/48;%显示每个30分钟周期结束时间戳结束teastper30 = teastper30 ';teastper30 (1) = [];%十二点开始第一本我timestampPer30 = teastper30;%找到峰值及其倍(位置)(峰值、位置)= findpeaks (DailyEastper30,“阈值”,100,“MinPeakHeight”,1100);%的阴谋的山峰图findpeaks (DailyEastper30 datenum (timestampPer30),“阈值”,100,“MinPeakHeight”,1100)datetick包含(“时间”)ylabel (“车辆计数每30分钟”)标题(strcat (“成交量峰值”,{' '},dateAnalyzed)) dateAnalyzed peaktimes = timestampPer30(位置)DailyVolume =总和(DailyEast)
dateAnalyzed = ' 2016年3月8日,' peaktimes = 08 - mar - 2016 06:00:00 08年3月- 2016 07:30:00 08年3月- 2016 12:30:00 08年3月- 2016 14:00:00 08年3月- 2016 15:30:00 08年3月- 2016年17:30:00 08 - 3月- 2016年20:00:00 DailyVolume = 51175

在线分析:计算和调度在ThingSpeak MATLAB代码

到目前为止,我们已经把数据从ThingSpeak回MATLAB做一些离线分析每周和每天的交通模式。但如果我们想计算每日的体积流量和数据发送到另一个频道ThingSpeak吗?离线计算非常简单,但ThingSpeak与MATLAB集成使我们能够在网上这样做。计算成交量的交通,我们使用MATLAB分析应用程序可以在Thingspeak.com。我们编写代码来获取前一天的原始交通数据,我们总结结果。然后,我们使用thingSpeakWrite命令发送数据到一个名为成交量的新渠道。

最后,我们安排我们的分析每天运行一次午夜后使用ThingSpeak TimeControl应用。

查看在线计算数据

现在我们已经创建了一个频道,汽车的成交量统计报告。因为这个频道是ThingSpeak和MATLAB分析应用是内置的,我们可以看看这个分析在任何时候使用任何网络浏览器在个人电脑或移动设备。的计算值,去51671频道ThingSpeak

因为ThingSpeak云服务时,它将执行MATLAB分析代码来计算这个值每天即使你不登录ThingSpeak。

为更多的信息关于如何将数据发送给ThingSpeak,看到这个金宝app支持页面。如果你有一个MathWorks帐户,您已经访问ThingSpeak。登录ThingSpeak.com和探索!

什么样的物联网数据你试图访问吗?当你原型物联网系统,你好你的在线和离线分析吗?我们想听到的在这里!




发表与MATLAB®R2016a


댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그인하거나계정을새로만드십시오。