サイレックスの広報ブログ
新製品情報、製品発表会・展示会などのイベント情報、決算のポイントや近況など、もっと深くサイレックスのことを知っていただくために広報担当者からさまざまな情報をお届けします。
Linux Box「LB-100AN」を使ったBLE/IoT Cloud Gateway開発
こんにちは。
テクニカルマーケティング担当です。
IoTでのセンサとクラウドの連携は、ヘルスケア、テレマティクス、防災、工場や倉庫などの産業機器分野、家電や消耗品のサービスなどあらゆる分野への展開が注目されています。今回は、サイレックス製品「LB-100AN」を使ったセンサとクラウド連携ソリューションを簡単に開発する方法についてレポートします。
1. 構成
センサ情報の収集と、無線/有線LAN経由でのクラウド連携を行うゲートウェイ装置を実現するためには、下記構成要素が必要となります。
・センサ
・センサ情報収集機能
・ネットワーク・インターネットに接続するための無線/有線LAN
・クラウドに接続するためのゲートウェイ機能
・クラウドサービス
今回、開発機材には、サイレックス製 無線LAN対応Linux Box 『LB-100AN』と市販のBluetooth USBドングル、クラウドサービスには、Kii株式会社クラウドを使用し、BLE Beaconタイプのセンサ情報をクラウド連携させます。
サイレックス製『LB-100AN』は、有線/無線LAN、USB、RS-232Cなどの物理インタフェースを備えた組込みLinuxボードと、ソフトウェアを開発するためのSDKをセットにした、即時量産対応可能な商品です。無線LANモジュールには、産業・医療用とで実績のあるSX-PCEAN2を搭載し、アクセスポイント・ステーション機能、エンタープライズ認証もサポートします。
項目 |
内容 |
備考 |
SoC |
Marvell
Armada370 |
800MHz
(ARMv7) |
ROM |
32MB |
|
RAM |
128MB |
|
ストレージ |
eMMC |
MLC 4Gbyte or 擬似SLC 2Gbyte |
外部I/F |
有線LAN(GbE対応) 無線LAN
IEEE802.11a/b/g/n USB2.0
Type-A x 1 RS-232C
(5pin 外部ポート) x 1 UART
(4pin 内部ポート) x 1 |
無線モジュール:SX-PCEAN2c アンテナ:内蔵 x 2 |
電源供給 |
5 VDC~24VDC |
DCジャック(EIJ-2) ナイロンコネクタ(Option) |
LED |
3 個 |
|
プッシュボタン |
1 基 |
|
外形寸法 |
100mm x
100mm x 25.5mm |
基板のみ:85.6mm x
89mm |
クラウドサービスには日本発グローバルクラウドベンダであるKii株式会社のKii Cloudを利用します。Kii Cloudは、Kii 株式会社が提供する MBaaS(Mobile Backend as a Service)/IoTクラウドプラットフォームで、モバイルアプリや IoT ソリューションに必要なサーバ側の機能を、クラウドを使って汎用的な API として提供するサービスです。これにより、サーバ機能の実装や運用を行うことなくサービスを実現でき、短期間・低コストで実現することができます。
2. ゲートウェイ構築
ゲートウェイ実現のために、Bluetooth機能とGateway機能、コンバータ機能をそれぞれ組込みます。
以下、具体的な開発作業について解説していきます。
※LB-100AN SDKの準備に関しては割愛致します。
(ア) Bluetooth機能の組込み
LB-100AN SDKにBluetoothの機能を追加します。
Bluetoothスタックには、BlueZを使用します。BlueZは下記3つのレイヤで構成されており、Bluetooth機器を制御する場合は、アプリケーションから、デーモン、ドライバを経由してコマンド制御、および、結果の取得を行います。
■ アプリケーション:ユーザ空間からのBluetooth機器の設定、制御
■ デーモン:アダプタ設定やサービスの管理。上位アプリとの中継
■ ドライバ:物理層のドライバ。Linux Kernelコードに組込み済み
※Bluetooth USBドングルにはエレコム製(LBT-UAN05C2)を利用しています。
■ ドライバ:Linux開発者にはおなじみの"make menuconfig"コマンドを用い、Bluetoothを有効にします。

