geolocation - saber - wifi signal strength meter
¿Cómo calcular la distancia desde el enrutador Wifi usando Signal Strength? (5)
Distancia (km) = 10 ^ ((pérdida de ruta de espacio libre - 92.45 - 20log10 (f)) / 20)
Me gustaría calcular la ubicación exacta de un dispositivo móvil dentro de un edificio (por lo que no hay acceso por GPS)
Quiero hacer esto usando la intensidad de la señal (en dBm) de al menos 3 señales wifi fijas (3 enrutadores fijos de los cuales conozco la posición)
Google ya lo hace y me gustaría saber cómo averiguan la ubicación exacta en función de estos datos.
Consulte este artículo para obtener más información: http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets
FSPL depende de dos parámetros: el primero es la frecuencia de las señales de radio; el segundo es la distancia de transmisión inalámbrica. La siguiente fórmula puede reflejar la relación entre ellos.
FSPL (dB) = 20log10(d) + 20log10(f) + K
d = distance
f = frequency
K= constant that depends on the units used for d and f
If d is measured in kilometers, f in MHz, the formula is:
FSPL (dB) = 20log10(d)+ 20log10(f) + 32.44
A partir de la ecuación Fade Margin, Free Space Path Loss se puede calcular con la siguiente ecuación.
Pérdida de ruta de espacio libre = Tx Pérdida de cable Power-Tx + Ganancia de antena Tx + Ganancia de antena Rx - Pérdida de cable Rx - Sensibilidad de Rx - Margen de desvanecimiento
Con las dos ecuaciones de Pérdida de trayecto espacial libres anteriores, podemos averiguar la distancia en km.
Distance (km) = 10(Free Space Path Loss – 32.44 – 20log10(f))/20
La zona de Fresnel es el área alrededor de la línea de visión visual por la que se extienden las ondas de radio después de que salen de la antena. Desea una línea de visión clara para mantener la resistencia, especialmente para sistemas inalámbricos de 2.4GHz. Esto se debe a que las ondas de 2.4GHz son absorbidas por el agua, como el agua que se encuentra en los árboles. La regla general es que el 60% de Fresnel Zone debe estar libre de obstáculos. Normalmente, el bloqueo del 20% de Fresnel Zone introduce poca pérdida de señal en el enlace. Más allá del bloqueo del 40%, la pérdida de señal será significativa.
FSPLr=17.32*√(d/4f)
d = distance [km]
f = frequency [GHz]
r = radius [m]
Para calcular la distancia, necesita la intensidad de la señal y la frecuencia de la señal. Aquí está el código de Java:
public double calculateDistance(double signalLevelInDb, double freqInMHz) {
double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(signalLevelInDb)) / 20.0;
return Math.pow(10.0, exp);
}
La fórmula utilizada es:
distance = 10 ^ ((27.55 - (20 * log10 (frequency)) + signalLevel) / 20)
Ejemplo: frecuencia = 2412MHz, signalLevel = -57dbm, resultado = 7.000397427391188m
Esta fórmula se transforma de la fórmula de pérdida de ruta de espacio libre (FSPL) . Aquí la distancia se mide en metros y la frecuencia, en megahercios. Para otras medidas, debe usar una constante diferente (27.55). Lee las constantes here .
Para más información lea here .
la respuesta simple a tu pregunta sería Triangulación. Que es esencialmente el concepto en todos los dispositivos de GPS, me gustaría leer este artículo para aprender más acerca de cómo Google hace esto: http://www.computerworld.com/s/article/9127462/FAQ_How_Google_Latitude_locates_you_?taxonomyId=15&pageNumber=2 .
Desde mi punto de vista, usan un servicio similar a Skyhook , que es un software de ubicación que determina su ubicación en función de las señales de wifi / teléfono celular. Para lograr su precisión, estos servicios tienen grandes servidores de bases de datos que almacenan información de ubicación en estas torres de telefonía móvil y puntos de acceso wifi; de hecho, encuestan las áreas metropolitanas para mantenerlo actualizado. Para que pueda lograr algo similar, supongo que tendrá que usar un servicio como Skyhook; puede usar su SDK ( http://www.skyhookwireless.com/location-technology/ ).
Sin embargo, si quiere hacer algo interno (como usar las ubicaciones de sus propios enrutadores), entonces probablemente tenga que crear un algoritmo que imite la triangulación. Tendrás que encontrar la forma de obtener la signal_strength
y mac_address
del dispositivo y usar esa información junto con las ubicaciones de tus enrutadores para llegar a la ubicación. Probablemente pueda obtener la información sobre dispositivos conectados a sus enrutadores haciendo algo similar a esto ( http://www.makeuseof.com/tag/check-stealing-wifi/ ).
K = 32.44
FSPL = Ptx - CLtx + AGtx + AGrx - CLrx - Prx - FM
d = 10 ^ (( FSPL - K - 20 log10( f )) / 20 )
Aquí:
-
K
- constante (32.44, cuandof
en MHzd
en km, cambie a -27.55 cuandof
en MHzd
en m) -
FSPL
- Pérdida de ruta de espacio libre -
Ptx
- potencia del transmisor, dBm (hasta 20 dBm (100mW)) -
CLtx
,CLrx
- pérdida de cable en el transmisor y el receptor, dB (0, si no hay cables) -
AGtx
,AGrx
- ganancia de antena en el transmisor y el receptor, dBi -
Prx
- sensibilidad del receptor, dBm (hasta -100 dBm (0.1pW)) -
FM
- margen de desvanecimiento, dB (más de 14 dB (normal) o más de 22 dB (válido)) -
f
- frecuencia de la señal, MHz -
d
- distancia, m o km (depende del valor de K)
Nota: hay un error en las fórmulas del sitio de soporte de TP-Link (mising ^
).
Sustituya Prx
con intensidad de señal recibida para obtener una distancia de WiFi AP.
Ejemplo: Ptx = 16 dBm, AGtx = 2 dBi, AGrx = 0, Prx = -51 dBm (intensidad de señal recibida), CLtx = 0, CLrx = 0, f = 2442 MHz (7''to canal 802.11bgn), FM = 22. Resultado: FSPL = 47 dB, d = 2.1865 m
Nota: FM (margen de desvanecimiento) parece ser irrelevante aquí, pero lo dejo debido a la fórmula original.
Debe tener en cuenta las paredes, la tabla http://www.liveport.com/wifi-signal-attenuation puede ayudar.
Ejemplo: (datos previos) + una pared de madera (5 dB, de la tabla). Resultado: FSPL = FSPL - 5 dB = 44 dB, d = 1.548 m
También tenga en cuenta que el aumento de antena no agrega potencia; describe la forma del patrón de radiación (donut en caso de antena omnidireccional, zeppelin en caso de antena direccional, etc.).
Nada de esto tiene en cuenta las reflexiones de la señal (no tengo una idea de cómo hacer esto). Probablemente también falte ruido. Entonces, esta matemática puede ser buena solo para la estimación aproximada de la distancia.