物聯網系統開發
物聯網(Internet of Things, IoT)展現了大量的嵌入式裝置(物品)都連接到網際網路的新趨勢。而這些被連接的設備與人、其他設備進行溝通後,透過感測器將資料儲存雲端上,藉由其上的運算資源進行資料處理及分析,而獲得重要的資訊及見解。而雲端運算能力的日益平民化讓人們負擔得起,再加上設備間的連接程度愈來愈強,使得物聯網蓬勃發展。
物聯網的解決方案可見於許多垂直應用,如環境監控、健康監測、車輛監控、工業監控與住家自動化等。MATLAB® and Simulink®及ThingSpeak,能協助開發IoT系統,如邊緣節點設備(edge node devices)開發、資料的取得及匯集、IoT感應資料分析及傳輸通道模型建立等工作。
IoT系統大致上可藉由上圖更進一步說明
- 圖的左側為端點設備,負責收集數據,如無線溫度感應器、心律監測儀、液壓感應器。
- 圖的中央為數據整合。從各設備端點收集來的數據會在這裡被處理及儲存,進而在分析後針對所輸入數據做出反應。
- 圖的右側為數據的歷史分析。數據經過整合後匯入軟體環境,幫助研究人員從數據中獲得見解,並將分析演算法執行在數據整合器或端點設備上。
一、開發及測試物聯網系統嵌入式裝置
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感測器資料並於雲端進行解析
如果資料是儲存在資料庫或私人的雲端系統、或其他帶有網路API的資料整合器,您仍然可以使用資料庫工具箱(Database Toolbox™)或MATLAB內建的網路服務指令從MATLAB存取資料。資料庫工具箱幫助您利用SQL指令存取任何儲存於ODBC-compliant及JDBC-compliant資料庫的資料。MATLAB還提供webread及urlread的指令,讓您可以輕鬆地從其他的網路服務檢索資料。
相關應用支援及成功範例
ThingSpeak簡介(影片)
基於Arduino的氣象站資料存取與分析
使用webread讀取RESTful網路服務內容
三、分析物聯網感測器資料並建立預測演算法
當您對數據資料更加熟悉,您可能會想嘗試預測未來的資料。這項工作可以透過機器學習(machine learning)的技巧來達成。機器學習演算法是使用數值運算的方法直接從數據資料"學習",而不需要先假設一個預定方程式作為模型。當可用來學習的樣本數增加,機器學習演算法的表現也會跟著自適應地改善。
MATLAB, 訊號處理工具箱(Signal Processing Toolbox™)及統計與資料學習工具箱(Statistics and Machine Learning Toolbox™)提供各式函式讓您可以進行資料過濾及重新取樣、基礎統計應用,以及使用包含分類(classification)、迴歸(regression)、及分群(clustering)分析等機器學習技巧,這些均為IoT應用常見的任務。如果您需要處理龐大的資料集,MATLAB也支援大數據(big data)應用。相關應用支援及成功範例
以能源負載預測為例,利用MATLAB資料解析功能進行以數據主導的洞察力分析
分析Uber駕駛分享的GPS資料
利用MATLAB進行資料解析,從大量工程資料產生見解