SlideShare ist ein Scribd-Unternehmen logo
1 von 59
mbed LPC1768とBluemixを用
いたIoTプログラミング入門
S.Hanai 2015/4/7
おことわり
本資料の記載内容は、私が個人的に調べた内容であり、正式な日本IBMのテス
トやレビューを受けておりません。内容について、できる限り正確を期すよう
努めてはおりますが、いかなる明示または暗黙の保証も責任も負いかねます。
本資料の情報は、使用先の責任において使用されるべきものであることを、あ
らかじめご了承ください。
概要
献立
 以下の構成でIoTプログラミングを入門する
 mbedのアプリケーションボード(Ethernet Starter Kit)を使用
 IBM Internet of Things FoundationをMQTTのハブとして使用
 アプリケーション構築環境としてBluemixを使用
構成
IBM Internet of
Things Foundation
mbed LPC1768
MQTT/json
Bluemix
アプリケーション
MQTT/json or https/REST(json)
デバイス管理、イベント照会
 IoT用のクラウド・ベースのハブ
https://internetofthings.ibmcloud.com/
 Bluemixもしくは、IBM Marketplace経由で使用できる
 アプリケーションからは、MQTT以外に普通に
https/REST(json)でもアクセスできる
 認証トークンを用いたセキュリティ
 長いので以降IOTFと省略
IBM Internet of Things Foundation
デバイスの準備
ARMとの提携
 Impact2014でARMとの提携を発表
http://developer.mbed.org/blog/entry/IBM-teams-up-with-
mbed-for-IoT-kit/
 キットとして販売されるようだが、実際はhardware自体
はmbedのアプリケーションボードが利用できる(今回の
資料も、これを使用)
http://developer.mbed.org/cookbook/mbed-application-
board
ボードの入手
 アプリケーションボード
今回はスイッチ・サイエンスさんで購入
https://www.switch-science.com/catalog/1276/
 mbed
アプリケーションボードはI/Oしか載っていないので、
mbedも必要。今回は秋月電子さんで購入
http://akizukidenshi.com/catalog/g/gM-03596/
ボードの接続
 向きに注意!
両方の基板に
VOUT/GND/P20/P21のシルク
印刷があるので合わせる
mbedの登録
 mbedはWebブラウザを使ったIDEで開発できるが、これ
には登録が必要
 以下のような参考ページを見て登録して、LED点灯のよ
うな簡単な動作確認をしておく
http://developer.mbed.org/users/nxpfan/notebook/lets_ge
t_started_jp/
QuickStartを用いた動作確認
QuickStart
 IOTFにはQuickStartという仕組みがあり、これを使うと
手早くデバイスの動作確認ができる
mbedの接続
 EthernetをDHCPがサ
ポートされたLANに接続
 USBをPCに接続
アプリケーションボード
側ではなくmbed上の
USB
 USBコネクタのそばの青
色LEDが点灯すれば接続
はok
mbedの認識
 mbedはUSBメモリーとして認識される
Windowsの場合はデバイスドライバが必要とのこと
(https://mbed.org/handbook/Windows-serial-
configuration)
 アプリケーションのデプロイは、このUSBメモリーにア
プリケーションをコピーするだけで行える
IBMIoTClientEthernetExampleのビルド
 以下のページに移動
http://developer.mbed.org/te
ams/IBM_IoT/code/IBMIoTC
lientEthernetExample/
 右上にあるImport this
programをクリック
 mbedの登録が済ませてあれ
ば、ブラウザ上の開発環境
が立ち上がるのでimportを
完了する
デプロイ
 Compileをクリックすると、コンパイルが行われてブラ
ウザのダウンロードで.binファイル
(IBMIoTClientEthernetExample_LPC1768.bin)が落ちて
くる。
 このbinファイルを、USBメモリとして認識されている
mbedにコピーする
なおファイルのコピー中は、USBコネクタ横の青色LED
が細かく点滅するので、この点滅が終わるまで待つ
 コピーが終わったら、mbed基板中央のリセットを押す
 IDEの右上のターゲットが
LPC1768になっていること
を確認しておく
起動確認
 うまくいくとLCDに表示が
行われる
 すぐ右にあるJoystickを下
に倒していくと、他の表示
が見える
 情報提供ページ
