#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

提供符合產業發展的課程內容,是曾益慧創賦能高校工程教育的手段之一

。近幾年以來,IoT一直是一個非常熱門的技術,它已經被運用到了包括智能家居、醫療保健、農業以及交通運輸等許多應用中。在一個萬物互聯的時代,IoT系統被快速地開發和運用到不同的領域中,IoT工程師需要具備一系列的技能來快速設計和開發IoT系統。那麼我們如何來培養這些面向未來的IoT工程師呢?這篇文章中給出了一些開發IoT系統需要學習的重要技能,並且在一個特別設計的IoT系統教學實驗中體現了對這些技能的培養和運用。

1 - IoT系統的組成部分和應用協議?

針對不同的應用場景,IoT的架構和實現會有所不同,但是基本上IoT可以被描述為一個分佈式的智能系統。智能系統是一個具有傳感、處理和通信能力的設備。這些智能系統間,通過一個服務器、雲、或者是直接地進行通訊,以完成特定的任務。

參考2015年IEEE的一篇題為“Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications”的論文(2317 Paper Citations,5 Patent Citations,99713 Full Text Views),作者在文章中討論了IoT應用系統的不同組成部分以及其中可以被使用的不同通訊協議。基於文章中作者討論到的這些不同元素,下圖突出展現了一個普遍的IoT系統中所具有的不同特性。

#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

IoT系統中的智能設備通常通過設備的產品序列號或者是IP地址被識別出來。另外,這些智能設備需要包含不同的傳感器或者執行器,比如需要一個慣性模塊單元(IMU)來測量加速度。而且,這些IoT系統中的設備所使用的處理器也可能是不一樣的,比如雲服務器可能是使用運行在Intel處理器上的Windows操作系統,然後其中的智能手機可能會使用基於ARM架構處理器的Linux或者Darwin系統。通訊協議用來把所有的設備連接在一起,比如通過Wi-Fi網絡的UDP。另外,通訊協議也有可能直接被實現或者通過中間件實現。

有許多不同的通訊協議被用來實現IoT系統。NI在一篇名為“A Practical Guide for Connecting LabVIEW to the Industrial IoT”的文章中廣泛討論了IoT應用中的各種主流通訊協議,比如HTTP,Web Socket, Data Distribution Service(DDS),Message Queuing Telemetry Transport(MQTT),和Advanced Message Queuing Protocol(AMQP)。這些協議在網絡協議(TCP/IP或者UDP)、服務率質量、安全性和消息系統上都有所不同。

在機器人、控制系統和機電一體化應用中,一個主要的要求是實時或者接近實時的性能。所以,在這一類的IoT系統中的智能設備之間的消息讀寫速度需要在ms到us的範圍內。這就使得DDS和MQTT兩個協議,在機電一體化相關的IoT應用中,得到了廣泛的應用。

而基於Web的協議,比如HTTP、Web Socket或者AMQP對於機電一體化的IoT應用而言,顯得太慢和不穩定。而對於DDS和MQTT兩個協議而言,在實現機電一體化IoT應用時,也有各自的優勢和適用場景:MQTT的可擴展性和容量會更好,但是由於MQTT是一箇中心化的協議,對Broker的依賴很強,如果Broker出現問題,將導致整個IoT系統癱瘓;DDS的優勢在於節點間的通訊性能和可靠性,由於DDS是一個去中心化的協議,節點和節點之間可以實現直接通訊,所以系統中的一個或者多個節點出現問題,並不一定會導致整個IoT系統癱瘓,這也使得節點和節點間的通訊有更快的響應時間。

#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

2 - 基於myRIO和QUBE實現MQTT IoT系統教學實驗

接下來,我們將利用myRIO和QUBE-Servo 2實現一個基於MQTT的IoT系統,這個IoT系統中包含2個被控制的倒立擺對象。這個IoT系統的架構如下圖所示:

#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

這個IoT系統包含了4個節點:Broker節點、控制節點、Servo節點0和Servo節點1,其中Broker節點和控制節點運行在同一臺計算機上(也可以運行在不同計算機上)。

這個IoT系統要實現的目標是驅動倒立擺起擺(擺杆初始位置是在最下端,懸掛)到豎直倒立位置,一旦擺杆平衡,把擺杆下面的旋轉臂旋轉到70度位置。下面圖中的有限狀態機展示了這個IoT實驗的設計思路。

#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

如果用戶把擺杆下面的旋轉臂旋轉到中心位置,則控制旋轉臂旋轉到-70度位置停留。如果其中的一個倒立擺擺杆失去平衡,則使得兩個倒立擺的平衡控制器都失效,一旦兩個擺杆都靜止不動後(回到初始狀態),起擺動作再次開始,即狀態機中的DOWN,SWING UP,MOVE和STOP流程再次開始啟動。

