今天要來分享時下最夯的物聯網議題,如何讓Raspberry Pi 與NAS結合建立自己的私有雲並且創造出更多IOT應用,以下將以RPI作為Raspberry Pi的簡稱。
在介紹之前,先來看看事前準備,需要準備哪些東西:
硬體上的需求有: RPI-2 * 1、QNAP-NA S* 1、以及所擁有的感測器(Sensor)。
軟體上的需求:RPI-SDK、
首先,我們先將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,代表安裝成功。

圖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所示。

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


圖3. (a)mqtt_port 設定為Host (b)Node_Port設定為1880
我們現在已經把兩邊的環境都建置完成,接下來就把整個串聯在一起,這邊在RPI寫一個簡單的Node-js的程式連結至Container透過Node-Red讀取。
這邊我們將示範 一個簡單的Node-js的範例,其功能就是把再RPI面寫一個連結到NAS的程式,其程式碼如圖4所示

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

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

圖6 Node-Red從RPI所傳來的訊息 圖7. Container的後端連結情況
到這邊,介紹了如何把RPI與NAS做連結,如同一開始說的一樣,QNAP的NAS提供的SDK、平台與介面都很友善、很容易操作,這樣就可以建立一個私有雲並在RPI上面做IOT的應用,透果與NAS的結合,想做更深入的IoT應用相信更可以得心應手的!
沒有留言:
張貼留言