Skip to content

fanfanlatulipe26/BaliseDGAC_GPS_Logger

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
img
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

BaliseDGAC_GPS_Logger V4.0 Emetteur/Récepteur/Tracker GSM

Version d'une balise de signalisation style DGAC pour signalisation de drones et aéromodèles avec possibilité d'enregistrement des traces GPS et incluant optionnellement un module GSM permettant de recevoir un SMS de localisation. La balise a deux modes de fonctionnement:

  • Mode émetteur
  • Mode récepteur pour contrôler le fonctionnement des balises du voisinage
Balise réalisée avec un module ESP32-C3 T-01C3. Poids: 11g Quelques photos de la réalisation

Crédit:

Le cœur du logiciel qui transmet la trame spécifique d’identification à distance pour drones et aéromodèles est basé sur la version GPS_Tracker_ESP8266V1_WEB de "dev-fred" ainsi que sur les travaux de "Tr@nquille"
Les parties interface WEB et enregistrement de traces ont été rajoutées.

Principales caractéristiques:

  • Génération des signaux de signalisation électronique pour les aéromodèles, suivant les prescriptions de l'arrêté du 27 décembre 2019 (loi drone …).
  • Mode émetteur ou récepteur.
  • Possibilité d'inclure un module GSM pour recevoir un SMS de localisation facilitant la recherche du modèle en cas de perte.
  • Code compatible ESP32/ ESP32-C3 / ESP8266.
  • Interface Web accessible sur un point d'accès (AP) créé par la balise. Gestion et contrôle du bon fonctionnement de la balise. Gestion des préférences …
  • Portail captif: lors de la connexion au réseau créé par la balise le navigateur est lancé et on se retrouve directement dans l’interface utilisateur, sans besoin de donner une adresse.
  • Possibilité de coupure du point d’accès pour ne pas interférer avec les signaux radio de télécommande et limiter fortement la consommation de la balise.
  • Fonction d’enregistrement des traces GPS dans le système de fichiers de l’ESP avec interface Web de gestion. Téléchargement de traces en format CSV et/ou GPX.
  • Fonction de mise à jour du logiciel à travers la liaison Wi-Fi (OTA Over The Air).

Cette balise peut être utilisée en dehors du contexte signalisation d'aéromodèles pour faire par exemple des tests de vitesse lors de la mise au point de mobiles, de bateaux du type racers/offshore, de modèles de voitures RC etc …Exemple ici

Les composants entourés d'un cadre noir sont utilisés uniquement si un module GSM est inclus dans la configuration. Les noms des pins sur le module processeur ESP correspondent aux noms des pins qui doivent être définis dans le fichier fs_options.h (voir plus loin)

Matériel supporté

Microcontrôleurs supportés:

  • ESP8266 (par exemple module ESP01)
  • ESP32
  • ESP32-C3 (par exemple module TTGO T-01C3 ESP32-C3)

Modules GPS supportés:

  • Quectel L80 (et GPS style base chipset:MediaTek MT3339 ??)
  • Beitian BN-220, BN-180, BN-880 (et GPS style base chipset: u-blox M8030-KT ??)

Module optionel GSM supporté:

Le choix d'un module LILYGO® TTGO T-01C3 ESP32-C3 ayant les mêmes dimensions et brochage qu'un ESP01 mais basé sur un ESP32-C3 permet une réalisation compacte et performante. Par rapport à un ESP01 classique, ce module dispose de plus de mémoire (4MB), de plus de puissance de traitement, d'un LED indépendant, d'une entrée/sortie supplémentaire, d'un connecteur pour une antenne externe optionnelle, etc.… Il semble aussi moins sensible aux problèmes d'alimentation que le module ESP01/ESP8266.
Bien d’autres possibilités existent avec par exemple un ESP8266 D1, un GPS BN220 etc.

Message d'identification

