BMXUG 女子部ハンズオン
女性限定!”クラウド x IoT 勉強会” ラズベリーパイからのセンサー情報を取得しよう
2017.Apr
自己紹介
Twitter: @dotnsf
facebook: https://www.facebook.com/juge.me
Blog: http://dotnsf.blog.jp/
趣味: マンホール
木村 桂(きむら けい)
Bluemix エバンジェリスト
プログラマー
今回のハンズオンで行うこと
MQTT ブローカー
ラズベリーパイ
MQTT
MQTT
用意するもの/前提環境
• IBM Bluemix アカウント
• ウェブブラウザの優先言語は日本語
• Bluemix データセンターは us-south (ドメインは mybluemix.net)を使う
• eu-gb データセンターの場合、ドメインは eu-gb.mybluemix.net となる
• eu-de データセンターの場合、ドメインは eu-de.mybluemix.net となる
• au-syd データセンターの場合、ドメインは au-syd.mybluemix.net となる
• 組織は自分の ID と同じ組織、スペースは dev を使うものとする
• ラズベリーパイ(anyPi)
• SIM カードを使った LTE 通信
• TeraTerm(シリアル接続可能なコンソールアプリケーション)
• http://forest.watch.impress.co.jp/library/software/utf8teraterm/
「ラズベリーパイ」とは?
• 「シングルボードコンピュータ」
• 一枚の基盤にコンピュータの基本機能が搭載
• CPU(1.2GHz 64bit 4コア ARMv8)
• メモリ(1GB)
• ディスクストレージ(MicroSD)
• 電源(MicroUSB)
• グラフィックカード(VideoCore IV 3D)
• 配線
• 拡張インターフェース
• 有線LAN / 無線 LAN / Bluetooth
• ディスプレイ(HDMI)
• USB x 4
• カメラ
• オーディオ
• 40pin 汎用I/O etc..
ここに OS を入れて起動するだけ
5000 円くらい
もともとは教育用コンピュータ
各種センサーを接続して IoT 機器に
通称「ラズパイ」
ラズパイを IoT 機器として使う場合の問題点
• 初期設定
• OS 初期設定
• アプリケーション導入&セットアップ
• ネットワーク(特に無線LAN)
• 設定内容確認
上の2つは設定済みの MicroSD を用意して、
その MicroSD カードを挿して出荷、でもOK
外付けのディスプレイ、HDMI ケーブル、キーボード、マウスが必要
実機ごとに行う必要あり
業務で使えるようなアプリケーションを作って本格運用する場合、
各ラズパイのネットワーク設定をどうやって行う??
anyPi
http://www.mechatrax.com/products/anypi
ラズパイ SIM シリアル アンテナ等
設定無しの通信環境 ノートPCと接続
大まかな流れ
1. IBM Bluemix アプリケーションプロジェクト作成
2. ラズパイ(anyPi)セットアップ
3. Node-RED にDashboard UI モジュールを追加
4. ラズパイの情報を取得する Node-RED アプリを作成
5. ラズパイの情報を Dashboard UI に送信する
この後のページの左上に表示
データセンター地域、組織、スペースを確認
①画面右上の自分の IBM ID 部分をクリック
②データセンター地域、組織、スペースの内容を確認(異なっていたら変更)。
今回は組織は米国南部、組織は自分の ID、スペースは dev を想定。
1. IBM Bluemix アプリケーションプロジェクト作成
アプリケーションダッシュボードに移動
①画面左上のハンバーガーメニューから「アプリ」の「ダッシュボード」を選択
②アプリやサービスの一覧を確認できるダッシュボードページに移動する
1. IBM Bluemix アプリケーションプロジェクト作成
「Node-RED スターター」アプリの作成
①ダッシュボード画面右上の「アプリの作成」をクリック
③固有のアプリ名を入力して、「作成」をクリック
1. IBM Bluemix アプリケーションプロジェクト作成
②ボイラープレート一覧の中から “Node-RED Starter” を選択
Node-RED スターターアプリの確認
①Node-RED アプリが用意できるまで少し待つ ③指定した名前のアプリができたことを確認
④必要であればメモリ量やインスタンス数を調整
1. IBM Bluemix アプリケーションプロジェクト作成
②画面が切り替わったら、「概要」を選択
anyPi を組み立て
2. ラズパイ(anyPi)セットアップ
https://www.youtube.com/watch?v=NhrIYOyh4wc
(参考)ステップ・バイ・ステップ(1)
2. ラズパイ(anyPi)セットアップ
①開封
②内容確認
③MicroSD カードを本体に差込
④3GPi を本体と接続
⑤SIM カード差込(済)
(参考)ステップ・バイ・ステップ(2)
2. ラズパイ(anyPi)セットアップ
⑥アンテナ設置
⑦本体と3GPi を
短いUSBケーブルで接続
⑧3GPi とシリアル基盤を接続
⑨シリアル基盤と PC を
長い USB ケーブルで接続
⑩3GPi と電源ケーブルを接続
シリアル接続でログイン
2. ラズパイ(anyPi)セットアップ
①TeraTerm を起動してシリアルポートのポートを anyPi のものを選択して OK
②メニューの 設定-シリアルポート から
該当ポートのボーレートを 115200 に設定
③ラズパイに電源を接続!
④ID & PW を入力してログイン
※ID & PW はキット同梱のメモ参照
IoT レシピをインストールして、deviceId を確認
2. ラズパイ(anyPi)セットアップ
$ wget https://github.com/ibm-messaging/iot-raspberrypi/releases/download/1.0.2/iot_1.0-1_armhf.deb
(↑本セミナーではここまで実行済みなので、ここは省略)
$ sudo dpkg -i iot_1.0-1_armhf.deb
①以下のコマンドを実行して IoT レシピをインストール
②以下のコマンドを実行して deviceId を確認
$ sudo service iot getdeviceid
Node-RED 編集画面へ移動
3. Node-RED に Dashboard UI モジュールを追加
①Node-RED が実行中であることを確認して URL をクリック
②Node-RED 初期画面で、赤いボタンをクリック
③Node-RED 編集画面が起動
Dashboard UI モジュールを追加(1)
3. Node-RED に Dashboard UI モジュールを追加
①画面右上のハンバーガーメニューから「処理ノードの追加削除」を選択
②「処理ノードを追加」タブで “dashboard” を検索し、
node-red-dashboard の「処理ノードを追加」を選択
③確認ダイアログで “Install” を選択
Dashboard UI モジュールを追加(2)
3. Node-RED に Dashboard UI モジュールを追加
④処理が完了すると、Node-RED 画面のノード一覧(の下の方)に dashboard ノードが追加されている
Node-RED アプリ作成(1)
①キャンバスに IBM IoT のインプットノードを配置
4. ラズパイの情報を取得する Node-RED アプリを作成
②IBM IoT インプットノードをダブルクリックして、
deviceId 欄に P.17 で確認した deviceId を入力して Done
Node-RED アプリ作成(2)
③debug アウトプットノードをキャンバスに追加し、
IBM IoT ノードと線をつなぐ
4. ラズパイの情報を取得する Node-RED アプリを作成
④「デプロイ」をクリックして、一旦実行
⑤ debug タブに情報が流れてくることを確認
Node-RED アプリ作成(3)
⑥IBM IoT ノードと debug ノードの間に function ノードを置く
(線が点線になるタイミング)
4. ラズパイの情報を取得する Node-RED アプリを作成
⑦function ノードをダブルクリックして編集
return {payload: msg.payload.d};
(msg.payload.d の値で payload を
上書きする)
⑧再度デプロイして debug 情報を確認
ラズパイの情報が取得できた!
Dashboard UI に情報を送信する(1)
①function ノードをもう1つ追加し、debug ノードを最後に接続し直す
5. ラズパイの情報を Dashboard UI に送信する
②function ノードをダブルクリックして、
cputemp だけを取り出す内容に変更する
return {payload: msg.payload.cputemp};
③デプロイして、CPU 温度だけが流れてくることを確認
Dashboard UI に情報を送信する(2)
④dashboard の gauge ノードを CPU 温度の最後に追加する
5. ラズパイの情報を Dashboard UI に送信する
⑤Gauge ノードをダブルクリックし、Group と Tab を設定する
(Range も Max を 100 にする)
⑥再度デプロイ
Dashboard UI に情報を送信する(3)
⑦dashboard タブの Site の横にあるボタンをクリック
5. ラズパイの情報を Dashboard UI に送信する
⑧CPU 温度がゲージチャートで表示されることを確認
Dashboard UI に情報を追加する
①(CPU 温度以外の)他の情報も取り出して、適当なUIノードに繋ぐ
5. ラズパイの情報を Dashboard UI に送信する
②デプロイ&リロードすると、追加した UI が反映されることを確認
return {payload: msg.payload.sine};
③ラズパイに負荷をかけてグラフの変化を確認する
例: $sudo apt-get update
完成!
(補足)ラズパイを安全にシャットダウン
①以下のコマンドを入力
②シャットダウンが完了(Power down して LED 消灯)したら
電源ケーブルを抜く。
$ sudo shutdown –h now

ラズパイ × Bluemix IoTハンズオンセミナー