Eu gostaria de calcular a localização exata de um dispositivo móvel dentro de um edifício (sem acesso GPS)
Quero fazer isso usando a força do sinal (em dBm) de pelo menos 3 sinais de wifi fixos (3 roteadores fixos dos quais conheço a posição)
O Google já faz isso e eu gostaria de saber como eles descobriram a localização exata com base nesses dados
Verifique este artigo para obter mais detalhes: http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets
Respostas:
FSPL depende de dois parâmetros: o primeiro é a frequência dos sinais de rádio ; o segundo é a distância de transmissão sem fio. A fórmula a seguir pode refletir a relação entre eles.
A partir da equação da margem de esmaecimento, a perda do caminho do espaço livre pode ser calculada com a seguinte equação.
Perda do caminho do espaço livre = Tx Power-Tx Cable Loss + Tx Antenna Gain + Rx Antenna Gain - Rx Cable Loss - Rx Sensitivity - Fade Margin
Com as duas equações de perda do caminho do espaço livre acima, podemos descobrir a distância em km.
A zona de Fresnel é a área ao redor da linha de visão visual em que as ondas de rádio se espalham depois de deixar a antena. Você deseja uma linha de visão clara para manter a força, especialmente para sistemas sem fio de 2,4 GHz. Isso ocorre porque as ondas de 2,4 GHz são absorvidas pela água, como a água encontrada nas árvores. A regra geral é que 60% da zona de Fresnel deve estar livre de obstáculos. Normalmente, o bloqueio da zona de Fresnel de 20% apresenta pouca perda de sinal para o link. Acima de 40% de bloqueio, a perda de sinal se tornará significativa.
Fonte: http://www.tp-link.com/en/support/calculator/
fonte
Para calcular a distância, você precisa da intensidade e frequência do sinal. Aqui está o código java:
A fórmula usada é:
Exemplo: frequência = 2412 MHz, signalLevel = -57dbm, resultado = 7.000397427391188m
Esta fórmula é a forma transformada da fórmula de perda de caminho de espaço livre (FSPL) . Aqui, a distância é medida em metros e a frequência - em megahertz. Para outras medidas, você deve usar uma constante diferente (27,55). Leia as constantes aqui .
Para mais informações, leia aqui .
fonte
Aqui:
K
- constante (32,44, quandof
em MHz ed
em km, mudar para -27,55 quandof
em MHz ed
em m)FSPL
- Perda do caminho do espaço livrePtx
- potência do transmissor, dBm (até 20 dBm (100mW))CLtx
,CLrx
- perda de cabo no transmissor e receptor, dB (0, se não houver cabos)AGtx
,AGrx
- ganho da antena no transmissor e receptor, dBiPrx
- sensibilidade do receptor, dBm (até -100 dBm (0,1pW))FM
- margem de desvanecimento, dB (mais de 14 dB (normal) ou mais de 22 dB (bom))f
- frequência do sinal, MHzd
- distância, m ou km (depende do valor de K)Nota: há um erro nas fórmulas do site de suporte TP-Link (mising
^
).Substitua
Prx
pela intensidade do sinal recebido para obter uma distância do AP WiFi.Exemplo: Ptx = 16 dBm, AGtx = 2 dBi, AGrx = 0, Prx = -51 dBm (intensidade do sinal recebido), CLtx = 0, CLrx = 0, f = 2442 MHz (7º canal 802.11bgn), FM = 22. Resultado: FSPL = 47 dB, d = 2,1865 m
Observação: FM (margem de esmaecimento) parece irrelevante aqui, mas estou deixando-o por causa da fórmula original.
Você deve levar em conta as paredes, a tabela http://www.liveport.com/wifi-signal-attenuation pode ajudar.
Exemplo: (dados anteriores) + uma parede de madeira (5 dB, da mesa). Resultado: FSPL = FSPL - 5 dB = 44 dB, d = 1,548 m
Observe também que o ganho da antena não adiciona potência - descreve a forma do padrão de radiação (donut no caso de antena omnidirecional, zepelim no caso de antena direcional, etc).
Nada disso leva em consideração as reflexões do sinal (não tenho uma ideia de como fazer isso). Provavelmente o ruído também está faltando. Portanto, essa matemática pode ser boa apenas para uma estimativa aproximada de distância.
fonte
a resposta simples para sua pergunta seria triangulação. Que é essencialmente o conceito em todos os dispositivos GPS, gostaria de ler este artigo para saber mais sobre como o Google faz isso: http://www.computerworld.com/s/article/9127462/FAQ_How_Google_Latitude_locates_you_?taxonomyId=15&pageNumber= 2 .
Pelo que entendi, eles usam um serviço semelhante ao Skyhook , que é um software de localização que determina sua localização com base em seus sinais de wi-fi / celular. Para atingir sua precisão, esses serviços têm grandes servidores de bancos de dados que armazenam informações de localização nessas torres de celular e pontos de acesso wi-fi - eles realmente pesquisam áreas metropolitanas para mantê-las atualizadas. Para que você consiga algo semelhante, presumo que você precise usar um serviço como o Skyhook - você pode usar seu SDK ( http://www.skyhookwireless.com/location-technology/ ).
No entanto, se você quiser fazer algo interno (como usar as localizações dos seus próprios roteadores), provavelmente terá que criar um algoritmo que imite a triangulação. Você terá que encontrar uma maneira de obter o
signal_strength
emac_address
do dispositivo e usar essas informações junto com as localizações de seus roteadores para descobrir a localização. Você provavelmente pode obter informações sobre os dispositivos conectados aos seus roteadores fazendo algo semelhante a isto ( http://www.makeuseof.com/tag/check-stealing-wifi/ ).fonte
Distância (km) = 10 ^ ((Perda do Caminho no Espaço Livre - 92,45 - 20log10 (f)) / 20)
fonte
Em geral, esta é uma maneira muito ruim de fazer as coisas devido à interferência de vários caminhos . Esta é definitivamente mais uma questão de engenharia de RF do que de codificação.
Tl; dr, a energia de RF do wi-fi fica espalhada em diferentes direções após ricochetear nas paredes, nas pessoas, no chão, etc. Não há como saber onde você está apenas pela triangulação, a menos que você esteja em uma sala vazia com os beacons wi-fi colocados em exatamente o lugar certo.
O Google consegue se safar com isso porque eles essencialmente podem mapear onde cada SSID wi-fi está para um local GPS quando qualquer usuário Android (que opta por seu serviço) entra no alcance. Dessa forma, da próxima vez que um usuário passar por lá, mesmo sem um sinal de GPS perfeito, a nave-mãe do Google poderá dizer onde você está. Normalmente, eles usam isso em conjunto com um sinal de GPS de baixa qualidade.
O que vi feito é uma grade de dispositivos Zigbee ou BTLE. Se você sabe onde eles estão dispostos, você pode usar o RSS combinado para descobrir relativamente de quais você está mais próximo e partir daí.
fonte
Não se preocupe se você é um moderador. Eu escrevi meu texto para meu público, não como um escritor técnico
Tudo que vocês precisam aprender a navegar com ferramentas anteriores ao GPS. Algo como um sextante, octante, backstaff ou um astrolábio.
Se você recebeu o sinal de 3 locais diferentes, então você só precisa medir a intensidade do sinal e fazer uma relação desses locais. Cálculo de triângulo simples onde a2 + b2 = c2. Quanto mais forte for a intensidade do sinal, mais próximo o dispositivo estará do receptor.
fonte