3. BLEゲートウェイの設定

レンジャーシステムズ製のBLEゲートウェイの設定を行います。AWS IoTに接続する為の設定の他に、ゲートウェイのWiFi設定やBLE温湿度センサーが送信するBeaconの取得方法などの設定を行います。

3.1. 電源投入

レンジャーシステムズ製のBLEゲートウェイは、USBで給電する仕組みになっています。

USBケーブルを本体に接続し、電源供給元(USB電源アダプタ、もしくは、PCのUSBポート)に接続して下さい。

アンテナを取り付けて下さい。

3.2. BLEゲートウェイを初期化する

ゲートウェイの電源が入った状態で、本体裏面にあるリセット用ボタンを5秒以上長押しすると、工場出荷状態に戻すことが出来ます。つまようじなどでリセットボタンを押して下さい。

_images/reset.png

3.3. ゲートウェイにWiFiで接続する

BLEゲートウェイの設定を行うために、BLEゲートウェイにWiFi接続します。本ゲートウェイは、工場出荷状態ではWiFiのアクセスポイント(親機)モードになっており、PCから直接WiFiで接続し、Webブラウザから設定を行うことができます。

電源投入後、ゲートウェイの起動が終わると、WiFi接続が可能なPC等のネットワーク画面で「BLE-WIFI_YY_ZZ」というSSIDが表示されます。

  • ハンズオンで使用するゲートウェイのモデル名は、iGS01です。 SSIDは、「BLE-WIFI_YY_ZZ」になります。

  • ゲートウェイのモデルがiGS02の場合、SSIDは、「IGS02_YY_ZZ」になります。

  • YY_ZZ は、ゲートウェイの背面に記録されているMACアドレスの下4桁になります。

    モデルがiGS01で、MACアドレスが “B0382915 9927” の場合、SSIDは、 BLE-WIFI_99_27 になります。

    _images/MAC-01.png

  • ご自身のゲートウェイのSSIDに接続して下さい。 WiFiのパスワードは、 12345678 です。

ゲートウェイに接続したまま、Webブラウザから
http://192.168.10.1

にアクセスすると、ゲートウェイの設定画面 にアクセス出来ます。 (Webブラウザは、 Google Chrome を使用して下さい。)

ユーザー名とパスワードを求めるポップアップが表示されますので、以下を入力し、ログインしてください。

項目
ユーザー名 admin
パスワード admin
_images/login.png

3.4. AWS IoTへ接続するための設定

「Applicatoins」タブをクリックし、ゲートウェイがAWS IoTに接続するための設定を行って下さい。最後に、[Save] ボタンを押して設定を保存します。

Rebootを促すメッセージが出ますが、まだ、Rebootしないで下さい。

項目
Application MQTT Client
Host/IP 記録しておいたEndpoint情報
Port 8883  (最初は、1883になっているので8883に書き換えて下さい)
Publish Topic sensor/<参加者番号>
Client ID ranger-gw-<参加者番号>   (AWS IoTで作成したデバイス名)
Username 空欄
Password 空欄
MQTTS Enable    (標準プロトコルのMQTTを指定)
Root CA AWSIoT Root CA
Use Certificate Enable

Endpointは、Endpointを記録する で記録しておいたAWS IoTのEndpoint情報です。

_images/applications.png

Publish Topic は、AWS IoTに送信(Publish)されるMQTTメッセージのトピック名になります。AWS IoTでは、このトピック名をAWS IoTのルールエンジンが評価し、設定したトピック名のメッセージだけを、他のAWSのサービスに渡すことができるようになります。このハンズオンでは、複数の参加者で1つのAWSアカウントを共用する場合を考慮し、トピック名に<参加者番号>を付加して、他のIAMユーザーのBLEゲートウェイが送信してくるセンサーデータと区別できるようにしています。 トピック名は、自由に付ける事が可能で、”/”で階層化できます。

例:

  • sensor/01
  • sensor/templature/room-1
  • switch/door/room-2B

AWS IoTでは、MQTT、HTTP、WebSocketなどの標準的なプロトコルが使用します。このゲートウェイでは、MQTTを使用してAWS IoTと通信します。AWS IoTでは、TLSで暗号化されたMQTT用の標準ポート番号 Port = 8883 を使用します。

3.5. 証明書の登録

先のセクションで、AWS IoTのマネジメントコンソールから証明書を作成しました。このセクションでは、作成した証明書をAWS IoTのデバイスであるBLEゲートウェイにインストールします。この証明書を使用する事で、BLEゲートウェイは、安全にAWS IoTに接続できるようになります。

BLEゲートウェイのWeb画面の「Advanced」タブをクリックしてください。

“Certificate”の横の[ファイルを選択] ボタンを押して、「証明書の作成」のセクションで保存しておいた証明書(Certificate)を選択し、[Upload Certificate] ボタンを押して、証明書をアップロードします。

“Key”の横の[ファイルを選択] ボタンを押して、保存しておいたプライベートキー(Private key)を選択し、[Upload Key] ボタンを押して、プライベートキーをアップロードして下さい。

項目 ファイル
Certificate xxxxxxxxxx-certificate.pem.crt  (証明書)
Key xxxxxxxxxx-private.pem.key  (プライベートキー)
_images/import-certificate.png

