LoginSignup
2
2

More than 5 years have passed since last update.

BluemixでIoT 温湿度、気圧を収集・蓄積・可視化+LED制御 その6

Last updated at Posted at 2016-04-11

0.はじめに

前回の続きです。今回はBluemixとRaspberryPiを設定し、MQTTの接続確認を行います。

1.必要なもの(今回準備したもの)

項目 数量 メモ

2.参考にさせていただいたところ

Nodejs & raspberry pi でLEDをチカチカさせる
IBM Internet of Things Foundation (Node.js クライアント・ライブラリー)

1.(Bluemix側)Node-REDによるMQTTの設定

①ダッシュボード画面から下図の赤枠部分にあるリンクをクリックする。
image

②下図の Go to your Node-RED flow editor をクリックする。
image

クリックすると、Node-REDが起動します。(初期時点では、下図のようなノードが配置されています。)
image

③下図のように範囲指定して”Delキー”を押すことで、今回は使用しないノードを削除する。
image

④ IBM IoT App In ノードをダブルクリックして、プロパティを表示する。
image

⑤下図の赤枠部分を変更する。
 Authentication項目では、 "Bluemix Service" を指定する。
 Device ID項目では、前回のInternet of Things Platformで設定した "sensor001" を入力する。
 Name項目では、今回は "センサ情報取得"としました。
 その他は、デフォルトのままとして、OKボタンをクリックする。
image

⑥Node-REDの変更をデプロイ(設定反映)する。
 画面の右上にある"Deploy"ボタンをクリックする。
image

 エラーが無く正常に反映できると、次のメッセージが出力されます。
image

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接続サンプルプログラムを作成する。

mqtt.js
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形式のデータが受信できていれば、成功です。
image

⑤MQTT接続サンプルプログラムを停止する。
 node mqtt.jsが実行中となっているため、Ctrlキーと "C"を同時押しして、強制終了させます。

以上で、MQTTの接続確認は完了です。

次回(その7)は、MongoDBにデータを蓄積する部分を実装します。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2