Sigfox社が低消費電力の利点を活かした位置情報サービスAtlas Wi-Fiが正式リリースされました。このサービスを利用することにより、GPSモジュールを必要としないトラッキングデバイスを開発することができます。また、GPSでは捕捉できない屋内位置推定としても使えますので、GPS+WiFiというハイブリッドなLPWAトラッカーを実現することも可能です。
ここでは、2回に分け、Atlas + WiFiの使い方を説明していきます。
#Altas+WiFiとは
Atlas+WiFiは、Sigfoxゲートウェイで受信したメッセージの受信レベルからIoTデバイスの位置を推定するSigfox Geolocation Atlasに加え、WiFiアクセスポイントの情報から位置を推定するサービスを追加したものです。デバイスは、GPSモジュールを搭載する必要なく、WiFiモジュールでアクセスポイントのMACアドレスをSigfoxメッセージとして送信することにより、推定位置情報をCallbackしてくれるサービスです。
イメージ的には、Google Map Geolocation APIに近いのですが、Googleのサービスより低価格に利用可能です。
#ESP8266とは
ESP8266は、中国のEspressif社が製造しているマイクロコントローラ付きWiFiモジュールで国内でも技適の問題なく購入可能です。価格も数百円で、Sigfox通信モジュールと合わせても500円程度でトラッカーが完成します。(もちろん、アンテナ、筐体、バッテリーなどは無視していますが。)
※写真の製品は、ESP8266を搭載した開発ボードESPr® Developerです。
ESPr Developerは、USB-シリアル変換IC FT231XSを搭載していますので、PCとシリアル接続し、簡単にESP8266のATコマンドを使った動作確認が可能です。
ATコマンドは、こちらのドキュメントで確認できます。
#Atlas+WiFiに必要な情報をESP8266で取得する
Atlas+WiFiサービスを使うためには、無線LANアクセスポイントのMACアドレスをSigfoxメッセージとして送信すれば可能です。たった2つのATコマンドで実現できるでしょう。
##ESP8266でWiFi MACアドレスを取得する
ESP8266でWiFiのMACアドレスを取得するには、下記2つのATコマンドで可能です。
1.Stationモードで起動する
今回は、周辺にある無線LANアクセスポイントのMACアドレスを取得するだけですから、ESP8266は無線クライアントして立ち上げておけば結構です。
AT+CWMODE=1
2.周辺アクセスポイントをリストアップする
下記コマンドで可能です。
AT+CWLAP
私の自宅で試してみたところ、こんな感じで取得できました。
あとは、ここで取得したMACアドレスをSigfoxメッセージで送信(AT$SFコマンド)すればよいのですが、Sigfox上りメッセージのペイロード長は、最大12バイトです。MACアドレスは48ビット長(6バイト)ですので、2つのMACアドレスしか送れません。
つまり、測位に必要のないアクセスポイント情報は送っては大損ですので、テザリング端末の削除などの工夫が必要です。
とにかく、WiFiモジュールとSigfoxモジュールで安価かつ屋内も利用可能なトラッキングツールが開発可能です。是非、お試しください。