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

From air
Jump to navigation Jump to search
Line 108: Line 108:
   
 
=Expérimentations et Résultats=
 
=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 ce qui permet d'avoir <math>1Oexpo((RSSI-A)/(10*n))</math>
  +
  +
  +
  +
==Trilatération==
 
=Photos et Vidéo=
 
=Photos et Vidéo=

Revision as of 19:36, 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 ce qui permet d'avoir <math>1Oexpo((RSSI-A)/(10*n))</math>


Trilatération

Photos et Vidéo