■ デーモン、アプリケーション: Buildrootより追加するだけでBlueZのダウンロードからコンパイルまで行われます。

ここまでの作業を行った後、LB-100ANのF/Wを更新するとBluetooth機能が使用可能となります。下記例のように、Bluetoothデーモンを起動し、BLE機器のスキャンを行うと、周辺のBLE機器情報が得られますので、一度、動作確認してください。
<Bluetooth機能の動作確認>

... Bluetoothデーモン起動
... HCITOOLでBLE機器をスキャン
(イ) Gateway機能の組込み
次に、Gatewayの機能を実装するために、クラウド通信のアプリケーションと環境を準備します。
準備するものは以下の2つとなります。
■ Gateway Agent
■ Gateway Manager
尚、Kii GatewayクライアントはGo Googleが開発したGo言語で作成されています。Goはコンパイル時に依存関係の解決を行うため、その際に使用するGOPATH. GOROOTの環境変数も別途設定します。
• Go言語コンパイラを取得
• Go言語実行ディレクトリ作成。環境変数を設定
<Go言語環境変数設定例>

また、Kii GatewayではHTTPSを使用するため、開発環境の証明書を後に製品に組込む必要があります。開発環境の証明書を事前に更新しておいてください。
■ Gateway Agent
Kii Cloudと通信を行うためのモジュールです。
Kiiよりバイナリ提供されていますので、ファイルを入手し、Gateway AgentにKii Cloudアプリ情報を設定します。

■ Gateway Manager
Gateway Agent制御用アプリケーションです。Kiiよりサンプルコードとして提供されていますので、Gateway Manager Application Sample作成し、アプリ情報を設定します。


(ウ) コンバータ機能の組込み
コンバータはセンサやアプリケーションに合わせて作成します。今回は、Bluetoothから受信した情報をクラウドに上げる形式に変換します。今回使用したセンサは、BLE Beaconタイプのもので、温度・湿度・照度の3つのセンサ情報がBeaconのアドバタイジングパケットに格納されます。そのため、コンバータはパケットのPDU Payloadからセンサ情報を抽出し、適した温度、湿度、照度の数値情報に変換します。
<BLEの一般的なパケット構造>

3. 完成
これらの機能を組込むことにより今回のBLE Cloud Gatewayが完成します。
動作フローは最終的にこのようになります。

• Gateway Managerを用いて、Gateway Agentをクラウドへ登録
• hcitoolでBLEデバイスのスキャンを実行し、各Beacon情報を取得
• 目的のセンサ情報のみをコンバータで抽出
• Gateway Agentからクラウドにアップロード
実際のセンサ情報やクラウドに表示される内容:

4. まとめ
今回、IoTセンサを無線LAN経由でインターネット上のクラウドサーバに情報をアップロードするためのBLE Cloud Gatewayを開発しましたが、実はこれ、5月に東京ビッグサイトで開催された『IoT/M2M展』に出展するためのデモ開発でした。
サイレックス製品『LB-100AN』をプラットフォームに使い、OSSおよびクラウドベンダのアプリケーションを活用することによって、1週間という短期間で実用的な製品として開発作業が完了しました。
『LB-100AN』は、サイレックスの標準品として、もしくは機器メーカ様のOEM向けのプラットフォームとして量産実績のあるプラットフォームです。今回のデモ開発にとどまらず、信頼性の高いハードウェアをそのまま量産化製品に適用できるメリットがあります。
今回のブログの元ネタとなったプレゼンテーション資料をダウンロードすることができますのでそちらも是非ご参照ください。