Raspberry Pi 與Container的邂逅

連結後的container

今天要來分享時下最夯的物聯網議題,如何讓Raspberry Pi 與NAS結合建立自己的私有雲並且創造出更多IOT應用,以下將以RPI作為Raspberry Pi的簡稱。

在介紹之前,先來看看事前準備,需要準備哪些東西:

硬體上的需求有: RPI-2 * 1、QNAP-NA S* 1、以及所擁有的感測器(Sensor)。

軟體上的需求:RPI-SDK、

硬體上採用QNAP-NAS是因為QNAP提供了QIOT的平台以及Container,其中Container是目前相當火紅的議題,因為它不像VM需要每次都安裝OS因此安裝上便利許久,且在Linux的環境下即可建置完成,由於QNAP-NAS提供了這兩項元素,因此採用QNAP-NAS當作我們的Container;接下來我們將分別介紹RPI的建置與QIOT的連結以及最後如何讓兩樣東西連結一起後做出IOT應用實例。

 

首先,我們先將RPI的環境建置完成,可以到官網下載NOOBS,並且解壓縮至RPI上的SD卡上,接著將RPI接上電源就會開始進入安裝RPI的OS了。安裝完成後,如果有網路線直接插上去,RPI會自動抓到網路。

為了使用方便,我們將設定SSH,方便透過電腦遠端至RPI,遠端教學可以參照此篇RPI-SSH設定。當一切就緒之後,剛剛有提到QNAP有提供QIOT平台,方便建立Container外還提供了Node-Red方便連結到你的裝置(ex:RPI),因此我們先在RPI裝Node-js,這邊我們以Node-js 10.028版本為主,安裝完成後,會出現這個畫面圖1,代表安裝成功。

node_js_安裝成功

圖1 Node-js 安裝成功於RPI

接下來安裝所使用的感測器,這邊所使用的是GrovePi的感測器,因此需要安裝幾個node-grovepi、node-grovepi blessed、node-grovepi blessed-contrib、node-grovepi mqtt。到這邊,RPI的環境建置算是告個段落,緊接著就是介紹QNAP-NAS的環境建置。QNAP-NAS的官網有提供NAS的基本安裝的方式,這邊我們將介紹如何安裝QIOT-Containers,安裝好後會看到此漂亮的畫面,圖2所示。

container

圖2 QNAP_Container安裝完成

接著在Container安裝MQTT、Node-Red,在安裝MQTT時須設定網路關係,將它改成Host並且Port設定為1883,在Node-Red設定中將Port改成1880,如圖3所示。

mqtt_portnode_port

圖3.     (a)mqtt_port 設定為Host                          (b)Node_Port設定為1880

 

我們現在已經把兩邊的環境都建置完成,接下來就把整個串聯在一起,這邊在RPI寫一個簡單的Node-js的程式連結至Container透過Node-Red讀取。

這邊我們將示範 一個簡單的Node-js的範例,其功能就是把再RPI面寫一個連結到NAS的程式,其程式碼如圖4所示

Node_範例

圖4 Node_RPI.js 範例程式

當程式完成後,接著要來拉Node-Red的元件,開啟我們的Container並且點選Node-Red,會看到有一個鏈結,點下去之後會跑出像圖5的畫面

Node_red

圖5 Node-Red開啟的樣子

接著我們拉兩個元件為mqtt、debug,其中mqtt這個元件就是把剛剛我們設定的Port、IP位置所連結的地方,而Debug是方便我們看是否有接收到RPI所傳的資訊,當執行剛剛所撰寫的範例後,可以在Node-Red畫面的Debug上面看到我們所傳的文字如圖6所示,此外我們也可以透過Container的連結情形,來確保我們的裝置與NAS有連接,如圖7所示。

node_連結_RPI  連結後的container

圖6 Node-Red從RPI所傳來的訊息                  圖7. Container的後端連結情況

 

到這邊,介紹了如何把RPI與NAS做連結,如同一開始說的一樣,QNAP的NAS提供的SDK、平台與介面都很友善、很容易操作,這樣就可以建立一個私有雲並在RPI上面做IOT的應用,透果與NAS的結合,想做更深入的IoT應用相信更可以得心應手的!

 

Related posts

Leave a Reply