ReButtonをAzure IoT Centralで可視化

Seeed K.K.の中井です。

2019年7月に発売が開始されたReButtonですが、 公式ドキュメント通りにAzure IoT Centralを設定しようとすると記述と異なる部分がありました。 ドキュメントがリリースされた後にAzure IoT Centralがバージョンアップしているため、更新が追いついていないようです。

ということで、この記事では現在のAzure IoT CentralにReButtonを登録(紐づけ)し、 ボタンイベントを可視化するところまでをやってみました。

公式のReButtonのドキュメントはコチラです。

seeedjp.github.io

f:id:mnakai:20210602113504p:plain

ReButton

ReButtonは、Wi-Fi搭載のシンプルなIoTボタンです。ボタン押下をトリガーにWi-Fi経由でIoTプラットフォームへそのアクションを通知することができます。 標準のファームウェアでは、Azure IoT CentralまたはAzure IoT Hubにイベントを送信することができるようになっています。 オープンソースなファームウェアはArduino IDEを使用してカスタマイズすることもできます。

f:id:mnakai:20210601094956p:plain

www.seeedstudio.com

ReButtonの使い方

ReButtonを動かすためには単4電池を2本が必要です。 電池は裏蓋を開けて挿入しておきます。

f:id:mnakai:20210602114227p:plain

電源の入れ方

Wi-Fiを利用すると消費電力が高いために電池がすぐに消耗してしまいます。 ReButtonでは基本的にボタンクリックによって電源がONするようになっているようです。

ボタンクリック → 電源ON → Wi-Fi接続 → イベント送信 → 電源OFF

ボタン操作の種類

種類というのが適切かは分かりませんが、ReButtonには1つの大きなボタンをその押し方によって複数種類のイベント送出起動モードの切替をすることができます。 ただ、このボタンの押し方には癖があり、慣れるまで思ったようにイベントを起こすことが難しいかもしれません。 ポイントは、初回は少し長めに押します。下記のようなニュアンスです。

  • カチッ(LEDが点灯)、ボタンを離す」→シングルクリック
  • カチッ(LEDが点灯)、カチ(LEDが変化)、ボタンを離す」→ダブルクリック
  • カチッ(LEDが点灯)、カチ(LEDが変化)、カチ(LEDが変化)、ボタンを離す」→トリプルクリック
ボタン操作 LEDの色 動作内容
シングルクリック ブルー D2Cメッセージを送信
ダブルクリック ライム D2Cメッセージを送信
トリプルクリック マゼンタ D2Cメッセージを送信
ロングクリック(長押し3秒) イエロー D2Cメッセージを送信
スーパーロングクリック(長押し6秒) シアン D2Cメッセージを送信
APモード(長押し10秒) ホワイト APモードで起動

初期設定

ReButtonをAzure IoT Centralに紐づける大まかな手順は下記のようになります。

  1. Azure IoT Centralにアプリケーションを作成
  2. アプリケーションにデバイステンプレートを登録
  3. ReButton用のデバイスを作成
  4. ReButton側の設定

1. Azure IoT Centralにアプリケーションを作成

Azure IoT Centralを開き、マイクロソフトアカウントでサインイン。画面右上のアイコンをクリックするとサインインすることができます。

f:id:mnakai:20210531131846j:plain

マイアプリに移動して、「新しいアプリケーション」を作成。

f:id:mnakai:20210531131939j:plain

アプリケーション名URLを入力し、料金プランを選択。 7日間5台までのお試しの無料プランを選択。ここで選択した料金プランは後で変更することができるようです。 URLは既に登録された他のIoT Centralアプリケーションと同じものを設定することはできません。 重複した場合にはエラーメッセージが表示されるので、別のURLを入力する必要があります。

f:id:mnakai:20210531131955j:plain

2. アプリケーションにデバイステンプレートを登録

空のアプリケーションが作成されました。続いてデバイステンプレートを登録していきます。 デバイステンプレートは、ReButtonがどのような機能・状態などを持っているのかを定義するものです。

ReButtonが持つ機能の内、初期ファームウェア v1.0から利用できる機能は下記のようです。

表示名 名前 機能の種類 セマンティックの種類 スキーマ 単位 表示単位
バッテリー電圧 batteryVoltage Telemetry Voltage Double Volt V
メッセージ message Telemetry Event String
アクション番号 actionNum Telemetry Event String

ダッシュボードの「Device templates」をクリックし、「IoTデバイス」を選択してテンプレートの名前を入力。

f:id:mnakai:20210531132426j:plain f:id:mnakai:20210531132437j:plain f:id:mnakai:20210531132712j:plain

空のテンプレートが作成されるので、「カスタムモデル」を選択し、「機能の追加」をクリック。

f:id:mnakai:20210602150026j:plain

クリックすると機能を定義するためのブロックが表示されるので、上の表に記載されている内容を設定。

f:id:mnakai:20210602140652j:plain

  • バッテリー電圧

