[lang:ja] mbed Device Connectorを試してみる

この記事は mbed Advent Calendar 2015 - Adventure の21日目の記事です。
基本的に、mbed祭り2015@師走の吹田(スライド)でお話した内容と同じです。
※ mbed OSは、Technology Preview Releaseの状態です。mbed Device ConnectorはBetaの状態です。

必要なもの

  • FRDM-K64F mbed OS対応ボードでは、今のところ最も入手性が高く、無難な選択です。
    スイッチサイエンスでお買い求めいただけると嬉しいです。 http://ssci.to/1689
  • パソコン
  • mbedのアカウント(developer.mbed.orgのものでOK)
  • インターネット接続(イーサネットで、DHCPサーバがあるものが望ましい)

mbed Device Connectorの概要


/media/uploads/ytsuboi/big-data-starts-with-little-data.png
ARM TechCon 2014では、上記のスライドのように、IoTのノードであるmbed OSが出力するLittle Dataはmbed Device Serverに送られてBig Dataとなるというシナリオが提示されていました。このDevice Serverは、IBMなどのクラウドパートナーを通じて提供されるサービスを利用するか、あるいはユーザが環境をセットアップするなど、セットアップに手間がかかることが予想されていました。

/media/uploads/ytsuboi/mbed_keynote_kris_final_p20.png
ARM TechCon 2015では、mbed Device Serverに加えて、mbed Device Connectorが発表されました。ARMが提供する、開発用途に、無償ですぐに使える環境です。これによって、mbed開発者は、手早くmbed OSに含まれるmbed Clientとサーバの通信を実装し、テストしてみることができるようになりました。

/media/uploads/ytsuboi/mbed_keynote_kris_final_p19.png
mbed Device Connectorに接続することのできるデバイス(クライアント)は100台までです。またDevice Connectorに送信できるイベントは1時間あたり10,000イベントまでという制限があります。開発目的であれば十分な数と言えるでしょう。これ以上の要求がある場合は、対応するクラウドパートナーのサービスを利用する等の対処法を検討しなければなりません。

mbed Device Connector

mbed Device Connectorは、 https://connector.mbed.com ここからアクセスすることができます。使用するには、mbedのアカウントでログインをする必要があります。また、ログイン時には、Term of useに同意する必要もあります。

このWebサイトでは、接続しているデバイス数や、受信しているイベント数などを確認できるDashboardが提供されています。また、mbed Clientで利用するための証明書を発行する機能、デバイスから受信したデータを取り出すAPIに簡易的にアクセスしてみるプレビュー機能なども提供されています。

Client Example

mbed Clientを使った、デバイス向けのサンプルアプリケーションは、GitHubでホストされています。これをビルドするには、yottaが必要です。yottaのインストールについては、yottadocsを参照してください。yottaは、mbed OSに採用されているビルドとパッケージ管理システムで、Windows, OS X, Linuxに対応しています。

今時点では、mbed OS 15.11 Technology Preview Releaseが公開されており、Client Exampleもこれに対応したリリース、mbedos-release-15-11を使用してください。GitHubのページから、zipやtar.gzのアーカイブでダウンロードしてくるのが手っ取り早いでしょう。私は次の様な手順でビルドしました。

unzip mbedos-release-15-11.zip
cd mbed-client-examples-mbedos-release-15-11/
yotta target frdm-k64f-gcc
yotta install mbed-drivers
vi source/security.h
yotta build

source/security.hを編集していますが、ここで、先述のmbed Device ConnectorのWebサイト内、mbed Clientで利用するための証明書を発行するページで表示されていたsecurity.hの内容をそのままコピーし、ペーストを行っています。

yotta buildをすると、build/frdm-k64f-gcc/source/にバイナリファイルが出来上がっていますので、これをFRDM-K64Fを接続してマウントされたMBEDドライブ内にコピーします。シリアルターミナルで、FRDM-K64Fのポートを115200bps 8-N-1で開いておくと、動作状況が見れて便利です。イーサネットにK64Fを接続したところで、FRDM-K64Fの基板に付いているリセットボタンを押しましょう。

うまく動くと、シリアルターミナルに、DHCPからK64Fに割り当てられたIPアドレスが表示されます。その後、Device Connectorへの接続が完了したところで、Registeredというメッセージが表示されます。ここで、mbed Device Connectorのウェブサイトを見に行くと、Connected Deivceが存在するはずです。

また、mbed Device ConnectorのウェブサイトにあるAPI Consoleを使うと、簡易的にDevice Connectorが受け取ったデバイスからの情報を見ることができます。
/media/uploads/ytsuboi/static_resource_screenshot.png
ここでは、デバイスからDevice Connectorに送信されたペイロードがエンコードされており、通信がセキュアであることが確認できます。API Consoleでは、ペイロードの復号も行ってくれます。

WebApp

/media/uploads/ytsuboi/mbed-e-textile_p07.png mbed Device Connectorは、その名の通りコネクタです。データの蓄積や分析、表示などを行うには、mbed Divice ConnecterのAPIを使ってデータを取りだし、各種DBに格納して使います。

Device Connectorのウェブサイトには、APIのURLとして、次のようなURLが例示されています。

https://api.connector.mbed.com/endpoints/<Your-endpoint-name>/Test/0/D

これはRESTのインターフェースになっていますので、スライドのようにAWSやheroku、あるいはオンプレミスのサーバなど、お好みのシステムを構築して接続して使えます。WebアプリのサンプルアプリケーションもGitHubでホストされていますので、見てみてください。

私からは以上です。

明日は、toyowataさんです。宜しくお願いします。


Please log in to post comments.