物聯網系統開發

物聯網(Internet of Things, IoT)展現了大量的嵌入式裝置(物品)都連接到網際網路的新趨勢。而這些被連接的設備與人、其他設備進行溝通後,透過感測器將資料儲存雲端上,藉由其上的運算資源進行資料處理及分析,而獲得重要的資訊及見解。而雲端運算能力的日益平民化讓人們負擔得起,再加上設備間的連接程度愈來愈強,使得物聯網蓬勃發展。

物聯網的解決方案可見於許多垂直應用,如環境監控、健康監測、車輛監控、工業監控與住家自動化等。MATLAB® and Simulink®及ThingSpeak,能協助開發IoT系統,如邊緣節點設備(edge node devices)開發、資料的取得及匯集、IoT感應資料分析及傳輸通道模型建立等工作。

MATLAB & Simulink解決方案 – 物聯網系統開發, Internet of Things

IoT系統大致上可藉由上圖更進一步說明

  1. 圖的左側為端點設備,負責收集數據,如無線溫度感應器、心律監測儀、液壓感應器。
  2. 圖的中央為數據整合。從各設備端點收集來的數據會在這裡被處理及儲存,進而在分析後針對所輸入數據做出反應。
  3. 圖的右側為數據的歷史分析。數據經過整合後匯入軟體環境,幫助研究人員從數據中獲得見解,並將分析演算法執行在數據整合器或端點設備上。

一、開發及測試物聯網系統嵌入式裝置

Simulink支援IoT設備端點的許多硬體平台,能協助其硬體原型化及建立物聯網系統。例如您可以在Simulink開發前處理演算法,之後使用HDL及C程式碼轉檔技術,將演算法運行到嵌入式硬體上。將演算法轉檔配置到裝置時利用的是裝置本身的計算能力,優點是減少了需要傳送到雲端資料整合器的資料量。

MathWorks同時提供了雲端資料整合器的平台-ThingSpeak,使用者可以在Arduino®、Raspberry PiTM、及BeagleBone Black等低成本硬體平台上來進行未來感應器端點設備的原型化。Simulink及嵌入式程式碼轉碼器(Embedded Coder®)還提供這些裝置的支援套件的下載,包含可以傳送資料到ThingSpeak及物聯網資料整合器的模塊。

物聯網各端點裝置與一個區域近端網路熱點之間,或者與雲端資料整合器間的溝通,是透過一些熱門無線標準如Bluetooth Zigbee (IEEE 820.15, Wi-Fi (IEEE 802.11)等,或是像4G LTE的行動通訊標準之實體層協議來進行溝通。MATLAB與通訊系統工具箱(Communications System Toolbox™),可以協助使用者建立通訊模型、及驗證無線通訊連結;或者您也可以使用從MATLAB的儀器設備控制工具箱(Instrument Control Toolbox™)操控測試儀器來驗證通訊系統。

相關應用支援及成功範例
MATLAB於Arduino相關支援
MATLAB於Raspberry Pi相關支援
利用Raspberry Pi, 網路攝影機、及ThingSpeak計算車輛及進行交通狀況分析


二、收集、存取IoT感測器資料並於雲端進行解析

MATLAB與Simulink也提供IoT數據資料整合的支援,其中一個方法是,使用者可在原型化物聯網系統時將資料儲存在免費的ThingSpeak資料整合服務中,它可幫助您收集物聯網連接的各感測器端點設備之資料。ThingSpeak網路服務提供一個RESTful API來上載資料,讓您可以從MATLAB直接存取。如果使用者想從Arduino、Raspberry Pi,或是從BeagleBone Black連接網路上載數據資料,請參考前面介紹的”開發及測試物聯網系統的端點裝置”。當數據資料已經在ThingSpeak中時,您可以透過整合的MATLAB引擎進行線上分析,或者利用桌機版本的MATLAB搭配ThingSpeak支援來進行離線分析。

如果資料是儲存在資料庫或私人的雲端系統、或其他帶有網路API的資料整合器,您仍然可以使用資料庫工具箱(Database Toolbox™)或MATLAB內建的網路服務指令從MATLAB存取資料。資料庫工具箱幫助您利用SQL指令存取任何儲存於ODBC-compliant及JDBC-compliant資料庫的資料。MATLAB還提供webread及urlread的指令,讓您可以輕鬆地從其他的網路服務檢索資料。

相關應用支援及成功範例
ThingSpeak簡介(影片)
基於Arduino的氣象站資料存取與分析
使用webread讀取RESTful網路服務內容


三、分析物聯網感測器資料並建立預測演算法

MATLAB可以用來分析物聯網感測器的資料。當IoT解決方案愈來愈多,所獲得的感測器資料量也隨著大幅增加,要從龐大資料中獲得見解就不見得輕鬆容易了。分析歷史資料常被當成是了解當前即時資料的第一步。您可能會將這些資料做一些基礎的統計分析來找出異常值,也可能會需要透過移除不好的資料點及過濾雜訊來清理資料。

當您對數據資料更加熟悉,您可能會想嘗試預測未來的資料。這項工作可以透過機器學習(machine learning)的技巧來達成。機器學習演算法是使用數值運算的方法直接從數據資料"學習",而不需要先假設一個預定方程式作為模型。當可用來學習的樣本數增加,機器學習演算法的表現也會跟著自適應地改善。

MATLAB, 訊號處理工具箱(Signal Processing Toolbox™)及統計與資料學習工具箱(Statistics and Machine Learning Toolbox™)提供各式函式讓您可以進行資料過濾及重新取樣、基礎統計應用,以及使用包含分類(classification)、迴歸(regression)、及分群(clustering)分析等機器學習技巧,這些均為IoT應用常見的任務。如果您需要處理龐大的資料集,MATLAB也支援大數據(big data)應用。

相關應用支援及成功範例
以能源負載預測為例,利用MATLAB資料解析功能進行以數據主導的洞察力分析
分析Uber駕駛分享的GPS資料
利用MATLAB進行資料解析,從大量工程資料產生見解