Open Source French Drone Identification

J’ai bien la génération de trames beacon et l’émission en wifi sur le canal 6 et avec le ssid choisi, vue avec Wifi Analyser sur android.

Bonjour Patrick,

Es-tu certain de voir les trames de la balise Drone ID sur Wifi Analyzer, moi je ne vois que la balise standard de l’AP qui est configurée à 1 seconde de période dans le code de Laurent. Si je modifie le code pour basculer en mode Wifi station, je ne vois plus la balise Drone ID sur Wifi Analyzer mais elle est pourtant bien émise, on la voit sur Wireshark en mode monitor.

On peut penser qu’une appli Android sera développée, les forces de gendarmerie sont équipées de tablettes Android qui pourraient récupérer sur le terrain l’ID du Drone à contrôler…

Sur un drone DIY, on peut relier le petit ESP8266 ESP-01 au TX du GPS, en parallèle, à l’entrée du FC , soit un seul GPS… On est alors vraiment compact pour répondre au besoin de balise Drone ID… :blush:

Bonsoir Patrick,
Non, je ne suis pas certain, je vois l’identifiant choisi sur le canal 6 mais pas de trame évidemment. La possibilité avec le code proposé par f5soh de décoder avec un esp32 doit permettre de valider la présence réelle des trames, non ?

Quand à faire une balise d’identification du drone sans GPS intégré, c’est évidemment possible mais faut-il pouvoir réussir à récupérer la trame nmea du gps intégré au drone, en drone DIY c’est surement un bon plan, mais sur un drone commercial, c’est plus simple d’utiliser un gps indépendant supplémentaire.
Cela multiplie les GPS mais bon… Il y en aura 3 (drone, tablette/smartphone, balise)

" As-tu essayé avec les librairies préconisées ? "

J’ai telechargé les librairies qui étaient indiquées dans le fichier "platformio.ini"et qui correspondent aux liens qui tu viens de donner

Je n’ai pas essayé le décodage de F5SOH, mais la référence, c’est le logiciel de la Gendarmerie Nationale :

Il faut un PC sous linux avec une carte Wifi PCI et alors on décode les trames émises par le montage ESP8266 (ou les autres).
Je me suis amusé à transformer les messages en fichier .KML pour visualiser le parcours du drone dans GoogleEarth. :slightly_smiling_face:
(plus haut dans cette discussion)

Poursuite des essais.
Je viens de complètement désinstaller Arduino et toutes ses bibliothèques.

Je viens d’installer la dernier version officiel Arduino, puis toutes les librairies préconisées.
La librairie “Dragino/Lora” ne s’installe pas et renvoie le message d’erreur " Le dossier spécifié ne contiens pas de bibliothèque valide "
j’ai réussi à trouver une bibliothèque Lora dans le gestionnaire de bibliothèque. J’ai pris LoRa by Sandeep Mistry version 0.7.2…

Le code est enfin compilable et je viens de le téléverser dans ma carte T-BEAM. Mon téléphone trouve bien un WiFi “ILLEGAL_DRONE_AP”, donc, je pense que cela fonctionne correctement :wink:

Est-ce que l’un de vous sait à quoi sert ce module ?
Est-il nécessaire pour notre application ?
Est-il possible de le déplacer et le mettre a un autre endroit sur le dessus de la platine, et si oui a quel endroit pour ne pas créer d’interférence avec les autres modules ?

Le but est d’arriver à avoir un module plus compact, puisque je prévois de l’alimenter directement avec du 5 V pour m’affranchir du support d’accu et de l’accu. Je n’ai pas besoin que le module soit autonome, mais fonctionne seulement lorsque je mets en service mes modèles

C’est l’antenne pour le GPS, à orienter avec la face métallisée vers le haut.
Elle ne va pas créer d’interférences, c’est uniquement de la réception.

Merci pour l’info :+1:

C’était mon idée première, mais celle des Naza DJI étant bien plus grosse, j’ai eu un doute !
Donc, je vais aller la coller de l’autre coté et avec la face métallisée qui sera de ce fait vers le haut

Et comme ça, si tu plantes ton modèle et que tu perds l’alimentation, tu auras plus de mal à le retrouver…

Certes, mais il n’y a visiblement pas d’application permettant de retrouver le modèle !

J’arrive juste a trouver le réseau WiFi du module sur mon téléphone, mais je n’accède même pas aux données, donc même si il reste alimenté (tout en gardant à l’esprit que si je le plante, il y a des chances qu’il reste alimenté) , je vois pas en quoi cela m’aiderait à le retrouver !

10 m/s, cela ne fait que 36 km/h. il arrive de voler bien plus vite que cela. j’ai déjà dépassé les 100 km/h :rocket:

ça dépend en effet des drones :grinning:

Et la loi ne s’adresse pas qu’aux drones, mais aux aéronefs sans pilote, de plus de 800 gr, ce qui veut dire aussi, les avions, les planeurs, les hélicoptères, les autogyres, etc…