f:id:mnakai:20210602140701j:plain

  • メッセージ

f:id:mnakai:20210604114616p:plain

  • アクション番号

f:id:mnakai:20210604114700p:plain

設定が終われば「保存」し、このテンプレートを利用できるようにするために「公開」しておきます。

f:id:mnakai:20210602141137j:plain

3. ReButton用のデバイスを作成

続いて、このテンプレートを使う実際のデバイスを作成し、実機と紐づけを行う準備となります。

左のメニューから「デバイス」を選択して、「デバイスの作成」を行います。

f:id:mnakai:20210531135048j:plain

デバイス名デバイスIDを入力。デバイステンプレートには先ほど作成したテンプレートを選択。

f:id:mnakai:20210531135058j:plain

画面上部の「接続」をクリックして、このデバイスと実機を紐づけるための情報をメモしておきます。

f:id:mnakai:20210531135411j:plain

後ほどIDスコープ デバイスID 主キーの3つのパラメータを実機に設定するので、メモ帳などにコピペしておきます。

f:id:mnakai:20210531135107j:plain

4. ReButton側の設定

ここから実機のReButton側の作業です。先ほどメモしたパラメータを設定すれば紐づけ作業は完了のようです。

まず、ReButtonをAPモードで起動。ボタンを10秒間押し続け、LEDがホワイトになった後にボタンを離すとAPモードで立ち上がります。 APモードで立ち上がると、ネットワークのスキャン時に「AZB-XXXXXXXXXXXX」のようなSSIDのアクセスポイントがみつかるようになります。 PCからこのネットワークに接続してWebブラウザで「192.168.0.1」を開けばReButtonの設定画面にアクセスすることができます。

f:id:mnakai:20210531141859j:plain f:id:mnakai:20210531141554j:plain

Wi-Fiを設定

続いてReButtonが利用するネットワークを設定。「Wi-Fi」をクリックして、SSIDパスフレーズを入力。ここで設定したネットワークを介してボタンイベントなどがIoT Centralに送り出されます。

f:id:mnakai:20210531143412j:plain

Azure IoT Central

続いて「Azure IoT Central」をクリックして、先ほどメモした"IDスコープ(Scope ID)"、"デバイスID(Device ID)"、"主キー(SAS Key)"を入力。

f:id:mnakai:20210531143421j:plain

ReButtonの設定はこれで完了。「Shutdown」してAPモードを終了させておきます。

動作確認

ここまででAzure IoT CentralにReButtonが紐づけされ、ボタンイベントがIoT Centralに送出されるようになりました。 ビューを設定する前にデータを受信できているか確認しておきます。 データを受信しているかどうかは"生データ"で確認することができます。

左のメニューから「デバイス」をクリックし、先ほど作成したデバイスを開きます。 ReButtonのボタンを押してイベントを発生させ、IoT Centralの画面をリロードするとログが表示されました!

下図は、ファームウェア v1.0でシングルクリックしたときのログです。

f:id:mnakai:20210531144952j:plain

ビューの設定

デバイステンプレートビューをクリックし、「デバイスの視覚化」をクリックするとビューを作成することができます。

f:id:mnakai:20210531152119j:plain

ビュー名に任意の名称を設定し、表示したい内容をタイルで追加していくようです。

A. "現在のバッテリー電圧"タイルを追加

f:id:mnakai:20210531152223j:plain

  • タイルの追加 > テレメトリ: バッテリー電圧を選択して、タイルを追加
  • タイルのサイズ: 2 x 1
  • 視覚化: 最後の既知の値

タイルのサイズと、視覚化の設定は、作成されたタイルの上部アイコンから変更できます。

f:id:mnakai:20210531153051j:plain

設定した後は「保存」します。設定済みのデバイスにこの変更を反映させるために、「公開」もしておきます。

f:id:mnakai:20210531153318j:plain

デバイスを開くと作成したビューが表示されました。

f:id:mnakai:20210531153634j:plain

B. ボタンイベントの履歴
  • タイルの追加 > テレメトリ: メッセージを選択して、タイルを追加
  • タイルのサイズ: 3 x 2 (タイル右下をドラッグして変更)
  • 視覚化: イベントの履歴

f:id:mnakai:20210531154526j:plain

まとめ

今回はReButtonをAzure IoT Centralに紐づけしてボタンイベントを可視化するところまでを試してみました。

この記事内でも「ファームウェア v1.0」というのがちらほら書きましたが、最新のファームウェアはv1.11のようです。 新しいファームウェアではmessageに加えてボタンクリック毎のイベントを送信することができるようになっています。 これを利用することで時系列にイベントをプロットするイベントグラフなどを有効に利用することができます。 下記のような表示です。

f:id:mnakai:20210601110747j:plain

ファームウェアアップデートの方法や、その設定方法については次回の記事に書きたいと思います。

変更履歴

日付 変更者 変更内容
2021/6/3 mnakai 作成