AE2100でソルティスターの「SpeeDBee Hive」を使用してみよう(1) ―SmartHopセンサーデータの収集・可視化編―

# 要約
* この記事では、株式会社ソルティスター（以下、ソルティスター）の「SpeeDBee Hive（AE2100対応版）」を使用して、IoTセンサーのデータ収集・可視化や制御、クラウドとの連携方法について解説します。
* 第1回の「SmartHopセンサーデータの収集・可視化編」では、MHシリーズ親機のSmartHopモジュール内蔵のAE2100にSpeeDBee Hiveをインストールし、照度データの収集および可視化を行います。

※AE2100対応版のSpeeDBee Hiveの詳細については、[OKIのHP（AIエッジパートナーのAE2100ソリューション）](https://www.oki.com/jp/AIedge/solution/intro/saltyster.html)で紹介されているのでそちらをご参照ください。


# はじめに
「SpeeDBee Hive」は多様なデータを取り込み、分析、制御、可視化をGUIで簡単に実現する実用的IoTミドルウェア、兼アプリケーションプラットフォームです。
AE2100での動作にも対応をしており、[ソルティスターのHP](https://www.saltyster.com/speedbee-hive-trial/)から<font color="red">**無償の評価版**</font>をダウンロードすることが可能です。（評価版では連続1時間以上のデータ収集はできませんが、SpeedBeeHiveのほとんどの機能を試用できます。）
AE2100のWeb-UIから簡単にインストールすることができ、シンプルな操作でIoTシステムを構築することが可能です。

SpeeDBee HiveはPLC等をはじめとしOKIの920MHz帯マルチホップ無線「SmartHop」にも対応をしており、本記事ではSmartHop対応の照度センサーを使用してデータの収集・可視化を行ってみます。


# 環境
実行環境は次の図のような構成を前提とします。
![実行環境図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/f8236f30-83df-c579-a3fe-27699c1146f7.png)

AE2100は、SmartHopのMHモジュール親機が内蔵されているものを使用します。
[パナソニック製の無線環境センサ照度タイプ（以下、照度センサ）](https://www3.panasonic.biz/ac/j/fasys/eco/sms/enr1_sensor/index.jsp)は、SmartHopのMHモジュールを搭載した電池駆動式の照度センサーです。

SpeeDBeeHiveのバージョンは3.3.1のものを使用しています。


# AE2100の設定
まずは、SmartHopの無線ネットワークの構築です。

AE2100のWeb-UIを使って、内蔵のMHモジュール親機（コーディネータ）の設定を行います。
基本設定、プロトコル設定および局番リストの設定内容は以下の通りです。
詳細な設定方法については、[「AE2100」内蔵の920MHz帯無線「SmartHop」のモジュールを活用してみよう(1) ―無線ネットワーク構築編―](https://qiita.com/shimatak/items/ae87081694d1bcbb3cf5)をご参照ください。

#### ■ 基本設定
項目|設定内容|備考
:-:|:-:|:-:|
PAN ID|0001|任意|
チャネル番号|1ch|他チャネルでも可|
ネットワーク名|ECOnect@NW-iD|固定(※)|
暗号鍵|00000000000000000000000000000001|任意の32の数字|

※パナソニック製の無線環境センサのネットワーク名は「ECOnect@NW-iD」に固定されています。
　 無線環境センサをネットワークに収容する場合は必ずネットワーク名を「EcoNect@NW-iD」に設定してください。

#### ■ プロトコル設定
項目|設定内容
:-:|:-:|
局番解析|あり|
プロトコル種別|ModBus(RTU)|

#### ■ 局番リスト登録
ショートアドレス|局番|備考
:-:|:-:|:-:|
0001|1|照度センサー


# 照度センサの設定
照度センサの設定はロータリースイッチのみで行うため、前面のカバーを外しマイナスドライバー等で設定を行います。
（設定用のツールはありません）

今回は以下のような設定にしました。

項目|設定内容(ロータリースイッチの設定)|備考
:-:|:-:|:-:|
グループ|0001(01)|AE2100のPAN IDと同一にする|
通信チャネル|1ch(0)|AE2100のチャネル番号と同一にする|
局番|1(01)|一意、ショートアドレスは局番と同一に設定される(0001)|
送信間隔|10秒(0)|10秒(0)～30分(F)から任意に設定|

![照度センサ（設定）_吹き出し付き.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/fd64e1d3-8fa8-fc9a-fb72-3612b2375e03.png)

なお、照度センサのデータ項目一覧（MODBUS(RTU)通信）は、[照度センサのユーザーズマニュアル](https://www3.panasonic.biz/ac/j/dl/manual/index.jsp?series_cd=3068)をご参照ください。
今回はSpeeDBee Hiveのコレクタ機能で以下のデータを収集します。

データ項目|データ名称|単位|データ種類|MODBUS機能コード
:-:|:-:|:-:|:-:|:-:|
012E(H)|照度データ(最新)|10lx|符号なし 16bit|03H|


# 無線ネットワークの接続確認
AE2100および照度センサの設定が完了したら、teratermでAE2100へログインして、SmartHopモジュールの運用開始コマンドを実行します。
```
root@ae2100:~#cd /usr/local/920M/bin
root@ae2100:/usr/local/920M/bin# ./smarthopctl operation start
{ "result": "OK", "factor": "", "data": null }
```

運用開始コマンドを実行すると、あらかじめ設定した設定内容で無線モジュールが通信可能な状態になります。
実行結果に「{ "result": "OK", "factor": "", "data": null }」と表示されていれば、問題なく無線モジュールの動作が開始しています。
※なお、運用開始コマンドは、AE2100が起動する度に実行が必要です。APIの詳細は、SDKマニュアルをご確認ください。
[AE2100　SDK取扱説明書（920MHz編）](https://www.oki.com/jp/AIedge/support/)

次に、照度センサに付属のリチウム電池を装着します。緑色LEDがゆっくり点滅した後に、緑色LEDが5回早く点滅をして消灯されるとネットワーク認証が完了となります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/1efcc70b-653e-aede-42a0-81232fb917df.png" width=35%>

照度センサの接続は、AE2100のWeb-UIの「トポロジ表示」からも確認できます。
「モジュールから取得」→「確認結果の取得」の順にクリックすると、トポロジ情報に子機の情報が表示されます。
今回の場合は、照度センサがショートアドレス0001で局番1として接続されていることが確認できるかと思います。
![AE2100_トポロジ表示.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/cb3b75f9-2c14-fe3a-e5af-3afa1252c6c7.png)


# SpeeDBee Hiveのインストール
SpeeDBee Hiveの体験版は[ソルティスターのHP](https://www.saltyster.com/speedbee-hive-trial/)からダウンロードすることが可能です。

『ダウンロードデータ「AE2100」対応版』をダウンロードし、AE2100にインストールを行います。
AE2100へのインストールは、AE2100のWeb-UIのアプリ管理メニューでダウンロードしたファイルを指定するだけです。
インストール方法の詳細は[同ページ](https://www.saltyster.com/speedbee-hive-trial/)に掲載されているAE2100簡易マニュアルを参照してください。


# SpeeDBee Hiveの起動
SpeeDBee HiveはAE2100のWeb-UIから起動します。
Web-UIのトップページ左メニューの「アプリケーション」→「アプリ管理」をクリックします。
![AE2100_Web-UIトップページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/63bff47f-16ec-e8d2-62b3-87071d194164.png)

アプリ一覧に「speedbeehive」が表示され、「操作」の下にあるアイコンをクリックすることでSpeeDBee Hiveが起動します。
![AE2100_アプリ管理ページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/9e9b70cb-6e0b-4001-1c43-79e73c294e12.png)

※アプリ一覧に「speedbeehive」が表示されていれば、ブラウザのアドレスバーに以下のURLを直接入力してもSpeeDBee Hiveの画面に遷移できます。
　<font color="red">**http://{AE2100のLAN2のIPアドレス}/hive/**</font>

# SpeeDBee Hiveの設定（センサー登録編）
それではSpeeDBee Hiveの設定を行います。
前章の手順に従って、SpeeDBee Hiveの画面にアクセスをしておいてください。

最初に「システム」タブの「設定」メニューにてシリアルの設定を行います。
今回はAE2100のSmartHop通信（シリアルデバイス：/dev/tty920M）を使用します。
シリアルの設定欄に通信速度等の設定を入力し、「更新」ボタンをクリックすることで設定が適用されます。
※/dev/tty920Mのシリアル設定は[AE2100シリーズ SDK取扱説明書 ―通常編―](https://www.oki.com/jp/AIedge/support/)を参考にしてください。
※通信モードはRS-232Cを選択してください。
![HIVE_シリアル設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/f512d176-fa04-6f02-5e91-4a57b24d6839.png)

次に、照度センサの情報を登録します。
「コレクタ」タブにある「SmartHop」の「＋」アイコンをクリックし、照度センサの情報を登録します。シリアルには先程設定した/dev/tty920Mをプルダウンから選択し、スレーブIDには照度センサの１を設定し、保存ボタンをクリックします。
![HIVE_SmartHop子機設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/586a2585-f1e5-8803-828f-dcd57056c75a.png)

照度センサの登録が完了したらReadレジスタの登録を行います。Readレジスタ一覧の「編集」ボタンをクリックします。
![HIVE_SmartHop子機設定完了.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/b66b1b9a-07bb-f59e-da2e-320c2d74cab7.png)

以下に従って、照度データのレジスタ（0x012e）を設定し、「新規」ボタンをクリックします。
※照度データの単位は10lxであるため、数値変換を行う必要があります。
![HIVE_SmartHopレジスタ設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/15705799-2e15-99bc-8f25-d79932edec51.png)

登録が完了したら、「Test」ボタンをクリックします。
![HIVE_SmartHopテスト実施.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/08dc73ed-512b-2ab8-d4e7-bfdd3d5ec7b6.png)

初期化および読込が「○」表示かつ照度データが表示されていることが確認できていれば、正しく設定が行えています。
![HIVE_SmartHopテスト実施結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/42241c8d-c39c-080e-5191-03906bba93a8.png)


# SpeeDBee Hiveの設定（可視化準備・サービス起動編）
前章までの設定が完了したら、次は照度データを可視化するための準備を行います。
「サービス」タブの「データベース」に任意のユーザー名とパスワードを入力し、「更新」ボタンをクリックします。
![Grafana_データベース設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/c431b905-146d-afac-d508-18f274712ab3.png)

これまでに設定したSpeeDBee Hiveのサービスを起動します。「システム」タブにある「制御」からHiveの「起動」ボタンをクリックします。
![HIVE_サービス起動前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/42ea6a80-d53e-75eb-245c-ebf7d7b4b029.png)

登録した照度センサのコレクタの状態及び警告が緑色に点灯することを確認してください。
![HIVE_サービス起動OK.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/1f2f9058-00a1-84f7-2365-77dd951d8031.png)


# Grafanaによる照度データの可視化
それでは、照度データの可視化を行っていきたいと思います。SpeeDBee HiveはGrafana Labs社のオープンソース可視化ツールである「Grafana」に対応をしており、コレクタが収集した各種データをWeb ブラウザ上で折れ線グラフや棒グラフなどを用いて視覚的にわかりやすい形態で閲覧することができるようになります。

AE2100版のSpeeDBee Hiveでは「Grafana」がプリインストールされているため、以下のURLをWebブラウザに入力いただくことでアクセスが可能です。
<font color="red">**http://{AE2100のLAN2のIPアドレス}:3002**</font>

Grafanaでの可視化方法については[ソルティスターのHP](https://www.saltyster.com/speedbee-hive-trial/)掲載のマニュアル（SpeeDBee Hive（Grafana連携）.pdf）に記載されているため、詳細については割愛しますが以下のような照度データのグラフを簡単に生成することが出来ます！
下の例では、現在時刻から過去15分間の照度データの推移を表示しており、10秒間隔でリアルタイムに更新をしています。表示範囲や更新時間は赤枠の設定で調整することが可能ですので、色々試してみてください。
![HIVE_Grafana可視化(照度).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/47207861-26f1-bb7b-39e7-02d20f80976e.png)

もちろん収集データはCSVでダウンロードすることも可能です。
グラフタイトルにある「Inspect」の「Data」をクリックし、「Download CSV」をクリックしてください。
![Grafana_csvダウンロード画面移動前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/3f17502b-46c6-2366-42b4-efe7476ed9b7.png)
![Grafana_CSVダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/9dae79f0-6e24-220a-4433-78980c6af3f8.png)


# まとめ
今回はAE2100にソルティスターのSpeeDBee Hiveをインストールし、SmartHop対応の照度センサデータの収集・可視化を行いました。
難しいプログラミング等は一切行わず、GUI操作のみで簡単にIoTシステムを構築出来ることを実感いただけたのではないでしょうか。
次回はSpeeDBee Hiveを使用し、CO2濃度の閾値をトリガーとしてパトランプを制御するような記事を投稿予定です。

次回の記事:
[AE2100でソルティスターの「SpeeDBee Hive」を使用してみよう(2) ―パトランプ制御編―](https://qiita.com/shimatak/items/1dafcc8bb79574ab6052)

SpeeDBee Hiveの関連記事：
・[～「SpeeDBee Hive」でBluetooth対応のセンサーコレクタを開発する(SwichBot温湿度計) ～](https://qiita.com/ss_nagahari/items/d26ad5e20a0fcd38a49a)
・[～「SpeeDBee Hive」でBluetooth対応のセンサーコレクタを開発する(INKBIRD温湿度計)　～](https://qiita.com/ss_nagahari/items/45ad50b2ced82b1c0354)