mbed lpc1768とbluemixを用いたiotプログラミング入門
TRANSCRIPT
![Page 1: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/1.jpg)
mbed LPC1768と Bluemixを用いた IoTプログラミング
入門
S.Hanai 2015/4/7
![Page 2: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/2.jpg)
おことわり
本資料の記載内容は、私が個人的に調べた内容であり、正式な日本 IBMのテストやレビューを受けておりません。内容について、できる限り正確を期すよう努めてはおりますが、いかなる明示または暗黙の保証も責任も負いかねます。本資料の情報は、使用先の責任において使用されるべきものであることを、あらかじめご了承ください。
![Page 3: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/3.jpg)
概要
![Page 4: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/4.jpg)
献立
以下の構成で IoTプログラミングを入門する mbedのアプリケーションボード (Ethernet Starter Kit)を使用
IBM Internet of Things FoundationをMQTTのハブとして使用
アプリケーション構築環境として Bluemixを使用
![Page 5: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/5.jpg)
構成
IBM Internet of Things Foundation
mbed LPC1768
MQTT/json
Bluemix
アプリケーション
MQTT/json or https/REST(json)
デバイス管理、イベント照会
![Page 6: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/6.jpg)
IoT用のクラウド・ベースのハブhttps://internetofthings.ibmcloud.com/
Bluemixもしくは、 IBM Marketplace経由で使用できる
アプリケーションからは、MQTT以外に普通に https/REST(json)でもアクセスできる
認証トークンを用いたセキュリティ 長いので以降 IOTFと省略
IBM Internet of Things Foundation
![Page 7: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/7.jpg)
デバイスの準備
![Page 8: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/8.jpg)
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
![Page 9: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/9.jpg)
ボードの入手
アプリケーションボード今回はスイッチ・サイエンスさんで購入https://www.switch-science.com/catalog/1276/
mbedアプリケーションボードは I/Oしか載っていないので、mbedも必要。今回は秋月電子さんで購入http://akizukidenshi.com/catalog/g/gM-03596/
![Page 10: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/10.jpg)
ボードの接続
向きに注意 !両方の基板に VOUT/GND/P20/P21のシルク印刷があるので合わせる
![Page 11: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/11.jpg)
mbedの登録
mbedはWebブラウザを使った IDEで開発できるが、これには登録が必要
以下のような参考ページを見て登録して、 LED点灯のような簡単な動作確認をしておくhttp://developer.mbed.org/users/nxpfan/notebook/lets_get_started_jp/
![Page 12: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/12.jpg)
QuickStartを用いた動作確認
![Page 13: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/13.jpg)
QuickStart
IOTFには QuickStartという仕組みがあり、これを使うと手早くデバイスの動作確認ができる
![Page 14: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/14.jpg)
mbedの接続
Ethernetを DHCPがサポートされた LANに接続
USBを PCに接続アプリケーションボード側ではなくmbed上のUSB
USBコネクタのそばの青色 LEDが点灯すれば接続は ok
![Page 15: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/15.jpg)
mbedの認識
mbedは USBメモリーとして認識されるWindowsの場合はデバイスドライバが必要とのこと (https://mbed.org/handbook/Windows-serial-configuration)
アプリケーションのデプロイは、この USBメモリーにアプリケーションをコピーするだけで行える
![Page 16: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/16.jpg)
IBMIoTClientEthernetExampleのビルド
以下のページに移動http://developer.mbed.org/teams/IBM_IoT/code/IBMIoTClientEthernetExample/
右上にある Import this programをクリック
mbedの登録が済ませてあれば、ブラウザ上の開発環境が立ち上がるので importを完了する
![Page 17: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/17.jpg)
デプロイ
Compileをクリックすると、コンパイルが行われてブラウザのダウンロードで .binファイル(IBMIoTClientEthernetExample_LPC1768.bin)が落ちてくる。
この binファイルを、 USBメモリとして認識されているmbedにコピーするなおファイルのコピー中は、 USBコネクタ横の青色LEDが細かく点滅するので、この点滅が終わるまで待つ
コピーが終わったら、mbed基板中央のリセットを押す
IDEの右上のターゲットがLPC1768になっていることを確認しておく
![Page 18: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/18.jpg)
起動確認
うまくいくと LCDに表示が行われる
すぐ右にある Joystickを下に倒していくと、他の表示が見える
情報提供ページ
![Page 19: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/19.jpg)
起動確認
デバイス ID重要。控えておく。また他の人に見られないように。
Ethernetの接続状況うまく DHCPからアドレスが取得できれば、 Connectedとなる
![Page 20: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/20.jpg)
動作確認
ガイドのページを開く https://developer.ibm.com/iot/recipes/arm-mbed/
Visualizeのところにデバイス idを入力する
![Page 21: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/21.jpg)
QuickStartモードでの動作確認
デモページが表示される
表示されているポテンションメータを動かしたり、本体を揺すって加速度センサーに情報を与えると、リアルタイムに情報が表示される
![Page 22: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/22.jpg)
Internet of Things Foundation(IOTF)への登録
![Page 23: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/23.jpg)
IOTFへの登録
現在は、 IBM Bluemixと、 IBM Cloud Marketplaceが選べるhttps://internetofthings.ibmcloud.com/dashboard/#/signup
現在のところ、 Bluemixであれば Free planというのがあるので開発、テスト用にはこちらを使うと良い
どちらを使っても、 IOTFにおける組織 (Organization)コードが変わるだけなので、プログラミング上は変わりない
![Page 24: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/24.jpg)
Bluemixを用いた IOTFへの登録
![Page 25: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/25.jpg)
Bluemixからの登録
Internet of Things Foundation Starterをカタログから選ぶ
好きな名前を付けて、作成をクリック
![Page 26: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/26.jpg)
モノのインターネットを追加
モノのインターネットを追加
アプリケーションとして前ページで作った Internet of
Things Foundation Starterを設定
![Page 27: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/27.jpg)
設定
ダッシュボード上のモノのインターネットをクリック
Connect your devicesを選択
![Page 28: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/28.jpg)
IOTFダッシュボード
IOTFダッシュボードが表示されるので Devicesを選ぶ
![Page 29: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/29.jpg)
デバイスを IOTFに追加
Add Devicesをクリック
![Page 30: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/30.jpg)
デバイス設定
好きな名前を付ける (組織内で一意であれば良い )
mbedの LCDに表示されたdevice IDを入力
![Page 31: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/31.jpg)
デバイス情報の表示
この部分をメモしておく
![Page 32: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/32.jpg)
IOTF情報のデバイスへの設定
mbedの IDEからmain.cppを開く
ここにメモしておいた値を指定する ( 次ページに設定例 )。
![Page 33: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/33.jpg)
設定例
// 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=の値
![Page 34: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/34.jpg)
デプロイ
設定を変更したら、 Compileをしてダウンロードされた binファイルをmbedにコピーして resetボタンを押す
しばらくすると、 IOTFのダッシュボード上のインジケータが緑になりデバイスからイベントが上がってきて
いることが分かる
![Page 35: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/35.jpg)
Node-REDでの動作確認
![Page 36: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/36.jpg)
flow editor
ボイラープレートで作成しておいた Internet of Things Foundation Starterをダッシュボードで選び、経路の部分の URLを開く
![Page 37: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/37.jpg)
flow editor
Go to your Node-RED flow editorをクリック デフォルトでフローができているので、 IBM IoT App
Inをダブルクリックする
![Page 38: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/38.jpg)
処理イベントの選択
動作確認のため全てを受け取るようにする
設定が終わったら右上の Deployボタンをクリックする
![Page 39: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/39.jpg)
デバイスイベントの確認
デバイスの電源が入っていればdebugペインにイベントが上がってくる
これは一番右にある緑の箱(debug)が出力している
![Page 40: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/40.jpg)
条件を変更してみる
中央付近にある switchをダブルクリック。これは条件によってフローを変える部品
しきい値を 40から 30に変更 (現在 debugペインに報告されている温度より小さくする )
![Page 41: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/41.jpg)
条件を変更してみる
表示が criticalに変わったことを確認
これは switchの結果がdanger側に変わったことが原因
![Page 42: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/42.jpg)
IBM Cloud Marketplaceを用いたIOTFへの登録
![Page 43: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/43.jpg)
IOTFへの登録
IBM Cloud Marketplaceを利用しても IOTFへの登録ができる。前章の Bluemixからの登録と、どちらを用いても良い
https://www.ibm.com/marketplace/cloud/buy-internet-of-things-foundation/us/en-us にアクセスする
右上の 30 day free trialをクリック
![Page 44: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/44.jpg)
IOTFへの登録
IBM IDを持っている場合は、 IBM ID登録のメールアドレスで開始する
メールが届くので、中のリンクをクリックして登録を完了する。
![Page 45: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/45.jpg)
IOTFダッシュボード
再び IOTFのダッシュボードで確認すると、組織が 2つに増えていることが分かる (Bluemixも IOTFに登録している場合 )
Bluemixから登録した分
IBM Cloud Marketplaceから登録
した分
デバイスの登録等の操作は Bluemixの時と同じ
![Page 46: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/46.jpg)
IOTFを用いたアプリケーション開発
![Page 47: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/47.jpg)
IOTFを用いたアプリケーションの作成
デバイス制御 APIデバイスの制御を行う
履歴イベント APIデバイスのイベントを照会する
![Page 48: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/48.jpg)
デバイス制御 API
![Page 49: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/49.jpg)
デバイス制御 API
以下のデバイス制御が可能 (https://docs.internetofthings.ibmcloud.com/api/device_management.html)
組織の照会 デバイスリスト デバイスタイプごとのリスト デバイスタイプのリスト デバイスの登録 デバイスの更新 登録デバイスの照会 デバイスの削除
![Page 50: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/50.jpg)
デバイス制御 API
httpsでベーシック認証を行う ユーザ、パスワードは、 API Keyと Auth Tokenが必要になるので取得しておく
(1) API Keysを選び
(2) New API Keyを選ぶ
![Page 51: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/51.jpg)
デバイス制御 API
この 2つをメモする。特に Auth Tokenは、ここでメモし忘れると
後から照会できない
![Page 52: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/52.jpg)
デバイス制御 API
httpsなので普通にブラウザを用いて呼び出しできる
例:デバイスの一覧
List DevicesGet a list of all devices in an organization.
RequestGET internetofthings.ibmcloud.com/api/v0001/organizations/org_id/devices ブラウザで、この URL
にアクセスすれば良い。この時 org_idを自分の組織 idに置き替え
る
![Page 53: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/53.jpg)
デバイス制御 API
デバイスの一覧が JSONで返ってくる(現在は、ユーザ、パスワードは要求されなかっ
た )
![Page 54: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/54.jpg)
履歴イベント API
![Page 55: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/55.jpg)
履歴イベント API
デバイスからのイベントを照会するための API。認証はデバイス制御 APIと同じ。以下が可能。
全てのイベントの表示 パラメータの照会 デバイスタイプによるイベント照会 あるデバイスのイベント表示
MQTTだけでなく httpsでの照会も可能httpsはポーリングになるのでリアルタイムのイベント把握には向いていないが、数分ごとの把握で良い場合には十分
![Page 56: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/56.jpg)
履歴イベント API
例:全てのイベントの表示
View all eventsView events across all devices registered to the organization
RequestGET internetofthings.ibmcloud.com/api/v0001/historian/org_id
ブラウザで、この URLにアクセスすれば良い。この時 org_idを自分の組織 idに置き替え
る
![Page 57: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/57.jpg)
履歴イベント API
なお、 Cookieを用いることで、表示開始位置を変えることが可能 ( 詳細は、仕様書を参照
https://docs.internetofthings.ibmcloud.com/api/historical_events.html)
![Page 58: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/58.jpg)
まとめ
ARM mbedのアプリケーションボードとIBMIoTClientEthernetExampleを用いると、簡単にIoTアプリケーションを構築できる
QuickStartを用いると認証などをスキップして簡単に動作確認が行える
IBM Internet of Things Foundationは、クラウドベースの IoT用のハブであり、現在は Bluemixか、 IBM Cloud Marketplaceから登録できる
IBM Internet of Things Foundationの APIは、MQTTだけでなく httpsで可能なのでブラウザを用いて簡単に動作確認できる
![Page 59: mbed LPC1768とBluemixを用いたIoTプログラミング入門](https://reader033.vdocuments.mx/reader033/viewer/2022061618/55b58446bb61eb26258b4699/html5/thumbnails/59.jpg)
今後の予定
MQTTを用いた IBM Internet of Things Foundationへのアクセス
もう少し実用的な IoTアプリケーションの構築例