Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

話題のNode-REDでIoTアプリを作ってみよう

5,292 views

Published on

Node-REDは、IoTアプリを簡単に作るために開発されたオープンソースソフトウェアです。
現在は、IoTアプリに限らず、さまざまなアプリケーションの開発に利用されています。
このセッションでは、IBMのパブリッククラウド「Bluemix」や「SoftLayer」を活用して、
Node-REDで実際にIoTアプリをどのように作成すればいいのかについて解説します。

Published in: Technology
  • Be the first to comment

話題のNode-REDでIoTアプリを作ってみよう

  1. 1. 話題のNode-REDでIoTアプリを 作ってみよう
 ∼ SoftLayerとBluemixで試してみよう ∼ 2015.12.09 初版 2015.12.21 更新 ⽇本アイ・ビー・エム株式会社 クラウド・エバンジェリスト 北瀬公彦
  2. 2. text © IBM Corporation 2 更新履歴 変更⽇ 変更概要 2015年12⽉9⽇ 初版 2015年12⽉21⽇ プロビジョニングスクリプト変更に伴う変更(Mongo DB Nodeの追加とサービスの起動)
  3. 3. 北瀬 公彦 KIMIHIKO KITAsE http://blogs.itmedia.co.jp/kkitase @kkitase ⽇本IBM勤務 (前職: Citrix Systems) マーケティング兼クラウドエバンジェリスト IBMクラウド(SoftLayerやBluemixなど)を担当 OSS / クラウドコミュニティ⽀援にも従事(XenServerや Apache CloudStackなど) 仮想化、クラウド関連の記事執筆、講演多数 facebook.com/kkitase
  4. 4. text © IBM Corporation 4 2020年までにネットに接続するデバイスは、500億 を超える 出典: ncta, GROWTH IN THE INTERNET OF THINGS https://www.ncta.com/broadband-by-the-numbers
  5. 5. text © IBM Corporation 5 スマートハウスの例 出典: The Internet of Thinks, http://www.bloombergview.com/quicktake/internet-things ワイヤレスオムツ オムツが濡れてき たこをと知らせる ガーデニング 湿度をモニターし、 ⽔が必要なタイミ ングを知らせる 家具メンテナンス ⽔漏れがおきてい ることを知らせる 家電センサー 乾燥機にいれるタ イミングを知らせ る アラーム 煙がでていることを 伝える 照明 部屋に⼊ったときに⾃動的 に明かりをつける ⼦供、⾼齢者ケア 侵⼊者があれば、ドアセン サーがアラームをあげ、 SMSを送る スマートエアコン リモートから、部屋の エアコンをコントロー ルする スマートキッチン オーブンがセットした時 間がくれば、SMSなどで 知らせる
  6. 6. text © IBM Corporation 6 ちょっと考えてみてください… ○○が、 ○○に、 ○○と話す
  7. 7. text © IBM Corporation 7 例えば… – ⾞が、駐⾞場に、シャッターを開けてと話す – 家のカメラが、スマホに、侵⼊者ありと話す – 不在ボックスが、宅配便がついたら、スマホに、教えてくれる – ビニールハウスが、スマホに、湿度と温度が⾼くなったから、窓をあ けるようにと教えてくれる – 体重メーカーが、スマホに肥満度指数を教えてくれる – ⾃動販売機が、スマホに気温や湿度をみて、本⽇のお勧めの飲みもの を教えてくれる
  8. 8. © IBM Corporation 8 実際にIoTを活⽤した事例
  9. 9. © IBM Corporation 9 事例紹介:
 ⽇本IBMらが「天狗舞」で有名な⾞多酒造や、
 「満寿泉」で知られる枡⽥酒造店の協⼒を得て、
 ⽇本IBMらが進めている⽇本酒輸出の実証プロジェクト
 
 ⽇本酒を世界中でおいしく
 呑めるなんて、うれしい!
  10. 10. text © IBM Corporation 10 ⽣産管理からクラウド分析まで、
 ITをフル活⽤して攻勢に出る⽇本酒 – 背景 • 輸出している途中で商品の⽇本酒が紛失し たり、偽造品にすり替えられることを防⽌ – 解決策 • 酒瓶⼀つひとつに貼ってある紙のラベルに、 ICタグを埋め込み、流通経路のトレーサビ リティーを確保 • 各タグから送られてくるデータは、IBMの クラウド・サービスSoftLayerに収集され、 グローバル規模でのデータ管理
  11. 11. text © IBM Corporation 11 ⽇本酒物流可視化プロジェクト – 真贋タグ (新規開発) と温度管理ロガー、QRコード等をクラウド上でデータ連携 – EPCコード(商品識別⽤)体系上の⼀貫した採番を国を跨いだクラウド環境で利⽤
  12. 12. text © IBM Corporation 12 利⽤したタグ、リーダー・クラウド n  真贋タグ(凸版印刷㈱様作成RFID) n  温度ロガー(市販品から) n  QRコード印字 n  箱タグ n  ガン型(国内:ATID880) n  スマートフォン・パッド l  搬送効率の良いRFID読み取り n  ガン型(タイ:ATID870) l  RFID読み取り(業務⽤汎⽤) l  QRコード読み取り(⼀般⼈) l  偽物のチェック・プロテクト l  温度変化のチェック l  ⼀般ユーザーへの情報提供 l  箱単位の管理  ※これはイメージです n  パブリッククラウド環境とグローバル・データ・フォーマット + EPCコード体系 タグリーダー&アップローダープラットフォーム  ※これはイメージです n  PC l  アップロード⽤SW&USB n  ⾞型(慶応⼤学様作成)
  13. 13. text © IBM Corporation 13 タイへ⽇本酒を輸出した時の流れ わざと真贋タグを切る 真贋タグ他を セットする ガンタイプでRFIDの読み取り 輸出待ち倉庫 空港エリア 真贋タグ他を、出荷時点で、  最初のデータとして読み込む ULD搭載 複数物流業者 ⼀時保管 6/22 〜 6/23の2⽇間で各酒造から出荷作業、輸出待ち倉庫で合流、そして空港へ
  14. 14. text © IBM Corporation 14 タイへ⽇本酒を輸出した時の流れ タイ最新鋭⾷品⽤倉庫 ホテル オークラ会場 保税 エリア 温度変化をアップロード       RFIDの読み取り スマホでQRを読む ⼀時保管 ⼀時保管 通関がなかなか通らず保税エリアにて⻑期に滞留、 そして7/9の⼣⽅に倉庫⼊庫(当初予定は7/3⽬標)、7/10報告会
  15. 15. text © IBM Corporation 15 基本の物流状況の情報の可視化を⾏う「箱タグ」 どのタイミングでどこを通過したのか?(ルートは正しい? 想定外のルート? 滞留は?)
  16. 16. text © IBM Corporation 16 どの区間で破られたのか?がわかる
  17. 17. text © IBM Corporation 17 輸送中の温度変化は? レストラン到着時 出庫時〜⽇本の空港  タイ空港?  タイ保税エリア(⻑期)
  18. 18. text © IBM Corporation 18 遠いからこそ消費者とシェアする⼊り⼝としてのQRコード
 そして+α お酒基本情報 と他へのリンク 温度トレース情報 ⾷べ合わせ
 お薦めレシピ情報 企業のFacebook
  19. 19. © IBM Corporation 19 事例紹介:
 株式会社データ・テック 
 ⾞の運⾏データをSoftLayerに集めて 解析、管理や教育に役⽴てる
  20. 20. © IBM Corporation 20 普段の運転振り SR運転診断書 振 り ⼦ の 揺 れ を 点 数 化    や さ し い 運 転 は ⾼ 得 点 「運転のくせ」を 教えてくれます! SRは、 「事故に遭いにくい運転操作」 を導きます! ヒヤリハット 発⽣すると 振り⼦が⼤きく揺れる!! 「いつ」「どこで」「どんな操作」 をしたかを発⽣地点の地図で確認可能 セイフティ・レコーダーとは
  21. 21. © IBM Corporation 21 SR-WEB解析システム(概要) <⾞両側> ・運⾏データ送信 ・位置データ送信 <現地PC> ・⽇報データ閲覧 ・安全運転確認書印刷 ・集計データ閲覧等 <⽇本国内PC> ・⽇報データ閲覧 ・安全運転確認書印刷 ・集計データ閲覧等 SR-WEB解析システムはクラウドサーバーに構築されており、 ⾞載機データは、3G通信でリアルタイムに転送されます。
  22. 22. © IBM Corporation 22 ⾛⾏データ 速度チャートなどの⾛⾏データを表⽰・印刷することができます。
  23. 23. © IBM Corporation 23 運転診断 運転診断結果を表⽰・印刷することができます。
  24. 24. © IBM Corporation 24 ⾛⾏軌跡 1分毎の⾛⾏履歴を表⽰することができます。
  25. 25. © IBM Corporation 25 現在位置 1分毎の⾛⾏履歴を表⽰することができます。
  26. 26. © IBM Corporation 26 ⼀覧集計 1か⽉の運⾏データの⼀覧と集計ができます。
  27. 27. © IBM Corporation 27 実際に試してみたいと思いませんか
  28. 28. © IBM Corporation 28 IoTの典型的なアーキテクチャ センサー センサー デバイス デバイス MQTT サーバー アプリケー ション パブリッシャー サブスクライバー 代表的なブローカー ・IBM MessageSight ・Mosquitto ・Apache Apollo など ブローカー 鉄板構成 ・Node.js ・MongoDB BLE MQTT MQTT MQTT ビッグ データ クラウド モバイル
  29. 29. © IBM Corporation 29 IBM Bluemixで試してみよう
  30. 30. © IBM Corporation 30 Bluemixで試してみよう IBM IoT Foundation MQTT サーバー IBM Bluemix Node-RED Node.js Cloudant (NoSQL) センサー (ダミー) MQTT MQTT HTTP ブラウザー WebSocket 気温や湿度を収集(デ モではダミー・データ を送信) 設定気温以上になると ツイッター、SMSで 通知 センサーから得られたデータはDB に蓄積し、ブラウザー画⾯へ⼀定 間隔で反映(WebSocketを使⽤) パブリッシュ サブスクライブ MQTTクライアント MQTTクライアント 外部サービス Twitter TwilioHTTP Bluemix IoT
 Boilerplates
  31. 31. text © IBM Corporation 31 デモ – 温度、湿度、表⾯温度をトラッキング – 加速度センサーにより、傾きをトラッキング
  32. 32. © IBM Corporation 32 IBM SoftLayerで試してみよう
  33. 33. © IBM Corporation 33 Node-REDとは nodered.org groups.google.com/forum/#!forum/node-red twitter.com/nodered github.com/node-red/node-red – 2013年に IBM Emerging Technologyで、 オープンソースプロジェクトと して開発 • Nick O'Leary @knolleary • Dave Conway-Jones @ceejay
  34. 34. © IBM Corporation 34 http://ibm.github.io
  35. 35. text © IBM Corporation 35 nodered.org IoTアプリを作る為の ビジュアルツール ※IoTアプリ以外の開発もできる 簡単にインストー ルできる
  36. 36. text © IBM Corporation 36 nodered.org ブラウザーベースの フローエディター Node.jsで 書かれている
  37. 37. text © IBM Corporation 37 nodered.org フローをエクスポー トして共有できる ⾊々なノードを利⽤ することができる
  38. 38. © IBM Corporation 38 Node-REDとMQTTブローカーをSoftLayer上のサーバーに いれてみる センサー センサー デバイス デバイス MQTT サーバー アプリケー ション パブリッシャー サブスクライバー Mosquitto ブローカー BLE MQTT MQTT MQTT Node-RED Node.js 今回は同じサーバー
  39. 39. text © IBM Corporation 39 SoftLayer でサーバー(ブローカー兼Node-RED)を作成 – SoftLayer 上で下記スペックの仮想インスタンス(Virtual Server (public node))を 作成 – 仮想インスンタスが作成されても、プロビジョニングスクリプト完了に数分かか ります。ログイン時に”Provisioning was successful.”と表⽰されるまでお待ち下さい。 Data Center TOK02 - Tokyo Operating System CentOS 6.x - Minimal Install (64 bit) Advanced Monitoring None Monitoring Host Ping Response Automated Notification Provisioning script https://raw.githubusercontent.com/kkitase/softlayer-provisioning-script/master/ centos-nodered (MQTTブローカー ”mosquitto”、Node-RED等をインストールするプロビジョニングス クリプト) Host Name 任意(例: nodered) Domain Name 任意(例: handson.jp) インストール手順は ここをみてください
  40. 40. text © IBM Corporation 40 mosquitto(ブローカー)の起動とテスト 1.  Mosquitto(ブローカーサービス)をインストール cd /etc/yum.repos.d wget http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-6/ home:oojah:mqtt.repo yum install mosquitto -y /usr/sbin/mosquitto & chkconfig mosquitto on 2.  Mosquitto_client(パブリッシャー)をインストール yum install mosquitto-clients -y 3.  Mosquitto(ブローカーサービス)の起動 /usr/sbin/mosquitto 2. 別のターミナルで、Subscribe するクライアントを⽴ち上げておきます。トピックは “hello” としておきます。 mosquitto_sub -d -t hello 3. 別のターミナルから、メッセージを Publish してみます。 mosquitto_pub -d -t hello -m "Hello World” 4. Subscribe している側にメッセージが送信されたのが確認できます。 Client mosqsub/13885-nodered4. received PUBLISH (d0, q0, r0, m0, 'hello', ... (11 bytes)) Hello World!!! こ こ ま で プ ロ ビ ジ ニ ン グ ス ク リ プ ト で 完 了 済 み
  41. 41. text © IBM Corporation 41 Node-REDの起動 1.  Node-REDのインストール yum install epel-release -y yum install nodejs npm --enablerepo=epel -y 2.  基本的なNodeのインストール npm install -g node-red npm install -g node-red-node-mongodb npm install -g node-red-contrib-mongodb2 3.  node-redを起動 node-red & 4.  node-redにアクセス http://<IP address>:1880 こ こ ま で プ ロ ビ ジ ニ ン グ ス ク リ プ ト で 完 了 済 み
  42. 42. text © IBM Corporation 42 メッセージの受信を試してみよう MQTTブローカーからの メッセージinputノード debugノード MQTTブローカーの 登録 最後にDeployボ タンを押すのを 忘れずに
  43. 43. text © IBM Corporation 43 メッセージの受信を試してみよう ターミナルで、パブリッシャーから、”Hello World”を送信 mosquitto_pub -d -t hello -m "Hello World" Node-REDのdebugノードで、正しく出⼒されたか確認
  44. 44. text © IBM Corporation 44 ノード (Node)とは
  45. 45. text © IBM Corporation 45 inputノード Debug ノード Function ノード スイッチ ノード Social ノード フロー (Flow)とは
  46. 46. text © IBM Corporation 46 もっと⾯⽩いノードないの? たとえば npm install –g node-red-contrib-slack npm install -g node-red-bluemix-nodes node-redの再起動 https://www.npmjs.com/browse/keyword/node-red http://flows.nodered.org
  47. 47. text © IBM Corporation 47 フローをインポートもできる http://flows.nodered.org
  48. 48. text © IBM Corporation 48 フローのインポート
  49. 49. text © IBM Corporation 49 Node-REDユーザー会 https://www.facebook.com/groups/noderedjp https://nodered.jp(未完成) –  User Groupの概要 –  公式ドキュメント翻訳 –  nodered.orgへの導線 https://github.com/node-red-jp –  User Group Webサイトリポジトリ –  nodered.org&Qiita監視flowなど http://qiita.com/tags/node-red –  nodeやflowの活⽤例の投稿 –  User Group WebサイトからQiita APIで取得 代表の古城さん http://www.slideshare.net/joeartsea/nodered-user-group-japan より
  50. 50. IBMクラウドコミュニティ jslug.jp softlayer.connpass.com softlayer.doorkeeper.com facebook.com/groups/jslug info@jslug.jp youtube.com/user/softlayerjp twitter.com/softlayerjp qiita.com/tags/softlayer ja.stackoverflow.com/questions/tagged/softlayer bmxug.doorkeeper.jp ibm.biz/bluemixug qiita.com/tags/bluemix ja.stackoverflow.com/questions/tagged/bluemix
  51. 51. Accelerating Digital Business

×