En effet, et je n’ai jamais écrit qu’il fallait supprimer définitivement la condition de distance, juste que dans mon cas, ça ne se produirait que rarement de faire 10 m/s et je compte bien remettre cette condition quand j’aurai reçu le module GPS commandé :wink:

C’est pas mal. Dommage que l’on puisse pas faire un enregistrement sur une carte µSD de la position tout les 100 ou 200 ms.
J’avais, ou plus exactement, j’ai un module Flytrex qui se connecte sur le GPS d’un contrôleur Naza et qui permet d’enregistrer la position des modèles tout les 1/4 de seconde. Malheureusement, la société qui avait développé le module a arrêté ses serveurs et si le module fonctionne toujours et enregistre bien la position dans la carte µSD, les informations sont codées et seul un passage sur le site du fabricant permettait un décodage et d’exporter un fichier KML ou CSV. Cela me permettait de conserver mes données de vol, et le cas échéant de pouvoir démontrer ma bonne foi. Certes, il était possible de ne pas le brancher, et de faire des vols “illégaux”, mais bon, ce n’était pas le but.

Je viens de tester le décodage de la trame avec ton code “decode balise” implanté sur une carte wemos D1 mini.
Verdict, je reçois bien les trames émise par un autre wemos :grinning:

21:52:05.503 → ID: 00000000000000000-UAS-FR-192xx LAT: 41.88244 LON: 1.88789 ALTmsl: 164
21:52:08.503 → ID: 00000000000000000-UAS-FR-192xx LAT: 41.88241 LON: 1.88789 ALTmsl: 162
21:52:11.503 → ID: 00000000000000000-UAS-FR-192xx LAT: 41.88245 LON: 1.88790 ALTmsl: 164
21:52:14.503 → ID: 00000000000000000-UAS-FR-192xx LAT: 41.88252 LON: 1.88793 ALTmsl: 168
21:52:17.502 → ID: 00000000000000000-UAS-FR-192xx LAT: 41.88255 LON: 1.88793 ALTmsl: 170

Par contre, assez inexplicablement, j’ai du choisir comme carte ‘généric 8266 module’ dans arduino sinon ça plantait…
Merci pour ce programme de décodage !

1 Like

La balise a base d’esp32 fonctionne donc correctement sauf pour l’emission de trames dépendants de la distance parcourue. Si je laisse en l’état le seuil de 30m, j’ai régulièrement un affolement d’émission de trame avec des trames émises sans intervalle entre elles… Pour y remédier, soit j’enlève le test, soit j’augmente le seuil à 3000m… (300m ne suffisant pas). J’ai essayé de comprendre un peu le code mais j’atteint très vite mes limites…
Les trames reçues: Les 3 premières ont le bon intervalle, les suivantes se suivent sans latence.
09:03:30.986 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12262 LON: 2.17793 ALTmsl: 171
09:03:33.986 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12262 LON: 2.17792 ALTmsl: 172
09:03:36.986 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12262 LON: 2.17792 ALTmsl: 172
09:03:36.986 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:36.986 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.033 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.033 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.033 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.033 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.080 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.080 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.080 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.080 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.127 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.127 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.127 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.174 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.174 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172
09:03:37.174 -> ID: 00000000000000000-UAS-FR-18850 LAT: 41.12261 LON: 2.17792 ALTmsl: 172

Bonsoir,

Il semble y avoir quelques erreurs dans la librairie droneID_FR, je l’ai modifiée dans une branche de test : https://github.com/f5soh/balise_esp32/tree/droneID_FR_testing

  • la mise à jour de la position se fait en une seule fois : lat, long et altitude
  • la position de départ (Home) est intégrée dans la librairie, ainsi que le calcul de l’altitude (height) par rapport au point départ.
  • le calcul de la distance depuis la dernière position émise se fait en 3D. (actuellement pour un appareil qui monte à la verticale sa position ne serait émise que toutes les 3s)
  • Après chaque envoi la position est enregistrée : lat, long, altitude dans set_last_send()

Cela me semble mieux et je n’ai plus de trames émises en rafale.

@khancyr Je peux faire un PR si besoin :cold_face:

Bonjour,

Sympa !
Effectivement, j’avais pas fait le calcul de distance en 3D, je peux mettre à jour !
Par contre, je prefère garder la possibilité de rentrer l’altitude séparament, si on a une autre donnée que la donnée GPS c’est mieux !
Pour le calcul de distance, on m’a déja proposé cette solution qui fonctionne par rapport au dernier point émis (en gros une fence de 30m), mais pour ma part je prefère rester sur l’'accumulateur de distance parcouru qui est plus restrictif (notament à cause de imprecision GPS).

Waouh, Super et merci pour la rapidité ! Je n’ai plus de trames en rafales non plus :sunglasses: Ton nouveau code solutionne bien le problème.

Le principe d’accumuler les distances est surement bon, mais il y a un bug qui provoque des rafales incessantes de trames…

Un grand merci à tout les deux !!