MATLAB和物联网连载1:Internet of Things离你有多远?5行MATLAB的距离

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](https://link.zhihu.com/?target=http%3A//makerzone.mathworks.com/blog/counting-cars-and-analyzing-traffic-raspberry-pi-thingspeak/ "MakerZone") \[2\]: [zhihumatlab - ThingSpeak](https://link.zhihu.com/?target=https%3A//thingspeak.com/channels/104694 "zhihumatlab - ThingSpeak") *-开发于MATLAB R2016a*

相关推荐
阿正的梦工坊3 小时前
JavaScript 微任务与宏任务完全指南
开发语言·javascript·ecmascript
2301_816660214 小时前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
第一程序员4 小时前
数据工程 pipelines 实践
python·github
chools4 小时前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
CPUOS20104 小时前
嵌入式C语言高级编程之MVC设计模式
c语言·设计模式·mvc
jolimark4 小时前
C语言存在的问题及Zig语言如何改进,差异对比全在这
c语言·内存管理·系统编程·类型系统·zig语言
知行合一。。。4 小时前
Python--05--面向对象(属性,方法)
android·开发语言·python
郝学胜-神的一滴4 小时前
深度学习必学:PyTorch 神经网络参数初始化全攻略(原理 + 代码 + 选择指南)
人工智能·pytorch·python·深度学习·神经网络·机器学习
李白你好4 小时前
TongWeb EJB 反序列化生成工具(Java-Chain 插件)
java·安全
自信150413057594 小时前
重生之从0开始学习c++之模板初级
c++·学习