起動確認
 デバイスID
重要。控えておく。また他
の人に見られないように。
 Ethernetの接続状況
うまくDHCPからアドレス
が取得できれば、
Connectedとなる
動作確認
 ガイドのページを開く
https://developer.ibm.com/iot/recipes/arm-mbed/
 Visualizeのところにデバイスidを入力する
QuickStartモードでの動作確認
 デモページが表示され
る
 表示されているポテン
ションメータを動かし
たり、本体を揺すって
加速度センサーに情報
を与えると、リアルタ
イムに情報が表示され
る
Internet of Things Foundation(IOTF)へ
の登録
IOTFへの登録
 現在は、IBM Bluemixと、IBM Cloud Marketplaceが選べ
る
https://internetofthings.ibmcloud.com/dashboard/#/signu
p
 現在のところ、BluemixであればFree planというのがあ
るので開発、テスト用にはこちらを使うと良い
 どちらを使っても、IOTFにおける組織(Organization)
コードが変わるだけなので、プログラミング上は変わり
ない
Bluemixを用いたIOTFへの登録
Bluemixからの登録
 Internet of Things Foundation Starterをカタログから選
ぶ
好きな名前を付けて、
作成をクリック
モノのインターネットを追加
 モノのインターネットを追加
アプリケーションとして前ペー
ジで作ったInternet of Things
Foundation Starterを設定
設定
 ダッシュボード上のモノのインター
ネットをクリック
Connect your devicesを選択
IOTFダッシュボード
 IOTFダッシュボードが表示されるのでDevicesを選ぶ
デバイスをIOTFに追加
Add Devicesをクリック
デバイス設定
好きな名前を付ける(組織内で
一意であれば良い)
mbedのLCDに表示された
device IDを入力
デバイス情報の表示
この部分をメモしておく
IOTF情報のデバイスへの設定
 mbedのIDEからmain.cppを開く
ここにメモしておいた値を指定
する(次ページに設定例)。
設定例
// Configuration values needed to connect to IBM IoT Cloud
#define ORG "quickstart" // org=の値
#define ID "" // id=の値
#define AUTH_TOKEN "" // auth-token=の値
#define TYPE DEFAULT_TYPE_NAME // type=の値
デプロイ
 設定を変更したら、Compileをしてダウンロードされた
binファイルをmbedにコピーしてresetボタンを押す
しばらくすると、IOTFのダッシュボード上のインジ
ケータが緑になりデバイスからイベントが上がってき
ていることが分かる
Node-REDでの動作確認
flow editor
 ボイラープレートで作成しておいたInternet of Things
Foundation Starterをダッシュボードで選び、経路の部
分のURLを開く
flow editor
 Go to your Node-RED flow editorをクリック
 デフォルトでフローができているので、IBM IoT App In
をダブルクリックする
処理イベントの選択
動作確認のため全てを受け取るよ
うにする
設定が終わったら右上のDeployボ
タンをクリックする
デバイスイベントの確認
 デバイスの電源が入っていれば
debugペインにイベントが上
がってくる
 これは一番右にある緑の箱
(debug)が出力している
条件を変更してみる
 中央付近にあるswitchをダ
ブルクリック。これは条件
によってフローを変える部
品
 しきい値を40から30に変更
(現在debugペインに報告さ
れている温度より小さくす
る)
条件を変更してみる
 表示がcriticalに変わったこ
とを確認
 これはswitchの結果が
danger側に変わったことが
原因
IBM Cloud Marketplaceを用いたIOTF
への登録
IOTFへの登録
 IBM Cloud Marketplaceを利用してもIOTFへの登録がで
きる。前章のBluemixからの登録と、どちらを用いても
良い
 https://www.ibm.com/marketplace/cloud/buy-internet-of-
things-foundation/us/en-us にアクセスする
 右上の30 day free trialをクリック
IOTFへの登録
 IBM IDを持っている場合は、IBM ID登
録のメールアドレスで開始する
メールが届くので、中のリンクをクリックして登録を完了する。
IOTFダッシュボード
 再びIOTFのダッシュボードで確認すると、組織が2つに
