Module GPS Bluetooth Holux et Raspberry Pi

Module GPS Bluetooth Holux et Raspberry Pi

Autrefois, j’avais un Acer N50 Premium PDA. Pour les plus jeunes, c’était comme un téléphone intelligent mais sans le morceau de téléphone, l’écran tactile capacitif, la mémoire, les applications, le GPS ou la durée de vie de la batterie. Je l’ai principalement utilisé comme appareil de navigation par satellite basé sur TomTom connecté à un module Bluetooth Holux GPSlim236.

Le module était resté dans un tiroir pendant au moins cinq ans et j’ai décidé de voir si je pouvais le faire fonctionner avec le Raspberry Pi. Étonnamment, je n’ai pas eu besoin de le charger car cinq ans plus tard, il s’est toujours bien alimenté. Il utilise ce qui était à l’époque une batterie de téléphone Nokia standard.

Holux GPSlim236Voici le matériel que j’ai utilisé :

  • Module GPS Bluetooth Holux GPSlim236
  • Module Bluetooth PoundWorld
  • Raspberry Pi modèle B (Rev 2)
  • Source de courant
  • Carte SD Raspbian fraîche
    (2013-09-25-wheezy-raspbian)

C’était l’une de ces expériences où Google m’a donné toutes les réponses une fois que j’ai rassemblé des fragments de nombreux blogs et forums différents.

Bien que j’utilise un appareil GPS spécifique, je ne vois pas pourquoi il ne fonctionnerait pas avec un module GPS Bluetooth étant donné qu’ils enverront tous des données série au format NMEA standard. Faites-moi savoir si cela fonctionne pour d’autres unités.

Étape 1 – Configuration initiale

Commencez avec une nouvelle image Raspbian sur votre carte SD et branchez-la sur le Pi avec le dongle Bluetooth. Allumez le Pi en le connectant à un réseau car nous aurons besoin d’un accès à Internet.

Comme il s’agit d’une nouvelle carte SD, commencez par exécuter :

sudo raspi-config

et développez la partition de la carte SD pour remplir l’espace de la carte de rechange. Puis lancez :

sudo apt-get update
sudo apt-get upgrade

pour s’assurer que tout était à jour. Cela prendra un certain temps (5 à 10 minutes), c’est donc une bonne occasion de prendre un café. Afin de faire le lien entre le Pi et l’appareil, nous devrons installer quelques packages supplémentaires :

sudo apt-get -y install bluez-utils gpsd-clients

Répondez « O » lorsque vous y êtes invité. « bluez-utils » fournit des outils Bluetooth et « gpsd-clients » est une collection d’outils pour le traitement et l’affichage des données.

Comme nous avons installé tellement de nouveaux fichiers, c’est une bonne idée de redémarrer :

sudo reboot

Étape 3 – Obtenir l’adresse MAC

Avec le Pi sous tension, mettez le module Holux sous tension et donnez-lui 60 secondes pour rechercher des satellites. Nous avons besoin de connaître l’adresse MAC du module donc lancez :

hcitool scan

Après quelques secondes, vous devriez obtenir une réponse :

Scanning ...
        00:0B:0D:6F:B5:D4       HOLUX GPSlim236

Cela vous donnera l’adresse MAC de votre appareil. Dans mon cas, c’est « 00:0B:0D:6F:B5:D4 » dont j’ai pris note.

Étape 4 – Connectez-vous au module GPS

Ensuite, nous devons exécuter la commande suivante pour connecter le Pi au périphérique Bluetooth distant :

rfcomm connect 0 00:0B:0D:6F:B5:D4 &

Le & à la fin indique à la commande de s’exécuter en arrière-plan et de revenir à l’invite de commande. N’oubliez pas d’utiliser votre adresse MAC ! Lorsqu’il s’exécute, il renvoie un ID de processus à l’écran. Quelques secondes plus tard, il affichera du texte :

Connected /dev/rfcomm0 to 00:0B:0D:6F:B5:D4 on channel 1
Press CTRL-C for hangup

Vous devrez peut-être appuyer sur la touche Entrée pour revenir à l’invite de commande. N’appuyez pas sur « CTRL-C » !

Pour tester la connexion, nous pouvons exécuter :

cat /dev/rfcomm0

Si la connexion fonctionne, vous devriez voir des données GPS (Format NMEA) en cours de diffusion depuis le module GPS. Appuyez sur CTRL-C pour revenir à l’invite de commande.

Étape 5 – Démon GPSD

Vient ensuite le démon « gpsd ». Il s’agit d’un processus qui s’exécute en arrière-plan et traduit les messages NMEA à l’usage des clients.

gpsd -b /dev/rfcomm0

Le commutateur b lui dit de lire uniquement les messages et de ne rien tenter de renvoyer au récepteur GPS.

Étape 6 – Terminal client

À ce stade, votre module GPS doit diffuser des données vers le Pi via Bluetooth. Pour présenter ces données de manière plus lisible, nous pouvons utiliser l’un des clients fournis avec le package gpsd. Essayer :

cgps -s

Si tout s’est déroulé comme prévu, vous devriez voir quelque chose d’un peu penser ceci :

Client CGPS

Pour revenir à l’invite de commande, vous pouvez appuyer sur CTRL-C.

Étape 7 – Client GUI

Une fois que cgps fonctionne, vous pouvez essayer le client graphique xgps. Lancez l’interface graphique en tapant :

startx

Ouvrez une fenêtre LXTerminal en cliquant sur l’icône du bureau. Lancez ensuite le client en utilisant :