控制節點和每一個Servo節點的指令更新時間是10ms,並不需要達到非常實時的性能。每一個Servo節點通過一個myRIO實現起擺和平衡控制器,myRIO基於運行在雙核ARM Cortex-A9處理器上的Linux實時操作系統以250Hz(4ms循環速率)速率來運行起擺和倒立擺平衡控制器。

在這個IoT系統場景中,“Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications”論文中討論的IoT應用系統的不同組成部分基本都涵蓋到了。

#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

每一個Servo節點的識別通過IP地址實現,這個場景中的智能設備是QUBE-Servo 2 + myRIO。QUBE-Servo 2中包含一個直流電機來驅動擺杆下面的旋轉臂,旋轉臂和擺杆的偏轉角度通過編碼器來測量得到。QUBE-Servo 2上還有一條LED燈帶來表現設備的狀態。QUBE-Servo 2直接連接到包含了以太網/USB和Wi-Fi連接方式的myRIO嵌入式平臺上。Servo節點運行在myRIO處理器上,控制節點運行在計算機的CPU(Intel或者AMD處理器)上,每個節點間的通訊消息通過TCP/IP網絡協議完成。MQTT的通訊機制通過Quanser專門開發的中間件軟件“郵政服務”來實現,這是一個類ROS的框架。

#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

上圖中展現了該IoT系統中的MQTT消息傳遞。控制節點從Broker節點上訂閱了傳感器數據主題,並且基於傳感器得到的測量結果發佈指令主題。控制節點可以接收到所有連接到Broker上的Servo節點的傳感器數據。Servo節點發布的旋轉臂和擺杆的測量位置,是通過Broker上的傳感器數據主題訂閱實現的。在這個IoT系統中控制和Broker節點都是運行在同一臺計算機上的,當然Broker也可以運行在一個雲服務器上,這樣就可以通過雲來傳遞每個節點間的消息。

#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用

上圖中對指令主題和傳感器主題的數據結構進行了說明。傳感器數據主題中,包括旋轉臂和擺杆的測量位置以及擺杆的能量。指令主題中包括了使能信號、用於控制直流電機的電壓或者指令以及LED燈帶的顏色信息(用於表明QUBE的狀態)。


3 - 這個MQTT IoT系統教學實驗的學習產出

開發一個與機電一體化或者控制系統相關的IoT應用系統,需要掌握許多的技能,比如:

1. 儀器使用:知道如何使用LabVIEW通過myRIO和QUBE-Servo 2進行交互,包括知道如何通過軟件校準位置編碼器和直流電機等;

2. 建模和控制系統設計:如何設計和基於擺杆平衡控制器實現起擺及狀態反饋控制;

3. 快速控制原型軟件:對於機電一體化的IoT應用,在諸如MATLAB/Simulink和LabVIEW的軟件平臺中實現控制算法是很常見的情況,可以節省在編程方面花費的精力;

4. 嵌入式系統:在這個IoT系統中,myRIO被用來處理和傳輸傳感器的數據,其他的一些微控制器,例如樹莓派或者Arduino也有可能被使用。瞭解這些控制器的使用非常重要;

5. 程序設計:使用諸如有限狀態機(FSM)的編程設計技術來設計IoT應用;

6. 網絡:知道不同的網絡拓撲結構並且知道如何搭建它們。在這個IoT系統中,涉及到了如何搭建和配置一個基於TCP/IP的網絡系統來連接所有不同的設備;

7. IoT應用通訊協議:學習如何使用MQTT通訊協議,包括決定主題的結構,用中間件來編程MQTT,以及設置不同的節點。

進一步擴展,還可以在這個IoT系統中,引入諸如關於網絡安全的問題。由於這些平臺(myRIO,QUBE-Servo 2)的開放架構,使得它們可以被自定義二次開發,比如實現諸如SSL或者TLS的安全協議應用。


本文內容參考文獻資料:

[1] Quanser's perspectives on Internet of Thinks for academic applications, Michel Levis M.A.Sc., Applicaiton Engineer, Quanser

[2] Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications, Al-Fuqaha, Guizani, Mohammadi, Aledhari, & Aledhari, 2015

[3] A Practical Guide for Connecting LabVIEW to the Industrial IoT, National Instruments


關於曾益慧創:

曾益慧創(IECUBE)致力於培養創新工程科技人才,是聚焦產教融合的工程教育綜合服務提供商,通過結合先進技術的教學形式、提供符合產業發展的課程內容和賦能人才培養的生態體系,服務工程教育需求。


#物聯網 #智能設備 用myRIO和QUBE構建IoT教學應用


作為NI在院校行業重要的解決方案合作伙伴,曾益慧創圍繞NI技術平臺,形成了一系列覆蓋工科基礎教學、學生創新實踐、工程實訓及科教結合的完整解決方案。


分享到:


相關文章: