PAE 2021 Envoi de données
Sources : https://www.signal-drone.com/2020/06/26/informations-codees-transmises-par-le-signalement-electronique/ https://www.ecologie.gouv.fr/sites/default/files/notice_signalement_electronique.pdf
https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000039685188
https://discuss.ardupilot.org/t/open-source-french-drone-identification/56904 (Très utile)
https://github.com/GendarmerieNationale/ReceptionInfoDrone ( code source Gendarmerie pour décoder et afficher une trame beacon.)
https://www.electroniclinic.com/esp32-wroom-32d-pinout-features-and-specifications/
Sommaire
Introduction
Depuis le 27 décembre 2019 un arrêté a été déclaré stipulant les caractéristiques techniques des dispositifs de signalement des aéronefs opérés sans personne à bord. Ces dispositifs utilisent des trame beacon wifi composé de plusieurs informations afin de s’identifier. Parmi ces informations nous retrouvons : la version du protocol, l’identifiant FR, l’identifiant ANSI, la latitude et la longitude de l’appareil, son altitude, latitude et longitude du point de décollage, sa vitesse horizontale, son cap. Dans ce projet nous voulons rajouter une information supplémentaire au sein de cette trame. Cette information est la tension de la batterie de la balise.
source:https://www.signal-drone.com/2020/06/26/informations-codees-transmises-par-le-signalement-electronique/
Ici nous observons un exemple de trame, ainsi que les données obligatoires minimales à transmettre pour être en accord avec la loi drones.
Dans un premier temps nous nous servons d'une carte arduino uno, du module baliz navéol (émetteur) et d'un raspberry pi 3 pour recevoir la trame beacon que nous voulons observer. Après installation du programme de réception de la gendarmerie, trouvable à l'adresse:https://github.com/GendarmerieNationale/ReceptionInfoDrone nous pourrons recevoir, décoder et afficher la trame émise par la baliz navéol.
Mesure de la tension de la batterie
Schéma du montage de la batterie
Les résistances sont choisies avec un pont diviseur de tension. Plus précisément:
De plus les résistances sont élevées pour débiter un minimum de courant à la batterie.
Calculs de la mesure
Dans cette partie nous allons détailler comment nous mesurons la tension de la batterie étape essentielle pour pouvoir l'inclure dans la trame que nous voulons modifier. La batterie utilisée sera une Lipo 2S de tension nominale 7.4V et de tension max 8.4V. La carte esp32 contenant notre émetteur va être alimentée en 5V par un régulateur de tension. De plus les pins de cette carte étant ayant des tensions allant de 0 - 3.3V nous adaptons la tension max de notre batterie pour être en accord avec ces valeurs à l'aide d'un pont diviseur de tension. Une fois la tension acquis par le pin, nous allons être capable de la mesurer avec la fonction analogRead(GPIO) Arduino. Le résultat retourné sera une valeur analogique comprise entre 4095 et 0. Avec la courbe ce dessous, nous sommes capable de retrouver la valeur en tension à l'entrée du pin et donc à remonter à la tension de la batterie qui est à transmettre. Plus précisément il suffit de multiplier la valeur analogique lue par 0.000806 (3.3/4095) qui correspond au pas du convertisseur A.N. On obtient donc la valeur en volt de la tension sur le pin 25, que l'on multiplie par 2.545 (inverse du pont diviseur) pour retrouver la tension de la batterie, de plus: 2.545*0.000806=0.00205 donc finalement il nous suffit de multiplier la valeur obtenue à la sortie de la fonction analogRead() par 0.00205 pour obtenir la tension aux bornes de la batterie.
source:https://randomnerdtutorials.com/esp32-adc-analog-read-arduino-ide/
Émission de la trame Beacon
Premièrement qu'est ce qu'une trame beacon? les trames beacon sont constituées de 3 parties: le 802.11 MAC header, le body et un FCS.
Une trame se compose comme ça:
source:https://ensiwiki.ensimag.fr/index.php?title=Wifi_low_power
La partie qui nous intéresse ici est le body, dans lequel nous voulons ajouter une information.
Modification de la trame
Pour cette partie nous nous sommes servis du programme d'émission déjà fournis par M. Launay auquel nous avons rajouté quelques lignes de code afin de récupérer la tension et de la transmettre. Le code rajouté est le suivant: Code émetteur
Réception de la trame Beacon
Pour ce qui concerne la réception de la trame, plusieurs solutions sont possible, notamment : Solution n°1 : Utiliser une clé Wifi externe connectée sur un système Linux ou Raspberry Pi avec une programme Python. • Solution n°2 Utiliser le logiciel Wireshark sur Linux avec le récepteur Wifi en mode moniteur. • Solution n°3 : Utiliser une autre carte ESP32, puis programmer la carte pour visualiser les trames sur le moniteur série de l’IDE Arduino. • Solution n°4 : Utiliser une autre carte ESP32, puis programmer la carte. On utilisera un smartphone qui sera connecté en Bluetooth BLE à ce récepteur. On installera une application Android pour visualiser la localisation et toutes les informations (solution la plus pratique et simple).
source: Conception d’une balise de signalement électronique. Julien Launay.
Dans un premier temps nous allons essayer la solution numéro 3 à l'aide d'une seconde carte ESP32 programmée en tant que récepteur. Le résultat sur le moniteur série est le suivant:
On voit ici que le résultat n'est pas le résultat escompté, en effet on alterne entre les trames mal décodées peu lisible et les trames possédant uniquement des informations nulles.
