好的!今天就要來跟大家介紹要怎麼樣將RPI連結到IBM的bluemix平台上面拉~~
首先先拿起我們的RPI
在RPI上面要準備東西如下:
-可以順利透過wifi連接網路 (https://www.raspberrypi.com.tw/2152/setting-up-wifi-with-the-command-line/)
-node.js安裝 (http://weworkweplay.com/play/raspberry-pi-nodejs/)
為了方便我都將如何連結的教學網站貼上了~大家可以先搞定這兩個步驟!
接著就是我們的重頭戲啦!
前往IBM所提供的watson給node.js 的github上抓取最新的node module套件!(https://www.npmjs.com/package/watson-developer-cloud)
並且使用linux介面cd至你要放至你等下要寫你的node.js的資料夾中 像我放置在 home/pi/workspace/iot/裡面 我就在linux指令介面上面敲上 cd home/pi/workspace/iot就會到這個資料夾中囉
接著在打上
$ npm install watson-developer-cloud --save
他就開始安裝了
安裝完之後你會看到你的資料夾中多了一個node module的資料夾,這個資料夾就像資料庫一樣,你要安裝任何lib都會跑到這裡來,之後你就可以呼叫你有安裝過的函式來用了~
因為Bluemix的iot服務是透過mqtt去連線,所以我們也要再安裝一個套件就是mqtt的套件
所以在剛剛你安裝 watson的資料夾的那一層再打上
npm install mqtt --save
咻一下~
也安裝好了
好了基本本機的東西弄好了!
接下來上到bluemix網站上面
開始要新增一個裝置讓iot服務可以連結到你的RPI了!
進去bluemix之後我們選擇到上次創建的應用程式中我們可以看到以下的頁面
這裡代表我們的這個應用程式中有兩個服務
一個是iot一個是DB的服務
這時候我們選擇iot的服務
點選進去之後可以看到這個畫面,然後選擇儀表板
會看到我們IOT的總攬畫面,接下來我們選取左邊的第二的選項
然後我們就可以到達這個地方~~我的畫面跟大家不太一樣,因為我已經新增了裝置拉~所以你們下面的欄位基本上是空白了,接著就按下新增裝置
這個頁面就會跑出來我們選取建立裝置類型
打上RPI並且按下一步
這頁我們不用勾選任何東西直接按下一步
一樣!直接下一步
一樣直接建置XD
我們的類型就建立好啦!!RPI就是我們剛剛建立好的類型,這時候我們直接按下下一步
這邊的ID要打上一個不重複的ID看大家要如何去編輯,這部很重要喔!打完後按下一步
最後這一個也是直接按下一步
這裡也是下一步
新增~
這一頁非常的重要啊!!!!!!!!!務必把他截圖下來不要弄丟了啊!不見了就要不回來了QQ這個是待會我們node.js上面程式碼必須要提供的資訊喔!!
好的!我們的裝置新增玩了XD是不是很簡單哈哈哈
一直按下一步而已
接下來我們可以到bluemix的儀表板上做正事了
回到我們剛剛應用程式的頁面,點選紅圈裡面的網址,這就是管理你iot應用程式的地方囉~到哪裡都可以用它登入
接著就會到node red的介面了!
node red 是一個非常好用的圖形化程式介面,操作起來非常簡單,往後我們雲端的程式碼也會在這邊撰寫,那我們就點選下面的按鈕進去的開發頁面
這個頁面就是node red的程式編輯頁面大家可以學我先把其他東西刪光光,這時候我們只需要留下這兩個東西就好了~弄完之後記得按下右上角的佈署,代表更新的意思^^~
一個是iot的input一個是debug用的顯示視窗,debug的顯示視窗代表我們可以看到資訊,如果不拉debug的block的話,程式依然會執行,只是看不到我們的東西而已,就像是C語言中的priontf or cout 或是js中的console.log不加也沒有關係只是看不到東西而已QQ,那我們切到debug頁面
我們可以看到一片空白!!
好雲端上面的準備工作做完了,接著回去你的rpi上面
我們在剛剛安裝兩個套件的資料夾中,創建一個js檔案,也就是寫程式,如果不知道js檔案是什麼意思的人!那!你就先打一個txt檔再把副檔名改成js檔也可以哈哈哈哈
接著在我們的檔案中寫下以下的程式碼,以下有幾個東西是自己要填上去的喔!是上面我說很重要的那張圖裡面有的東西!!組織ID以及鑑別記號,記得不用打小括弧~我讓大家好看才打上去的=ˇ=~
----------------------------------------------------------------------------我是分隔線-------------------------------------------------------------------------------------
var watson = require('watson-developer-cloud');
var mqtt = require('mqtt');
var clientId = ['d', "(組織ID)", "RPI", "(裝置ID)"].join(':'); //RPI的裝置變數
iot_client = mqtt.connect("mqtt://(組織ID).messaging.internetofthings.ibmcloud.com:1883",//連結mqtt伺服器的認證
{
"clientId" : clientId,
"keepalive" : 30,
"username" : "use-token-auth",
"password" : "(鑑別記號)"
});
iot_client.on('connect', function() {//如果連接上的話要做的事情
console.log('Rapiro client connected to IBM IoT Cloud.');
iot_client.publish('iot-2/evt/status/fmt/json', '{"d":{"status": "connected" }}');
//發布一個event至伺服器上並且這個event的名子叫做status面的值為json有一個ID為status,value為connect
}
)
iot_client.on("message", function(topic,payload){
console.log('received topic:'+topic+', payload:'+payload);});
--------------------------------------------------------------------------------------------我是分隔線------------------------------------------------------------------------------
打完之後我們就可以執行這個js檔案啦!!!
執行方法為再linux指令行打上
sudo node 'js檔名'
像我就是打成這樣
接著我們就可以看到
還有!這時候打開你剛剛的node red頁面就可以看到!!!有資訊被傳上來了!
而且就是你剛剛在程式碼中寫上的東西!!
最初步的RPI連結到bluemix iot服務就是這樣啦!!!
之後我們會利用這個東西上傳像是感測器的資料阿~之類的
那讓我們下次見了!
留言列表