増えていることが分かる(BluemixもIOTFに登録している
場合)
Bluemixから登録した分
IBM Cloud Marketplace
から登録した分
デバイスの登録等の操作はBluemixの時と同じ
IOTFを用いたアプリケーション開発
IOTFを用いたアプリケーションの作成
 デバイス制御API
デバイスの制御を行う
 履歴イベントAPI
デバイスのイベントを照会する
デバイス制御API
デバイス制御API
 以下のデバイス制御が可能
(https://docs.internetofthings.ibmcloud.com/api/device_m
anagement.html)
 組織の照会
 デバイスリスト
 デバイスタイプごとのリスト
 デバイスタイプのリスト
 デバイスの登録
 デバイスの更新
 登録デバイスの照会
 デバイスの削除
デバイス制御API
 httpsでベーシック認証を行う
 ユーザ、パスワードは、API KeyとAuth Tokenが必要に
なるので取得しておく
(1) API Keysを選び
(2) New API Keyを選
ぶ
デバイス制御API
この2つをメモする。
特にAuth Tokenは、こ
こでメモし忘れると後
から照会できない
デバイス制御API
 httpsなので普通にブラウザを用いて呼び出しできる
例:デバイスの一覧
List Devices
Get a list of all devices in an organization.
Request
GET internetofthings.ibmcloud.com/api/v0001/organizations/org_id/devices
ブラウザで、このURL
にアクセスすれば良い。
この時org_idを自分の
組織idに置き替える
デバイス制御API
デバイスの一覧がJSONで返ってくる
(現在は、ユーザ、パスワードは要求されなかった)
履歴イベントAPI
履歴イベントAPI
 デバイスからのイベントを照会するためのAPI。認証は
デバイス制御APIと同じ。以下が可能。
 全てのイベントの表示
 パラメータの照会
 デバイスタイプによるイベント照会
 あるデバイスのイベント表示
 MQTTだけでなくhttpsでの照会も可能
httpsはポーリングになるのでリアルタイムのイベント把
握には向いていないが、数分ごとの把握で良い場合には
十分
履歴イベントAPI
例:全てのイベントの表示
View all events
View events across all devices registered to the organization
Request
GET internetofthings.ibmcloud.com/api/v0001/historian/org_id
ブラウザで、このURL
にアクセスすれば良い。
この時org_idを自分の
組織idに置き替える
履歴イベントAPI
なお、Cookieを用いることで、表示開始位置を変えることが可能(詳細は、仕様
書を参照 https://docs.internetofthings.ibmcloud.com/api/historical_events.html)
まとめ
 ARM mbedのアプリケーションボードと
IBMIoTClientEthernetExampleを用いると、簡単にIoTア
プリケーションを構築できる
 QuickStartを用いると認証などをスキップして簡単に動
作確認が行える
 IBM Internet of Things Foundationは、クラウドベースの
IoT用のハブであり、現在はBluemixか、IBM Cloud
Marketplaceから登録できる
 IBM Internet of Things FoundationのAPIは、MQTTだけ
でなくhttpsで可能なのでブラウザを用いて簡単に動作確
認できる
今後の予定
 MQTTを用いたIBM Internet of Things Foundationへのア
クセス
 もう少し実用的なIoTアプリケーションの構築例

Weitere ähnliche Inhalte

Ähnlich wie mbed LPC1768とBluemixを用いたIoTプログラミング入門

ラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーsoftlayerjp
 
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
 
進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)Noriyuki Egi
 
IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IBMソリューション
 
Node red hands on - public
Node red hands on - publicNode red hands on - public
Node red hands on - publicTakehiko Amano
 
Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-IBMソリューション
 
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!Masaya Fujita
 
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
Enpit bizapp_aiit_20130902_for_WindowsEnvironmentEnpit bizapp_aiit_20130902_for_WindowsEnvironment
Enpit bizapp_aiit_20130902_for_WindowsEnvironmentYukio Saito
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料Masaya Fujita
 
Itm623_overview_public_20110831
Itm623_overview_public_20110831Itm623_overview_public_20110831
Itm623_overview_public_20110831Yuhki Hanada
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesTakeshi Fukuhara
 
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたBluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたSeiichiro Imazeki
 
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL CouchbaseモバイルソリューションCouchbase Japan KK
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT HubMasahiko Ebisuda
 
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。憲昭 村田
 