正常にアップロードが終わると、下記の様に「—– BEGEIN」で始まる証明書の内容が表示されます。「—– BEGEIN」が表示されない場合、証明書が間違っているか、Webブラウザの互換性の問題が疑われます。問題がある場合は、トレーナーに問い合わせて下さい。

まだ、Rebootしないで下さい。

_images/upload-certificate.png

3.6. BLEフィルター設定

レンジャーシステムズのBLEゲートウェイは、受信可能なBeaconを全て受信する仕様になっています。このため、BLEフィルター設定をしていなければ、スマートホンや、スマートウォッチなどが発する周囲のBeaconを全て受信し、AWS IoTに送信してしまいます。 今回使用する温湿度センサーが送信するBeaconだけをAWS IoTに送信させるために、 BLEフィルター設定 を行います。

温湿度センサーは、Payload Pattern(02010612FF590080BC4D0100D80A2D00000000000000)の様なBeaconを送信します。冒頭のBLE情報、企業コード、モデル番号は、温湿度センサー固有の情報で、固定値です。 このパターンを持つBeaconだけをAWS IoTに送信させるための設定が、BLEフィルター設定 となります。Beaconの固定部分のPayload Maskのビットをセット(FF)にして、その部分だけを比較するようにします。電池電圧、ボタンの状態、温度、湿度は変動しますので、比較の対象をから外すために、Payload Maskを(00)にします。

_images/PayloadMaskDescription.png

Payload Pattern、Payload Mask を入力し、[Save] ボタンを押して設定を保存します。

項目
Payload Pattern 02010612FF590080BC4D0100D80A2D00000000000000
Payload Mask FFFFFFFFFFFFFFFFFF00000000000000000000000000
_images/payload-pattern-mask.png

まだ、Rebootしないで下さい。

設定画面上部のRSSIは、取得するBLE Beaconの電波強度です。RSSIは、温湿度センサーとBLEゲートウェイの距離が離れれば離れるほど小さな値になります。近くのBeaconだけを受信したい場合は、RSSIの値を適宜調整します。今回は、-100dBmの設定のままにし、変更しません。(-100dBmに設定すると、受信可能なBeaconは、全て受信します。)

3.7. タイムサーバーの設定

AWS IoTにデータを送信する際、ゲートウェイは、センサーデータにデータを受信した時刻を付加し、AWS IoTに送信します。 BLEゲートウェイには、時計(RTC) が内蔵されていないため、ゲートウェイの電源をOFFにすると 時刻が1970年 1月1日 00:00 に戻ってしまいます。タイムサーバーの設定を行うと、BLEゲートウェイはインターネット上のタイムサーバー(NTPサーバー)と時刻同期し、正確な時刻情報をAWS IoTに送信できるようになります。

BLEゲートウェイのWeb画面の「System」タブをクリックし、”NTP Setting” に下記を設定してください。

項目
Enable NTP Enable
Time Server pool.ntp.org (自動的に入力されます。)
Update Period 10 mins

最後に、[Save NTP Setting] ボタンを押して、設定を保存します。

_images/time-server.png

まだ、Rebootしないで下さい。

3.8. WiFi設定

これまで、アクセスポイント(親機)モードになっているBLEゲートウェイにWiFi接続し、設定を行ってきました。このままでは、BLEゲートウエイはインターネットに接続出来ません。BLEゲートウェイをStation(子機)モードに変更し、インターネットに接続可能なWiFiアクセスポイントに接続しましょう。

[Wi-Fi] タブをクリックし、Wi-Fi設定画面に移動します。

_images/wifi.png

“Wi-Fi Mode”を “Station” (子機モード)に変更し、[Scan] ボタンを押して下さい。周囲のアクセスポイントの探索を開始します。探索が終了すると、”Done.”と表示されます。”Site survey”から、接続対象のアクセスポイントを選んでください。接続対象のアクセスポイントの情報は、別途、トレーナーから指示があります。

_images/site.png

“Security protocol”(暗号化プロトコル)は、自動的に設定されます。 “Security key”にWiFiのパスワード(PSK)を入力し、[Save] ボタンを押して設定を保存します。

_images/wifi-save.png

まだ、Rebootしないで下さい。

3.9. 最終確認

ゲートウェイの設定を再度確認して下さい。 ゲストWiFiを使用している場合、Reboot後にゲートウェイのIPアドレスを知る事が難しいため、BLEゲートウェイの再設定が出来なくなる場合があります。その場合、ゲートウェイを初期化して、最初から設定をやり直す必要がありますので、ご注意下さい。

3.10. ゲートウェイを再起動する

「Reboot」タブをクリックし、ゲートウェイを再起動して下さい。

_images/reboot.png

念のため、一度、USBケーブルを抜いて再起動して下さい。

PCとBLEゲートウェイのWiFi接続が解除されるので、PC側は、指定のWiFiアクセスポイントに接続し直して下さい。

3.11. センサーの電源を入れる

センサーのスライドスイッチをスライドさせて、電源を入れて下さい。

センサーデータ(温度、湿度など)の送信が始まります。

_images/sensor-power-on-off.png

これで、ゲートウェイ・デバイスの設定は、終わりです。BLEゲートウェイがAWS IoTに接続できるようになっているはずです。次のセクションで、AWS IoTにセンサーデータが来ているか確認してみましょう。