MATLAB和物聯網連載1:Internet of Things離你有多遠?5行MATLAB的距離
這個網站的神奇之處就是可以在上面用自己的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, 設置如下:
代碼如下
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?
※加速度如何在頻域上積分成位移?