MATLAB和物联网连载1:Internet of Things离你有多远?5行MATLAB的距离
原文:MATLAB和物联网连载1:Internet of Things离你有多远?5行MATLAB的距离 - 知乎 (zhihu.com)
来自俄罗斯的实习生在工作之余喜欢上网看点有的没的。有一天他突然发现了一个神奇的网站叫
ThingSpeak.com
。
这个网站的神奇之处就是可以在上面用自己的MATLAB代码读取任意网页,或是联网的设备的数据。
于是他把自己的一个IP Camera对准了窗外的道路,通过Computer Vision Toolbox,他得到了窗外车流量的实时数据。[1]
图中很清楚的显示了早6-7点和晚7点左右的上下班高峰。
实习生为了知乎MATLAB专栏的蓬勃发展,也为我们搭建了一个属于自己的thingSpeak Channel,追踪该专栏的关注人数。
首先他需要找到可以获取到知乎专栏关注人数的接口,最简单的方法就是尝试如下命令
>>url = 'http://zhuanlan.zhihu.com/matlab'
>>data = webread(url);
然后再从获取的data中做regexp。
但是作为一个合格的实习生,他觉得这方法太麻烦了,知乎这么高大上的网站难道没有更简单的数据接口吗?几经周转他发现了这个
>>url = 'http://zhuanlan.zhihu.com/api/columns/matlab'
>>data = webread(url)
data =
followersCount: 22
creator: [1x1 struct]
topics: [1x1 struct]
activateState: 'activated'
href: '/api/columns/matlab'
acceptSubmission: 1
firstTime: 0
postTopics: [3x1 struct]
pendingName: ''
avatar: [1x1 struct]
canManage: 0
description: '你真的了解MATLAB/Simulink吗? 来看看吧'
pendingTopics: []
nameCanEditUntil: 0
reason: ''
banUntil: 0
slug: 'matlab'
name: 'MATLAB'
url: '/matlab'
intro: 'Do you speak MATLAB?'
topicsCanEditUntil: 0
activateAuthorRequested: 'none'
commentPermission: 'anyone'
following: 0
postsCount: 3
canPost: 0
于是他很快的在thinkSpeak上建立了一个Channel, 设置如下:
接下来,他需要一个MATLAB Analysis来获取数据,点击网页上方的App,创建新的MATLAB Analysis.
然后加入MATLAB Code,注意右边的Read API Key和Write API Key,写入数据时用WriteAPIKey。可以看右边的Documentation.
代码如下
url = 'http://zhuanlan.zhihu.com/api/columns/matlab';
options = weboptions;
options.Timeout = 20; %Default value is 5 sec, too short
data = webread(url,options);
thingSpeakWrite(104694,... %Your Channel ID
'Fields',[1,2],... %We checked 2 fields
'Values',...
{data.followersCount,data.postsCount},...
'WriteKey','yourKey') %Put your own write key
试试Save and Run
成功!哇,2小时内关注人从11人涨到了19人!这个每隔一小时获取一下知乎专栏关注人数的小程序就上线了[2]。什么服务器什么webcrawler, 通通不用。
俄罗斯实习生满意的睡去了……
[1]: MakerZone
[2]: zhihumatlab - ThingSpeak
-开发于MATLAB R2016a