標籤:

MATLAB和物聯網連載1:Internet of Things離你有多遠?5行MATLAB的距離

來自俄羅斯的實習生在工作之餘喜歡上網看點有的沒的。有一天他突然發現了一個神奇的網站叫ThingSpeak.com。

這個網站的神奇之處就是可以在上面用自己的MATLAB代碼讀取任意網頁,或是聯網的設備的數據。

於是他把自己的一個IP Camera對準了窗外的道路,通過Computer Vision Toolbox,他得到了窗外車流量的實時數據。[1]

圖中很清楚的顯示了早6-7點和晚7點左右的上下班高峰。

實習生為了知乎MATLAB專欄的蓬勃發展,也為我們搭建了一個屬於自己的thingSpeak Channel,追蹤該專欄的關注人數。

首先他需要找到可以獲取到知乎專欄關注人數的介面,最簡單的方法就是嘗試如下命令

>>url = http://zhuanlan.zhihu.com/matlabn>>data = webread(url);n

然後再從獲取的data中做regexp。

但是作為一個合格的實習生,他覺得這方法太麻煩了,知乎這麼高大上的網站難道沒有更簡單的數據介面嗎?幾經周轉他發現了這個

>>url = http://zhuanlan.zhihu.com/api/columns/matlabn>>data = webread(url)ndata = nn followersCount: 22n creator: [1x1 struct]n topics: [1x1 struct]n activateState: activatedn href: /api/columns/matlabn acceptSubmission: 1n firstTime: 0n postTopics: [3x1 struct]n pendingName: n avatar: [1x1 struct]n canManage: 0n description: 你真的了解MATLAB/Simulink嗎? 來看看吧n pendingTopics: []n nameCanEditUntil: 0n reason: n banUntil: 0n slug: matlabn name: MATLABn url: /matlabn intro: Do you speak MATLAB?n topicsCanEditUntil: 0n activateAuthorRequested: nonen commentPermission: anyonen following: 0n postsCount: 3n canPost: 0n

於是他很快的在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;noptions = weboptions;noptions.Timeout = 20; %Default value is 5 sec, too shortndata = webread(url,options);nnthingSpeakWrite(104694,... %Your Channel IDn Fields,[1,2],... %We checked 2 fieldsn Values,...n{data.followersCount,data.postsCount},...n WriteKey,yourKey) %Put your own write keyn

試試Save and Run

成功!哇,2小時內關注人從11人漲到了19人!這個每隔一小時獲取一下知乎專欄關注人數的小程序就上線了[2]。什麼伺服器什麼webcrawler, 通通不用。

俄羅斯實習生滿意的睡去了……

[1]: MakerZone

[2]: zhihumatlab - ThingSpeak

-開發於MATLAB R2016a


推薦閱讀:

matlab中有哪些有趣的命令?
大家都用matlab做過哪些有趣的事兒?
matlab的floor函數是否有bug?
加速度如何在頻域上積分成位移?

TAG:物联网 | MATLAB |