Dès que la balise est sous tension, même en l’absence d’un fix GPS, la balise émet des messages d'identification conforme à l'arrêté du 27 décembre 2019.
Le format de l'identifiant diffusé est le suivant:

  • Un code sur 3 caractères, sensé représenter le trigramme constructeur. Il doit être obligatoirement 000 pour une construction amateur "DIY"
  • Un code sur 3 caractères, sensé représenter le modèle de la balise
  • Un code sur 24 caractères, sensé représenter le numéro de série de la balise.

Il est donc du genre: "000FSB000000000000YYYYYYYYYYYY"
Le logiciel remplace les 12 derniers caractères par l'adresse MAC de la balise assurant l'unicité de l'identifiant.
L'interface utilisateur affiche l'identifiant de la balise qui devra être enregistré sur le site AlphaTango.

SMS de localisation

Il est possible d'inclure dans la réalisation un module GSM permettant d'envoyer sur demande un SMS de localisation. Par défaut, si la balise reçoit un SMS elle répond par un SMS contenant un lien avec les dernières coordonnées GPS valides connues. Ce lien ouvre Google Maps avec un pointeur sur la position du modèle. Il est possible, par l'interface Web, de protéger cette fonction par un mot de passe: seul un SMS envoyé à la balise et contenant ce mot de passe provoquera l'envoi des coordonnées GPS du modèle.

Environnement logiciel. Compilation

Les tests ont été faits dans l'environnement IDE Arduino 18.19.
Il est impératif d'avoir les environnements les plus récents pour ESP8266 et ESP32. (Septembre 2022: ESP32 2.0.5, ESP8266 3.0.2)
Seule la librairie TinyGPS++ ne fait pas partie des packages standards ESP32/ESP8266 et doit être installée.

