Construire une balise GPS

Construire une balise GPS

Il y a quelque temps, on a monté une expérience qui pourrait vous peut-être vous intéresser. Le but était de vérifier le comportement du YoctoHub-GSM-3G-EU lorsqu'il passe d'un opérateur GSM à l'autre en roaming. On avait donc besoin d'un YoctoHub-GSM qui bouge, c'est pourquoi on a fabriqué une balise GPS autonome qui communique par GSM.


L'idée était de placer la balise dans une voiture et de voir ce qui se passe lorsque la voiture se déplace. Pour limiter la facture GSM, on ne voulait évidement pas que la balise émette trop lorsque la voiture était en stationnement, on a résolu le problème grâce aux fonctions de réveil du YoctoHub-GSM-3G-EU.

Le principe

On a utilisé un Yocto-GPS et un Yocto-Knob connectés à un YoctoHub-GSM-3G-EU.

  • Le Yocto-GPS sert à connaître la position et la vitesse de la voiture.
  • Le YoctoHub-GSM-3G-EU sert à la communication et est alimenté par une batterie USB. Il est tout le temps allumé lorsque la voiture roule, mais reste la plupart du temps en sommeil lorsque la voiture est en stationnement.
  • Le Yocto-Knob sert à savoir si la voiture est en marche ou non.

Le système est alimenté via une prise allume-cigare de la voiture. Cette prise n'est sous tension que lorsque la voiture est en marche. Le 12V de la voiture est converti en 5V grâce à un DC/DC et sert à

  • Recharger la batterie USB lorsque la voiture roule.
  • Commuter un relais DPST dont les sorties sont connectées au Yocto-Knob et à l'entrée "wake-up" du YoctoHub-GSM-3G-EU.

On aussi configuré le hub pour que quoiqu'il arrive, il se réveille automatiquement toutes les quatre heures.

Le schéma de la balise
Le schéma de la balise


Cette architecture permet deux modes de fonctionnement:

  • Lorsque la voiture est en stationnement, le hub est alimenté par la batterie USB, se réveille automatiquement toutes les 4 heures, envoie ses données sur le serveur, lequel enregistre les données GPS, et sachant que la voiture est arrêtée grâce au Yocto-Knob, ordonne au hub de se rendormir
  • Lorsque la voiture est mise en marche, le relais commute et le YoctoHub-GSM-3G-EU est forcé de se réveiller à cause de son entrée wake-up qui est connecté au relais. Il commence alors à poster ses donnés sur le serveur. Toujours grâce au Yocto-Knob, le serveur sait que la voiture est en marche et laisse le hub allumé, ce qui permet à ce dernier de continuer à poster ses données à intervalle régulier. Lorsque la voiture sera arrêtée, le serveur s'en rendra compte et ordonnera au hub de s'endormir à nouveau.

Pour éviter de vider inutilement la batterie lorsqu'il n'y a pas de réseau GSM à portée, le hub est configuré pour s'éteindre tout seul au bout de quelques minutes lorsque la voiture est arrêtée.

Non seulement cette technique permet d'avoir à la fois une fréquence de mise à jour élevée lorsque la voiture roule et beaucoup plus faible lorsque la voiture est en stationnement, mais elle permet aussi d'être sûr que la batterie USB n'est mise en charge que lorsque la voiture roule et que le système ne tire pas sur la batterie de la voiture lorsqu'elle est en stationnement.

Réalisation

On aurait pu inter-connecter tout ça et le poser en vrac dans la voiture, mais on a préféré fabriquer quelque chose de propre et facilement manipulable.

Les modules Yoctopuce  standards utilisés au cœur de cette expérience
Les modules Yoctopuce standards utilisés au cœur de cette expérience


On a rassemblé le convertisseur, le relais, un fusible et une grosse diode sur un petit PCB créé pour l'occasion. Le fusible et la diode servent de protection contre les erreurs de manipulation: personne n'a envie de causer un court-circuit dans une voiture. On a aussi créé un petit PCB pour déporter le port USB du hub en façade. On n'avait pas non plus très envie de devoir démonter le système à chaque changement de configuration.

Le board d'alim, le port USB déporté et la batterie USB
Le board d'alim, le port USB déporté et la batterie USB


Le tout a été monté sur deux plaques de verre acrylique. Une pour la partie alimentation, l'autre pour le partie électronique pure. Et on à réussi à faire entrer tout ça dans un joli boîtier de 14x11x6cm.


L'électronique complète   Le boîtier, coté alim
La balise complète.
Le boîtier, coté antennes et port USB


Pour l'antenne, on a utilisé une antenne mixte GSM/GPS avec un très long fil qui permet de la placer au choix sous le pare-brise ou sous la lunette arrière. Il est en effet essentiel que l'antenne "voie" le ciel pour une bonne réception GPS.

Une antenne mixte GSM + GPS
Une antenne mixte GSM + GPS



Et ça marche?

Ça marche même furieusement bien. On a basé la visualisation sur Google Maps, ce qui nous a permis d'obtenir facilement une carte avec un point rouge marquant chaque endroit d'où le YoctoHub a émis sa position.

On a basé la visualisation sur Google Maps
On a basé la visualisation sur Google Maps


On a même tourné une courte vidéo pour vous montrer ça:

  


Pour être parfaitement transparent, on a dû faire un peu de mise en scène afin de rendre cette vidéo plus intéressante qu'un bête point rouge qui se promène sur une carte. Les vues des caméras fixées à la voiture et le point rouge sur la carte correspondent à un seul et même run, mais les vue aériennes ont été tournées dans un deuxième temps.

A part ça, vous pouvez télécharger ici le script PHP qui gère le système, le détail des instructions pour l'installer sur un serveur PHP sont dans l'entête du code. On a essayé de le rendre aussi simple que possible à utiliser. En gros il suffit de copier le script dans un répertoire du serveur PHP, faire pointer le callback du hub sur ce script et d'ouvrir l'URL du même script avec un browser.

Améliorations possibles

Le script se contente d'enregistrer les données GPS de la voiture ainsi que de nombreux paramètres liés à la connexion GSM. Mais on pourrait très bien le perfectionner pour qu'il fasse d'autres choses, par exemple envoyer une alerte quand la voiture que vous pensiez avoir garée en bas de la rue sort d'un certain périmètre.
Vous noterez que l'on n'a utilisé que deux ports du YoctoHub-GSM-3G-EU, il en reste un de libre. On pourrait très bien imaginer de connecter un Yocto-Temperature pour connaître la température dans la boîte. On pourrait aussi utiliser un Yocto-3D pour connaître l'accélération latérale dans les virages... et envoyer une alerte quand la voiture est sur le dos :-)

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.