IoTに特化してハードウエアからOS、セキュリティ、API、クラウドサービスまでを統合して提供する、米Electric Imp社の開発用ハードウエア「impExplorer Developer Kit」(以下、impExplorer)を使って遊ぶ、第2回目。前回、ネットサービス企業のGMOインターネットで特命担当技術分析官を務める技術者の新里 祐教氏はまずimpExplorer単体でLチカ(LEDの点灯)を試みた。今回は、さらにクラウドとの連携を体験していく。

 前回に引き続き、Webブラウザ上で動く管理ツール「impCloud」の開発環境を利用していこう。今回はimpExplorerに搭載されている加速度、温湿度、気圧センサーの値の読み取りを行う。そして、外部出力として用意されているGROVEコネクターに小型のOLED(有機発光ダイオード)ディスプレーを接続して、センサー値を表示する装置を作成する。

外部からのアクセスをトリガーに加速度、温湿度、気圧を表示

「impExplorer Developer Kit」(左)と「imp004m Breakout Board」(右)
「impExplorer Developer Kit」(左)と「imp004m Breakout Board」(右)
[画像のクリックで拡大表示]

 とはいっても、ただ表示するだけではつまらないので、impCloudのAPI(Application Programming Interface)へのHTTPリクエストをトリガーにして、加速度、温湿度、気圧センサーの値をOLEDディスプレーに表示するようにする。APIはimpCloudが端末毎に持っているURL(エンドポイント)にWebブラウザでアクセスすると簡単に叩ける。

 まず最初に、impCloudが"クラウド"らしく、外部からのリクエストを受け付けて、デバイス側と連携する仕組みを考えてみよう。前回説明したように、impCloudの開発画面は2つのタブに別れていて、それぞれAgent(クラウド)側、Deveice(端末)側となっている。

 Agent側の開発画面では、外部からのAPIアクセスをWebアプリケーションのエンドポイントのように受け付ける。Device側の開発画面では、センサー値を取得したりLEDを点灯したり外部出力を行う。Agent側でHTTPを受け付けたら、引数をチェックしてDevice側に指示するといった流れになる。

開発画面はAgent側とDevice側に分かれている
開発画面はAgent側とDevice側に分かれている
Agent側はWebアプリケーションのエンドポイントのようにアクセスを受け付ける。Device側はAgent側からの指示を受け、センサー値を取得したりLEDを点灯したり外部出力を行う。
[画像のクリックで拡大表示]