Publicidad

Más contenido relacionado

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

Publicidad

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

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