##0.はじめに
前回の続きです。今回はBluemixとRaspberryPiを設定し、MQTTの接続確認を行います。
##1.必要なもの(今回準備したもの)
項目 | 数量 | メモ |
---|
##2.参考にさせていただいたところ
Nodejs & raspberry pi でLEDをチカチカさせる
IBM Internet of Things Foundation (Node.js クライアント・ライブラリー)
##1.(Bluemix側)Node-REDによるMQTTの設定
①ダッシュボード画面から下図の赤枠部分にあるリンクをクリックする。
②下図の Go to your Node-RED flow editor
をクリックする。
クリックすると、Node-REDが起動します。(初期時点では、下図のようなノードが配置されています。)
③下図のように範囲指定して”Delキー”を押すことで、今回は使用しないノードを削除する。
④ IBM IoT App In ノードをダブルクリックして、プロパティを表示する。
⑤下図の赤枠部分を変更する。
Authentication項目では、 "Bluemix Service" を指定する。
Device ID項目では、前回のInternet of Things Platformで設定した "sensor001" を入力する。
Name項目では、今回は "センサ情報取得"としました。
その他は、デフォルトのままとして、OKボタンをクリックする。
⑥Node-REDの変更をデプロイ(設定反映)する。
画面の右上にある"Deploy"ボタンをクリックする。
エラーが無く正常に反映できると、次のメッセージが出力されます。
##2.(Raspberry Pi側)Node.jsのインストール
①Node.js導入ファイルをダウンロードする。
pi@raspberrypi ~ $ wget https://s3-eu-west-1.amazonaws.com/conoroneill.net/wp-content/uploads/2015/02/node-v0.12.0-linux-arm-pi.tar.gz
②ダウンロードしたファイルを解凍する。
pi@raspberrypi ~ $ tar zxvf node-v0.12.0-linux-arm-pi.tar.gz
③解凍したファイルを/usr/localにコピーする。
pi@raspberrypi ~ $ sudo cp -pR node-v0.12.0-linux-arm-pi/* /usr/local/
④nodeコマンドが動作するか確認する。
v0.12.0が表示されれば動作しています。
pi@raspberrypi ~ $ node -v
v0.12.0
⑤node.js用のパッケージを追加する。
今回作成するプログラムで必要になるnode.js用パッケージを追加する。
pi@raspberrypi ~ $ npm install moment ibmiotf onoff i2c async
##3.MQTT接続用プログラムの作成&接続確認
①MQTT接続サンプルプログラムを作成する。
var moment = require('moment');
var Client = require("ibmiotf").IotfDevice;
var config = {
"org" : "XXXX", //前回のIBM Internet of Things Foundation画面で表示された組織IDを設定
"id" : "sensor001", //前回のIBM Internet of Things Foundation画面で指定したsensor001を設定
"type": "raspi01", //前回のIBM Internet of Things Foundation画面で指定したraspi01を設定
"auth-method" : "token",
"auth-token" : "XXXXX"//前回のIBM Internet of Things Foundation画面で表示された認証トークンを設定
};
var client = new Client (config);
client.connect();
client.on("connect", function () {
var nowtime = moment().format("YYYY-MM-DD HH:mm:ss.SSS");
var temp_v = 25.0
var humid_v = 40.0
var press_v = 1000.0
payload = JSON.stringify({d : { timestamp : nowtime, temp : temp_v, humid : humid_v, press : press_v }});
client.publish ("eid", "json", payload);
});
②MQTT接続サンプルプログラムを実行する。
pi@raspberrypi ~ $ node mqtt.js
④Node-RED側で受信していることを確認する。
下記の赤枠のようにJSON形式のデータが受信できていれば、成功です。
⑤MQTT接続サンプルプログラムを停止する。
node mqtt.jsが実行中となっているため、Ctrlキーと "C"を同時押しして、強制終了させます。
以上で、MQTTの接続確認は完了です。
次回(その7)は、MongoDBにデータを蓄積する部分を実装します。