.NET Micro Framework is my spirit.
.NET Micro Framework is my spirit..NET Micro Framework is my spirit.
.NET Micro Framework is my spirit.Atomu Hidaka
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCodingTaiji Tsuchiya
 
【JSLGG】お手軽watsonアプリ開発セミナー
【JSLGG】お手軽watsonアプリ開発セミナー【JSLGG】お手軽watsonアプリ開発セミナー
【JSLGG】お手軽watsonアプリ開発セミナーsoftlayerjp
 

Ähnlich wie mbed LPC1768とBluemixを用いたIoTプログラミング入門 (20)

ラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナー
 
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
 
進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)進化を続けるIBM Bluemix 最新情報(2015年3月)
進化を続けるIBM Bluemix 最新情報(2015年3月)
 
IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界
 
Node red hands on - public
Node red hands on - publicNode red hands on - public
Node red hands on - public
 
Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-
 
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
 
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
Enpit bizapp_aiit_20130902_for_WindowsEnvironmentEnpit bizapp_aiit_20130902_for_WindowsEnvironment
Enpit bizapp_aiit_20130902_for_WindowsEnvironment
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料
 
Itm623_overview_public_20110831
Itm623_overview_public_20110831Itm623_overview_public_20110831
Itm623_overview_public_20110831
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたBluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
 
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
(Live Tokyo) 米GEのIoT基盤「Predix」を支えるNoSQL Couchbaseモバイルソリューション
 
Bluemixと既存システムとの連携
Bluemixと既存システムとの連携Bluemixと既存システムとの連携
Bluemixと既存システムとの連携
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hub
 
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
 
[Japan Tech summit 2017] CLD 005
[Japan Tech summit 2017]  CLD 005[Japan Tech summit 2017]  CLD 005
[Japan Tech summit 2017] CLD 005
 
.NET Micro Framework is my spirit.
.NET Micro Framework is my spirit..NET Micro Framework is my spirit.
.NET Micro Framework is my spirit.
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCoding
 
【JSLGG】お手軽watsonアプリ開発セミナー
【JSLGG】お手軽watsonアプリ開発セミナー【JSLGG】お手軽watsonアプリ開発セミナー
【JSLGG】お手軽watsonアプリ開発セミナー
 

Mehr von Shisei Hanai

Run Jenkins in IBM Containers.
Run Jenkins in IBM Containers.Run Jenkins in IBM Containers.
Run Jenkins in IBM Containers.Shisei Hanai
 
BluemixでGWTアプリケーションを動かす(2)
BluemixでGWTアプリケーションを動かす(2)BluemixでGWTアプリケーションを動かす(2)
BluemixでGWTアプリケーションを動かす(2)Shisei Hanai
 
BluemixでGWTアプリケーションを動かす
BluemixでGWTアプリケーションを動かすBluemixでGWTアプリケーションを動かす
BluemixでGWTアプリケーションを動かすShisei Hanai
 
βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)Shisei Hanai
 
BluemixでDockerを試してみる
BluemixでDockerを試してみるBluemixでDockerを試してみる
BluemixでDockerを試してみるShisei Hanai
 
BluemixでVMを使用してみる
BluemixでVMを使用してみるBluemixでVMを使用してみる
BluemixでVMを使用してみるShisei Hanai
 

Mehr von Shisei Hanai (6)

Run Jenkins in IBM Containers.
Run Jenkins in IBM Containers.Run Jenkins in IBM Containers.
Run Jenkins in IBM Containers.
 
BluemixでGWTアプリケーションを動かす(2)
BluemixでGWTアプリケーションを動かす(2)BluemixでGWTアプリケーションを動かす(2)
BluemixでGWTアプリケーションを動かす(2)
 
BluemixでGWTアプリケーションを動かす
BluemixでGWTアプリケーションを動かすBluemixでGWTアプリケーションを動かす
BluemixでGWTアプリケーションを動かす
 
βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)
 
BluemixでDockerを試してみる
BluemixでDockerを試してみるBluemixでDockerを試してみる
BluemixでDockerを試してみる
 
BluemixでVMを使用してみる
BluemixでVMを使用してみるBluemixでVMを使用してみる
BluemixでVMを使用してみる
 

mbed LPC1768とBluemixを用いたIoTプログラミング入門