121 votes

Comprendre la distanciation ibeacon

Essayez de saisir un concept de base sur la façon dont la distanciation avec ibeacon peut fonctionner. Existe-t-il une vraie documentation sur la mesure dans laquelle un ibeacon peut mesurer exactement? Disons que je suis à 300 pieds ... est-il possible pour un ibeacon de détecter cela?

235voto

davidgyoung Points 14271

La distance estimation fournie par iOS est basé sur le rapport de l'iBeacon la force du signal (rssi) au cours de l'étalonnage de puissance de l'émetteur (txPower). Le txPower est connu que le signal mesuré de la force dans les rssi à 1 mètre de l'appareil. Chaque iBeacon doit être calibré avec cette txPower valeur pour permettre l'exactitude des estimations de distances.

Lorsque nous étions à la construction de l' Android iBeacon bibliothèque nous avons dû venir avec notre propre algorithme, car l'iOS CoreLocation code source n'est pas disponible. Nous avons mesuré un tas de rssi mesures à distance, puis a un meilleur ajustement de la courbe à la hauteur de nos points de données. L'algorithme nous avons trouvé est montré ci-dessous à titre de code Java.

Notez que le terme "exactitude", voici iOS parler de la distance en mètres. Cette formule n'est pas parfait, mais il est à peu près se rapproche de ce que l'iOS.

protected static double calculateAccuracy(int txPower, double rssi) {
  if (rssi == 0) {
    return -1.0; // if we cannot determine accuracy, return -1.
  }

  double ratio = rssi*1.0/txPower;
  if (ratio < 1.0) {
    return Math.pow(ratio,10);
  }
  else {
    double accuracy =  (0.89976)*Math.pow(ratio,7.7095) + 0.111;    
    return accuracy;
  }
}   

66voto

Mark Fassler Points 351

L'iBeacon puissance de sortie est mesurée (calibré) à une distance de 1 mètre. Supposons que c'est -59 dBm (juste un exemple). L'iBeacon comprendra ce numéro dans le cadre de son CHIER de publicité.

L'appareil d'écoute (iPhone, etc), permettra de mesurer le RSSI de l'appareil. Supposons, par exemple, que c'est, disons, -72 dBm.

Étant donné que ces numéros sont en dBm, le rapport de la puissance est en fait la différence en dB. Donc:

ratio_dB = txCalibratedPower - RSSI

Afin de les convertir en un linéaire de rapport, nous utilisons la formule standard pour la dB:

ratio_linear = 10 ^ (ratio_dB / 10)

Si nous supposons que la conservation de l'énergie, puis la puissance du signal doit tomber comme 1/r^2. Donc:

power = power_at_1_meter / r^2. La résolution de r, on obtient:

r = sqrt(ratio_linear)

En Javascript, le code ressemblera à ceci:

function getRange(txCalibratedPower, rssi) {
    var ratio_db = txCalibratedPower - rssi;
    var ratio_linear = Math.pow(10, ratio_db / 10);

    var r = Math.sqrt(ratio_linear);
    return r;
}

Notez que, si vous êtes à l'intérieur d'un bâtiment en acier, puis il y aura peut-être les réflexions internes qui font que le signal de décroissance plus lente que 1/r^2. Si le signal passe à travers un corps humain (de l'eau), puis le signal sera atténué. Il est très probable que l'antenne n'a pas de gain égal dans toutes les directions. Objets en métal dans la chambre peut créer d'étranges figures d'interférence. Etc, etc... YMMV.

2voto

Jiaru Points 66

iBeacon utilise Bluetooth Low Energy (LE) pour connaître les emplacements. La distance / portée de Bluetooth LE est de 160 ft ( http://en.wikipedia.org/wiki/Bluetooth_low_energy ).

2voto

Chris Stratton Points 23061

Les Distances à la source de iBeacon format des paquets d'annonce sont estimés à partir du signal de chemin d'accès de l'atténuation calculée en comparant la valeur mesurée de la puissance du signal reçu à la prétendue puissance de transmission laquelle l'émetteur est censé encoder dans la publicité de données.

Une perte de régime comme cela est mentionné à titre indicatif et est sujet à des variations avec des choses comme les antennes angles, intervenant objets, et sans doute un bruyant environnement RF. En comparaison, les systèmes de vraiment conçu pour la mesure de la distance (GPS, Radar, etc) reposent sur la précision des mesures de temps de propagation, dans le même cas, même l'examen de la phase du signal.

Comme Jiaru points, 160 ft est probablement au-delà de la portée, mais cela ne veut pas nécessairement dire qu'un paquet ne sera jamais passer à travers, seulement que l'on ne doit pas s'attendre à travailler à distance.

1voto

danh Points 21498

C'est possible, mais cela dépend de la puissance de sortie de la balise que vous recevez, des autres sources RF proches, des obstacles et d'autres facteurs environnementaux. La meilleure chose à faire est de l'essayer dans l'environnement qui vous intéresse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X