[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の概要
ARM TechCon 2014では、上記のスライドのように、IoTのノードであるmbed OSが出力するLittle Dataはmbed Device Serverに送られてBig Dataとなるというシナリオが提示されていました。このDevice Serverは、IBMなどのクラウドパートナーを通じて提供されるサービスを利用するか、あるいはユーザが環境をセットアップするなど、セットアップに手間がかかることが予想されていました。
ARM TechCon 2015では、mbed Device Serverに加えて、mbed Device Connectorが発表されました。ARMが提供する、開発用途に、無償ですぐに使える環境です。これによって、mbed開発者は、手早くmbed OSに含まれるmbed Clientとサーバの通信を実装し、テストしてみることができるようになりました。
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が受け取ったデバイスからの情報を見ることができます。
ここでは、デバイスからDevice Connectorに送信されたペイロードがエンコードされており、通信がセキュアであることが確認できます。API Consoleでは、ペイロードの復号も行ってくれます。
WebApp
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.