Avant de compiler il faut choisir quelques options dans le fichier fs_options.h (choix du GPS, choix des ports de communication pour le GPS, choix d’inclure ou non la mise à jour par OTA, la disponibilté d'un LED accessible dans le montage, etc. …). Voir les commentaires.
Le mode "récepteur" n'est pas supporté pour l'ESP8266.
Le choix du type de processeur est fait lors de la compilation en sélectionnant le bon type de carte dans l'IDE Arduino

Modules GPS

Choisir dans le fichier fs_options.h une des lignes :

#define GPS_quectel // style Quectel L80 et GPS style base chipset MediaTek MT3339
ou
#define GPS_ublox // pour Beitian BN-220, BN-180, BN-880 et GPS style base chipset u-blox M8030-KT.

Le logiciel a été testé avec un GPS QUECTEL L80 et un Beitian BN-880 (dont la partie GPS est compatible avec un BN-180,BN-220, BN-280)
Les GPS qui utilisent les commandes style $PMTK251, $PMTK220, $PMTK314 (cas de Quectel, GlobalTop/Sierra Wireless, …) peuvent sûrement être utilisés.

Utilisation d'un LED

Si un LED est donné dans la configuration par /#define pinLed xx (voir fichier fs_options.h) son clignotement est rythmé par l'émission des trames d'identification.

  • En absence de fix GPS: clignotement lent, période de 6 secondes.
  • Après un fix GPS: flash très rapide lors de l'envoi d'une trame. (le flash est un peu plus long si la balise est en mode économie d'énergie/mise en sommeil)

Mode Emetteur

Cest le mode par défaut de la balise lors de sa mise sous tension. Les trames d’identification sont émises. Une interface Web permet son contrôle après connexion au point d’accès créé par la balise (système de portail captif)

Fenêtre « Cockpit »

Elle affiche l’état général de la balise et permet de contrôler son bon fonctionnement. La vitesse maximale ainsi que la hauteur maximale atteintes depuis la mise sous tension sont aussi affichées ainsi que le nombre de trames d'identification émises et le nombre de points GPS enregistrés depuis le dernier démarrage de la balise.

Fenêtre « Trace »

La fenêtre « Trace » permet la gestion des traces GPS enregistrées.
Des couleurs mettent en évidence le fichier le plus ancien, le plus gros et le plus récent.
Un click sur le nom d’un fichier ouvre une fenêtre donnant les caractéristiques principales de la trace (Nombre de points, heure de début/fin, vitesse maximum, hauteur maximum …)
Un fichier peut être téléchargé localement pour analyse fine.

Attention : dans certains cas (sous Android ?), le navigateur ouvert automatiquement lors de la connexion au portail captif ne permet pas de faire des téléchargements de fichiers. Il faut alors utiliser explicitement le navigateur standard. Ceci ne se produit pas sur un PC Windows.

Fenêtre « Préférences »

Cette fenêtre permet de choisir le format des traces GPS, la configuration du GPS (vitesse/rafraîchissement), la gestion du point d’accès Wi-Fi.

Format de la trace GPS

On peut choisir d'enregistrer ou non une trace GPS. La création d’une trace ne commence qu’après l’obtention d’un fix GPS et l'enregistrement d'un nouveau point de trace est déclenché (Choix exclusif):

  • Soit par une distance parcourue supérieure à X mètres
  • Soit par un temps écoulé de T millisecondes depuis le dernier point enregistré.

Les traces sont enregistrées dans un format neutre et le choix du format GPX/CSV n'est pris en compte que lors du téléchargement: le même fichier peut donc être chargé une fois en format GPX, une fois en format CSV.

Les traces CSV sont plus faciles à analyser dans Excel par exemple et un site comme GEO JAVAWA permet une analyse fine, segment par segment de traces GPX. On peut importer ces fichiers CSV dans Google Maps pour visualisation: Google Maps/Menu/Vos adresses/Cartes/Créer une carte/Importer ou les transformer en fichier GPX, KML,… avec par exemple GPSVisualizer., etc ...

Configuration du GPS

La vitesse de transmission du GPS et sa fréquence de rafraîchissement sont configurables (9600/19200/38400/57600 bds, 1/3/5/7/10 Hz).

La vitesse de transmission doit être augmentée si une fréquence de rafraîchissement importante est choisie.

Si on veut enregistrer une trace fine, avec des points proches, il est nécessaire de choisir une fréquence de rafraîchissement élevée (par exemple si on utilise la balise pour une recherche de vitesse maximum sur de courtes périodes de temps). Le choix 19200Bds et 10Hz est un bon compromis.

A noter que si on utilise un ESP8266, la liaison série avec le GPS est entièrement émulée par le logiciel avec parfois des problèmes de qualité de transmission pour des vitesses élevées. Avec un ESP32, la liaison est gérée bien plus efficacement par le matériel

Gestion du point d'accès Wi-Fi

A la mise sous tension, la balise crée un point d'accès Wi-Fi ouvert dont le nom par défaut est BALISE_adresse-Mac (genre BALISE_60:55:F9:71:59:5C)

Dès la connexion au réseau réalisée, un navigateur est ouvert et donne accès à l'interface utilisateur de gestion de la balise. Ce portail captif fonctionne très bien sous Windows mais est parfois un peu plus capricieux sous Android et il peut être nécessaire de donner au navigateur une adresse quelconque du genre http://xx.fr pour accéder à l'interface utilisateur !!. Voir aussi les problèmes potentiels lors du téléchargement de traces GPS)

Il est possible de modifier le nom du réseau et de le protéger par un mot de passe. Si après modification du nom du réseau on veut rétablir son nom par défaut il suffit d'effacer le champ "Nom du réseau" et de soumettre cette modification. Il n'est pas nécessaire de se souvenir de l'adresse MAC de la balise.

Il est possible de couper le point d'accès en fonctionnement.
Si la coupure est autorisée elle interviendra après un délai suivant l'obtention d'un fix GPS ou si la vitesse de déplacement de la balise est supérieure à 2m/s (7.2km/h)
Si l'interface utilisateur est utilisée, ce délai commencera à courir uniquement lorsque la page "Cockpit" de l'interface sera affichée.

Il est possible de couper complètement l'activité Wi-Fi de la balise entre deux émissions de la trame d'identification. Ceci permet éventuellement une réduction des interactions entre les équipements de télécommande et la balise et permet surtout d'abaisser fortement la consommation du dispositif.

Il est à noter que la mise en sommeil de la balise entraîne un retard de l'ordre de 20ms entre le moment où la trame doit être émise et son émission réelle.

Remarque : Dans le cas d’une balise construite avec un ESP8266, il est important d’utiliser une version du package de base ESP8266 supérieure à 3.0.0 car sinon ce retard atteint 300ms ou plus, ce qui peut être rédhibitoire si on veut en même temps enregistrer des traces GPS avec une haute résolution …

Bouton « Reset » :

Redémarre la balise

Bouton « Formatage » :

Réinitialise le système de gestion de fichiers

Bouton « Maj OTA »

Permet une mise à jour très aisée du logiciel par la liaison Wi-Fi (au détriment de la mémoire réservée pour les fichiers traces, ce qui peut éventuellement être un problème avec un module style ESP8266 avec peu de mémoire …)
Pour une mise à jour, il suffit de sélectionner le fichier résultat de compilation qui est en général dans
C:\Users\XXXXX\AppData\Local\Temp\arduino_build_YYYYYY\le_projet.ino.bin
(Sélectionner le répertoire arduino_build_... qui a la date de modification la plus récente)

Mode Récepteur

Le mode récepteur permet de contrôler le fonctionnement des balises actives du voisinage. Une page liste les identifiants des balises les plus actives.
Un click sur un identifiant de balise ouvre une page contenant des détails sur les valeurs émises.
Le retour en mode « Emetteur » doit obligatoirement se faire en utilisant le bouton « Retour en mode émetteur » ou par un redémarrage complet de la balise (mise hors tension /en tension). Ne pas utiliser le bouton « retour » du navigateur Web.

Remarques sur le module GSM SIM800L

C'est un module 2G, parfois très instable et ne pouvant se connecter au réseau. Dans ce cas, le LED émet des séries de flashs rapides. Le problème est en général résolu en soudant un condensateur de 1000µF directement en parallèle sur le gros condensateur jaune visible sur la photo ou en le remplacant directement par un nouveau condensateur tantale SMS 6V 1000uF 108 boitier type C.

Il existe aussi sur le marché des modules incluant directement un condensateur de 1000µF (marqué 108 sur les photos), mais ils sont difficiles à trouver.
Quand le module est en contact avec le réseau cellulaire, le LED émet un flash toutes les 3 secondes.
Une carte micro SIM est bien sûr nécessaire.(Un "simple" forfait 0€ / 2€ chez un opérateur français bien connu fait l'affaire ! ...)

Scénario d'utilisation de la balise

Cette balise peut être utilisée en dehors du contexte signalisation d'aéromodèles pour faire par exemple des tests de vitesse lors de la mise au point de mobiles, de bateaux du type racers/offshore, de modèle de voitures RC etc … Scénario dutilisation:

  • Ne pas permettre la coupure du point d’accès Wi-Fi
  • Choisir une fréquence de rafraîchissement GPS élevée ( 19200bds / 10Hz)
  • Choisir éventuellement de créer un fichier trace en prenant des points de mesure rapprochés (Un délai de 100ms entre points correspondants à la fréquence max de rafraîchissement du GPS)
  • Faire un essai et faire revenir le mobile
  • Se reconnecter au point d’accès créé pas la balise.
  • Analyser la vitesse max rapportée dans la page « Cockpit »
  • Remettre à zéro ces valeurs
  • Changer les réglages et refaire un essai.
  • Etc …

Les traces GPS enregistrées permettent de retrouver un historique des essais.

Principales modifications

  • 4.0 final. Pas de changements
  • 4.0b2
    • suppression de warning
    • correction problèmes include SoftwareSerial pour ESP8266
    • correction descriptions exemples de RX/TX pin pour module ESP8266 D1
  • 4.0b1
    • ajout option répondeur GSM/SMS
    • gestion led "inversé"
  • 3.1
    • amélioration du système de portail captif (changement de l'adresse IP de la balise etc...)
    • cosmétique dans l'interface Web

Enjoy !😊

About

Version d'une balise de signalisation style DGAC pour drone et aéromodélisme avec enregistrement des traces

Resources

License

Stars

Watchers

Forks

Packages

No packages published