Difference between revisions of "PM2M-2016-GeolocOutdoor/Suivi"

From air
Jump to navigation Jump to search
Line 117: Line 117:
 
d'après les informations documents trouvées sur le web nous avons :
 
d'après les informations documents trouvées sur le web nous avons :
   
RSSI = -(10*n)* log10(d)+A ce qui permet d'avoir <math>1Oexpo((RSSI-A)/(10*n))</math>
+
'''RSSI = -(10*n)* log10(d) + A '''
   
  +
A = valeur RSSSI à 1 mètre (mesurée ) et n = 2 valeur constant de propagation des ondes dans l'air.
   
  +
on en tire alors la formule pour la distance en fonction du RSSI.
  +
  +
d = 10exp((RSSI-A)/(10*n))
  +
  +
D'après la lecture sur le port série nous avons -28 Dbm à 1 mètre.
   
 
==Trilatération==
 
==Trilatération==
  +
  +
Les calculs de trilatération se base sur le schéma suivant :
  +
  +
[[File:Trilateration schema.png]]
  +
 
=Photos et Vidéo=
 
=Photos et Vidéo=

Revision as of 19:04, 10 April 2016

Géolocalisation Outdoor sans GPS par Trilatertion RSSI

Etudiants M2PGI PM2M: AVRIL Sébastien, BOTTRAUD Jean-Yves, FAGNO Loïc, BERGER Stéphane


Dépôt Git : github

Documents : Rapport - Transparents - Flyer - Video


Objectif

Réaliser un service temps-réel de géolocalisation outdoor sans GPS (ie tres basse consommation d'energie) en long range (LoRa). Le service sera mis en oeuvre au moyen de Spark Streaming.


Contexte

Algorithmes existants :


Bases de code:

Objectif du projet

Matériel utilisé

Technologies utilisées

Plan de développement

  • Etude de faisabilité
  • Mise en place des outils
  • Développement de la fonction de trilatération
  • Tests


Mise en place de l'infrastructure

Programmation du modem Nucleo LoRa

Compiler et flasher le programme suivant via Mbed


Pour flasher les STM32 Nucleo, il est préferable d'utiliser l'utilitaire sous Windows STSW-LINK004 de ST et OpenOCD sous Linux/MacOS en utilisant avec le bon fichier de configuration : par exemple, scripts/board/st_nucleo_l1.cfg pour les Nucleo L1XX.

Pour plus d'info sur le STM32, https://leanpub.com/mastering-stm32

Définition des formats de messages envoyés

LoRaMote --> Modem LoRa Nucleo

Modem LoRa Nucleo -- (SERIAL PORT) --> Host

  • RX;modem;size;rssi;snr;freq;bw;sf;cr;buffer

Host --> Spark

  • timestamp_host;host_id;devaddr;modem;size;rssi;snr;freq;bw;sf;cr;latitude_host;longitude_host;altitude_host
  • timestamp_host;host_id;devaddr;modem;size;rssi;snr;freq;bw;sf;cr;latitude_host;longitude_host;altitude_host;number_satellites_host
  • timestamp_host;host_id;devaddr;modem;size;rssi;snr;freq;bw;sf;cr;latitude_host;longitude_host;altitude_host;latitude_mote;longitude_mote;altitude_mote;number_satellites_mote


latitude_mote;longitude_mote;altitude_mote;number_satellites_mote servent à calculer la précision de la trilatération calculée par les algorithmes de LBS par RSSI.

Ecriture de générateurs de messages

Afin de tester les algorithmes

Enregistrement des messages

En vue de les rejouer sur les algorithmes

Ajout d'un timestamp_cluster à chaque message.

Envoi des messages avec Logstach

Calcul de trilatération avec Spark en Scala

Modifcation du code de la LoRaMote

Affichage dans Kibana

  • Affichage des positions sur une carte
  • Graphe d'évolution de la précision de l'estimation par RSSI

Expérimentations et Résultats

Lecture de la valeurs RSSI

Afin de vérifier non résultat il fallait connaître le rapport entre distance et RSSI. D'après la documentation du module nous avons :

RSSI (dBm) = -157 + Rssi pour une émission LF ou RSSI (dBm) = -164 + Rssi pour une émission HF.'

d'après les informations documents trouvées sur le web nous avons :

RSSI = -(10*n)* log10(d) + A

A = valeur RSSSI à 1 mètre (mesurée ) et n = 2 valeur constant de propagation des ondes dans l'air.

on en tire alors la formule pour la distance en fonction du RSSI.

d = 10exp((RSSI-A)/(10*n))

D'après la lecture sur le port série nous avons -28 Dbm à 1 mètre.

Trilatération

Les calculs de trilatération se base sur le schéma suivant :

Trilateration schema.png

Photos et Vidéo