Não use wpa_supplicant
, diminua um nível abaixo. Eu apenas tentei
while true ; do date -Ins ; /sbin/iw wlan0 station dump | grep signal ; done
na minha área de trabalho, o que me dá mais de 100 medições por segundo, sem uma alta variação específica.
Então eu acho que se você grep para signal avg
em vez de signal
uma vez a cada segundo, você deve estar bem. Embora possa parecer diferente no RaspPi devido ao menor poder de processamento.
Observe que esses valores são computados por magia negra dentro do driver, diferem de hardware para hardware e de driver para driver e devem ser usados apenas como uma indicação aproximada, e não presuma que os valores sejam lineares com a distância.
Então, você precisará de muitas medições para identificar a fonte com precisão.
Quanto à matemática, você deve assumir uma função monótona para mapear a intensidade do sinal para a distância ou vice-versa, talvez fazer algumas suposições como esta função poderia parecer (por exemplo, quadrática / cúbica, talvez fazer algumas medições primeiro), derivar algum erro valor para determinadas coordenadas de origem e procure por coordenadas que minimizem o erro.
Se acontecer de você fazer um projeto de código aberto para isso, eu estaria interessado em ver um link. : -)