2016-12-03 7 views
0

これは、ある形や別の形で求められている場合は申し訳ありません。ビーコンやCoreLocationを使ったXcode(Swift)で作業を始めました。私は本当にデバイスとビーコンの間でより正確な判断が必要です。これまでは、標準近接領域値(Far、Near、およびImmediate)を使用していましたが、これはまったくそれをカットしていません。私が探している解決策では、あまりにも不安定に思えます。デバイスからビーコンまでの距離をより正確にする方法は?

私のシナリオ。

ビーコンから約4メートル離れたところで、通知、広告、画像などをユーザーのデバイスに表示する必要があります。これは簡単なことですが、ビーコンの唯一の現実的な解決策は前述の近接領域であることが分かったとき、私は3-5メートル離れたデバイスにのみ表示する必要があるため、心配し始めました。

私はCLBeaconクラスの精度プロパティを知っていますが、アップル社は、私が達成しようとしていると信じているビーコンの正確な配置には使用すべきではありません。

解決方法はありますか?どんな助けもありがとう!

おかげで、 オリー

+0

ビーコンはかなり長い間処理されていませんでしたが、ビーコンが送信できる何らかの「パワー」値があることを覚えています。そのため、送信信号(パワー)に関する信号強度をよりよく推定できます。 – shallowThought

+0

ありがとう、私はそれを見て、それに応じて投稿を更新します。 – HairySeal

答えて

3

それはBluetooth無線信号との距離を推定することになると物理学の制限があります。電波ノイズ、信号反射、障害物は、電波強度に基づいて距離を推定する能力にすべて影響します。距離を見積もるためにビーコンを使用しても構いませんが、はあなたの期待を適切に設定する必要があります。

CoreLocationのアップルのアルゴリズムは、測定された信号強度の平均値が20秒を超えているので、CLBeacon精度フィールドに入力された距離推定値をメートルで表示します。次に、このフィールドの結果を使用してプロキシミティフィールドが生成されます。 (0.5メートル以下の場合は即時、0.5-3メートルの場合など)

Appleが精度フィールドを使用することを推奨している場合、それは単に非現実的な期待からあなたを守るためです。これは決して正確な推定値ではありません。最高の結果は、ビーコンと電話との間に障害物がなく、携帯電話が比較的静止している状態で、電話をポケットから出すことになります。 最良の状態では、距離が3メートル以内の距離で+/- 1メートルの距離が得られると予想されます。遠ざかるほど、より多くのバリエーションが表示されます。

あなたのユースケースに適しているかどうかを判断する必要があります。あなたがビーコンを制御することができた場合は、できるだけ良い結果を作るためにできることがいくつかあります。

  1. はできるだけ高く設定するビーコン送信機の電源を入れこれにより、信号対雑音比が高くなり、距離推定値が向上します。
  2. 広告料金をできるだけ高くします。これにより、より多くの統計サンプルが得られるため、距離推定値が向上します。
  3. 可能な限り障害物が少ない場所にビーコンを配置します。
  4. 上記のように変更した後、常にビーコンをキャリブレーションしてください。キャリブレーションでは、信号レベルを1メートルで測定し、これをビーコン内部のキャリブレーション定数として保存します。このキャリブレーションの詳細については、ビーコンの製造元の説明書を参照してください。
+0

非常に有益な答えです、ありがとう – HairySeal

関連する問題