xgps

Vous devriez voir quelque chose comme :

Client XGPS

Si tout fonctionne et que vous lisez toujours ceci, alors félicitations !

Étape 8 – Reconnexion après le redémarrage

Lorsque vous redémarrez, vous perdrez le lien Bluetooth et devrez répéter le processus à partir de l’étape 4. C’est ennuyeux. En éditant un fichier système, nous pouvons faire en sorte que le Pi se reconnecte au démarrage.

sudo nano /etc/bluetooth/rfcomm.conf

Supprimez les caractères # devant le bloc rfcomm0 {} et modifiez les paramètres pour obtenir quelque chose comme ceci :

rfcomm0 {
        # Automatically bind the device at startup
        bind yes;

        # Bluetooth address of the device
        device YOUR_DEVICE_MAC_ADDRESS;

        # RFCOMM channel for the connection
        channel 1;

        # Description of the connection
        comment "My GPS Module";
}

N’oubliez pas de définir la liaison sur « oui » et de remplacer « YOUR_DEVICE_MAC_ADDRESS » par l’adresse MAC de votre appareil.

Utilisez CTRL-X, Y puis entrez pour enregistrer et quitter l’éditeur de texte nano. Au redémarrage, vous pourrez maintenant commencer à l’étape 5 (en exécutant gpsd).

Pour aller plus loin, vous pouvez faire en sorte que gpsd s’exécute automatiquement au démarrage. Pour faire ça, lancez :

sudo dpkg-reconfigure gpsd

Cela fera apparaître un assistant qui configure gpsd pour qu’il démarre automatiquement. Vous devrez entrer quelques détails tels que l’emplacement du port série (/dev/rfcomm0) et les commutateurs de ligne de commande (-b). Je n’étais pas intéressé par les périphériques USB, alors je lui ai dit de les ignorer.

Lorsque vous redémarrez votre Pi, il doit se connecter à l’appareil GPS et vous permettre de lancer les clients immédiatement.

Étape 9 – Autres clients

Une fois que vous avez maîtrisé les bases, vous pouvez commencer à explorer toutes les autres applications qui sont prêtes à lire les données du processus gpsd. Une application qui vaut la peine d’être essayée est FoxtrotGPS. Il peut être installé en utilisant :

sudo apt-get -y install foxtrotgps

puis lancez en utilisant :

foxtrotgps

Il charge les cartes d’OpenStreetMap et affiche votre position actuelle ainsi que la vitesse et l’altitude.

Dernières pensées

Il existe de nombreux autres clients GPS qui fonctionneront probablement sur le Pi. Ce que vous faites avec eux dépend de votre imagination.

Clients GPS Raspberry Pi sous LXDE

Mises à jour

J’ai vu des messages indiquant que les appareils suivants fonctionnent à l’aide de ce tutoriel :

  • GPS Dell BT-309
  • GPS Emtac D1598 Bluetooth
  • Holux GPSlim236 GPS
  • Holux GR-230
  • Enregistreur de données GPS Holux M-241
  • GPS Navicore SiRF III Bluetooth
  • GPS RoyalTek RBT-2300
  • GPS QStarz BT-Q816

Si vous l’avez essayé et que cela fonctionne pour votre appareil, faites-le moi savoir et je mettrai à jour cette liste.

  • GSM/GPRS/GNSS/Bluetooth Hat GPS Module Expansion Board for Raspberry Pi 2B/3B/3B+/Zero/Zero W Based on SIM868 Support Make a Call, Send Messagess, Global Position
    Raspberry Pi connectivity, compatible with Raspberry Pi 2B/3B/3B+/Zero/Zero W Supports SMS, phone call, GPRS, DTMF, HTTP, FTP, MMS, email, etc.Support GPS, COMPASS, Glonass, LBS base station positioning, omni-positioning Bluetooth 3.0, supports data transferring through Bluetooth,Control via AT commands (3GPP TS 27.007, 27.005, and SIMCOM enhanced AT Commands) Supports SIM application toolkit: GSM 11.14 Release 99 Comes with development resources and manual (examples for Raspberry Pi/Arduino/STM32)
  • Raspberry Pi GSM/GPRS/GNSS Bluetooth Hat Expansion Board GPS Module with Low-Power Consumption Based on SIM868 Compatible with Raspberry Pi 2B 3B 4B Zero Zero W
    Raspberry Pi connectivity, compatible with Raspberry Pi 2B/3B/3B+/Zero/Zero W Supports SMS, phone call, GPRS, DTMF, HTTP, FTP, MMS, email, etc. Support GPS, COMPASS, Glonass, LBS base station positioning, omni-positioning;available to start the gps using code Bluetooth 3.0, supports data transferring through Bluetooth Download link: www.waveshare.com/wiki/GSM/GPRS/GNSS_HAT
  • AZDelivery HC-05 HC-06 Module Émetteur-Récepteur RF sans Fil HC-06 Bluetooth RS232 TTL Série Compatible avec Arduino et Raspberry Pi incluant Un E-Book!
    ✅ Ce module Bluetooth HC-05 a une portée allant jusqu'à 10 mètres en utilisant Bluetooth Classe 2. ✅ Il peut être utilisé comme émetteur et récepteur par exemple pour vos projets avec microcontrôleur. ✅ LED installée pour l'affichage d'état: clignotement rapide = prêt à être connecté / clignotement lent = connexion établie / clignotement en cycle de 2 secondes = mode AT. ✅ Ce module peut être programmé en mode AT via Arduino-IDE. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.