WiFiモジュール(ESP8266)で作るワンコイントラッカー(1)

技術情報

Sigfox社が2017年9月に開催したWorld IoT Expoで発表した位置情報サービスSigfox Geolocation Atlas + WiFiのβサービスが開始されました。このサービスを利用することにより、GPSモジュールを必要としないトラッキングデバイスを開発することができます。
ここでは、2回に分け、Atlas + WiFiの使い方を説明していきます。

Altas+WiFiとは

Atlas+WiFiは、Sigfoxゲートウェイで受信したメッセージの受信レベルからIoTデバイスの位置を推定するSigfox Geolocation Atlasに加え、WiFiアクセスポイントの情報から位置を推定するサービスを追加したものです。デバイスは、GPSモジュールを搭載する必要なく、WiFiモジュールでアクセスポイントのMACアドレスをSigfoxメッセージとして送信することにより、推定位置情報をCallbackしてくれるサービスです。
イメージ的には、Google Map Geolocation APIに近いのですが、Googleのサービスより低価格に利用可能です。

tech-180617-1.png

ESP8266とは

ESP8266は、中国のEspressif社が製造しているマイクロコントローラ付きWiFiモジュールで国内でも技適の問題なく購入可能です。価格も数百円で、Sigfox通信モジュールと合わせても500円程度でトラッカーが完成します。(もちろん、アンテナ、筐体、バッテリーなどは無視していますが。)

tech-180617-2.jpg

※写真の製品は、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
私の自宅で試してみたところ、こんな感じで取得できました。

tech-180617-3.png

あとは、ここで取得したMACアドレスをSigfoxメッセージで送信(AT$SFコマンド)すればよいのですが、Sigfox上りメッセージのペイロード長は、最大12バイトです。MACアドレスは48ビット長(6バイト)ですので、2つのMACアドレスしか送れません。
つまり、測位に必要のないアクセスポイント情報は送っては大損ですので、テザリング端末の削除などの工夫が必要です。

とにかく、WiFiモジュールとSigfoxモジュールで安価かつ屋内も利用可能なトラッキングツールが開発可能です。是非、お試しください。

> WiFiモジュール(ESP8266)で作るワンコイントラッカー(2)