La V3 de la station météo APRS Mobile

Le projet de station météo APRS mobile continue d’évoluer, nous en sommes à sa 3e version !

Quels changements par rapport à la V2 ?

Cette version a pour but d’optimiser la V2 et de corriger certains dysfonctionnements.
Les premiers changements concernent l’alimentation électrique. Alors que sur la précédente version la console de la station météo était alimenté par 3 piles C, sur cette nouvelle version les piles ont été remplacée par un convertisseur 12V continu vers 5V continu. La Raspbbery qui était alimentée par un adaptateur prise allume-cigare -> USB est désormais alimentée par le convertisseur 12V vers 5V.

Les autres changements ont été apportés sur la partie informatique de la station. Pour commencer, la partie logicielle a été simplifiée : il n’y a plus besoin du client APRS. Le fichier wxnow.txt est désormais directement interprété par le TNC virtuel, DIREWOLF. Le logiciel de lecture de la station météo a aussi été changé, WEEWX a été remplacé par CumulusMX, qui intègre directement la création d’un fichier wxnow.txt.

Le convertisseur 12V vers 5V

Nous allons commencer par voir le montage qui transforme le 12V continu fournit par la batterie en 5V continu. Ce montage doit alimenter la Raspberry et la console. Il est réalisé avec un LM317T, un régulateur de tension variable, qui nous permettra de changer facilement la tension de sortie pour l’adapter si la Raspberry est remplacée par un autre système qui demande une autre tension.

Ce convertisseur doit être capable de sortir une intensité d’environ 1,15A (1A pour la Raspberry + 30mA pour la console + 120mA lorsque le rétroéclairage de la console est activé).

Une photo du convertisseur 12V vers 5V une fois monté
Schéma du montage
Liste des composants

Voici la liste des composants nécessaire à ce convertisseur :

NomTypeValeurAutre info
R2Résistance330
R1, R3Résistance 470
RV1Résistance variable1kBoitier horizontal
C1Condensateur0.1uFNon polarisé, vertical
C2Condensateur1uFNon polarisé
C3, C5Condensateur10uFAxial
C4Condensateur1000uFAxial
D1DELVerteDiamètre 5mm
D2Diode1N4007
X1, X2Bornier à vis2 bornes
CI1Régulateur de tensionLM317TBoitier TO-220
Circuit imprimé

Ci-dessous les implantations des composants sur le circuit imprimé :

Vue de dessus
Vue de dessous

Si vous voulez les fichiers EAGLE ou un circuit vous pouvez me contacter par mail à l’adresse suivante : meteobruno@gmail.com

Les logiciels de la Raspberry

CumulusMX pour la station météo

Alors que l’ancienne version utilisait Weewx, cette nouvelle version utilise CumulusMX. Weewx fonctionnait mais nécessitait un plugin pour générer le fichier wxnow.txt et pouvait planter lors de la connexion de la station météo à la Raspberry à chaque démarrage de la station APRS mobile. CumulusMX intègre lui directement la génération du fichier wxnow.txt et fonctionne mieux à chaque lancement, mais il faut prévoir d’ajouter son lancement dans les « paramètres » du système d’exploitation, nous verrons comment le faire plus bas.

Installation

CumulusMX est disponible ici. Il vous suffit de télécharger l’archive et de la décompresser dans le répertoire voulu. Cependant, pour pouvoir le lancer, il vous faut également installer Mono.

Pour installer Mono, il vous suffit de suivre la procédure indiquée ici en fonction de votre système d’exploitation.

Une fois Mono installé, pour lancer CumulusMX, tapez les commandes suivantes :

cd /votre-repertoire/

sudo mono CumulusMX.exe

Direwolf pour la partie APRS

DIREWOLF est un TNC virtuel. Dans la précédente version il se contentait de générer l’audio des trames fournies par YAAC (le client APRS) et de gérer le PTT. Dans cette nouvelle version le client APRS a été supprimé, c’est DIREWOLF qui s’occupe de récupérer les infos météo du fichier wxnow.txt pour générer la trame. Il est important d’avoir une version de DIREWOLF qui intègre la fonction COMMENTCMD (sur la station j’utilise la version 1.5).

Dans le ficher de configuration de DIREWOLF, direwolf.conf, il faut créer une balise PBEACON qui enverra automatiquement à un intervalle voulu les coordonnées GPS et le contenu du fichier wxnow.txt.

Le fichier de configuration de DIREWOLF

Une fois que le fichier direwolf.conf est configuré pour l’indicatif, la carte son… il faut créer la balise. Pour cela, il faut utiliser PBEACON comme suit (trame issue du manuel utilisateur de DIREWOLF):

PBEACON LAT=42^37.14N LONG=71^20.83W SYMBOL= »weather station » COMMENTCMD= »tail -1 wxnow.txt »

Il suffit maintenant d’adapter la balise à la configuration actuelle :

  • LAT : latitude
  • LONG : longitude
  • SYMBOL : symbole de la station
  • COMMENTCMD : lien vers le fichier .txt à envoyer

Il est possible de rajouter d’autres paramètres :

  • DELAY : temps avant le premier envoi de trame (entre le démarrage de DIREWOLF et le premier envoi)
  • EVERY : délai entre 2 envois de trame
  • DEST : destinataire
  • VIA : chemin à prendre (WIDE1-1, WIDE2-1…)

Par exemple, la configuration de la trame actuelle de la station est :

PBEACON DELAY=0 EVERY=1 DEST= »APRS » LAT=43^49.71N LONG=04^19.12E SYMBOL= »weather station » COMMENTCMD= »tail -1 /home/pi/CumulusMX/wxnow.txt »

Lancement au démarrage

LANCEMENT AU démarrage de cumulusm

Afin que CumulusMX se lance automatiquement au démarrage de la Raspberry, il faut créer une tâche CRON qui va exécuter un fichier .sh

Il faut commencer par créer le fichier .sh qui contient les commandes pour lancer CumulusMX :

cd CumulusMX
sudo mono CumulusMX.exe
cd

Une fois ce fichier créé, il faut créer la tâche CRON avec la commande suivante :

sudo crontab-e

Un fichier s’ouvre dans l’éditeur, il suffit maintenant de taper sur sa dernière ligne la commande pour ouvrir le .sh au démarrage (le lien vers le fichier peut bien entendu être différent) :

@reboot /home/pi/start.sh

lancement au démarrage de DIREWOLF

Pour DIREWOLF, c’est un peu plus compliqué. Il faut déjà créer dans le répertoire PI un fichier dw-start.sh comme celui-ci : cliquez ici pour voir le fichier

Une fois le fichier créer, il faut demander à une tâche CRON d’exécuter ce fichier chaque minute (on demande chaque minute pour qu’en cas de plantage de DIREWOLF, il soit relancé automatiquement, et si DIREWOLF est en cours d’exécution, rien ne change).

Comme pour la tâche CRON de CumulusMX, il faut ouvrir l’éditeur de tâches CRON avec :

sudo crontab -e

Une fois l’éditeur ouvert, il faut saisir la ligne suivante à la fin (là encore le lien vers le fichier peut être différent) :

* * * * /home/pi/dw-start.sh >/dev/null 2>&1

Pour utiliser la station, il suffit maintenant de tout brancher et de mettre sous tension, les trames avec les données météo s'enverront alors automatiquement

Tracker APRS Arduino : la V2

3 mois après la première version du tracker (voir cet article), sa version 2.0 est disponible !

Cette nouvelle version corrige un gros défaut de la V1 : le signal de sortie n’était pas propre. Pour cela, j’ai simplement ajouté 2 filtres RC de fréquence de coupure 5kHz en cascade et un condensateur en série pour supprimer la composante continue du signal.

La sortie micro du tracker à l’oscilloscope sans filtre
La sortie micro du tracker avec les filtres et le condensateur

La liste des composants, le schéma et les autres infos utiles sont disponibles dans ce document :

Pour tout ce qui concerne la programmation de l’Arduino, voir l’article dédié à la V1 du tracker disponible ici (le programme Arduino est le même, seuls les filtres ont été ajoutés).

Pour ceux qui sont intéressés je propose des kits « tracker » qui contiennent le PCB et les composants nécessaires à la fabrication du shield. Pour plus d’infos : meteobruno@gmail.com

Réception ADSB sur Raspberry

Dans un précédent article nous avions vu comment faire de la réception ADSB sous windows. Dans cet article nous allons voir comment réaliser un récepteur ADSB avec une clé SDR et une raspberry.

Pour réaliser l’installation, la clé SDR doit être branchée sur un port USB de la Raspberry.

Configurer la clé SDR

Pour commencer, il faut configurer la clé SDR en supprimant les pilotes de réception TNT. Pour cela, créez un fichier rtlsdr.conf dans /etc/modprobe.d :

cd /etc/modprobe.d

sudo nano rtlsdr.con

Dans le fichier ouvert dans nano ajoutez la ligne suivante :

blacklist dvb_usb_rtl28xxu

Il faut ensuite supprimer le pilote :

cd

sudo modprobe -r dvb_usb_rtl28xx

Installation de RTL-SDR

Il faut maintenant installer le pilote RTL-SDR, pour cela il faut également installer CMAKE et Git :

sudo apt-get install git cmake build-essential libusb-1.0-0-d

mkdir git

cd git

git clone git://git.osmocom.org/rtl-sdr.git

cd rtl-sdr

mkdir build

cd build

cmake .. -DINSTALL_UDEV_RULES=ON

sudo make install

sudo ldconfig

sudo cp ../rtl-sdr.rules /etc/udev/rules.d/

Installation de Dump1090

Une fois le pilote RTL-SDR installé, il est temps de passer à l’installation de Dump1090 :

cd git

git clone git://github.com/MalcolmRobb/dump1090.git

cd dump1090

make

Utilisation de Dump1090

Pour lancer Dump1090, utilisez la commande suivante :

cd dump1090

./dump1090 –quiet –net –enable-agc &

Dans la ligne ci-dessus remplacez les — par 2 tirets ‘-‘
La commande pour lancer dump1090

Pour accéder à la carte, ouvrez avec un navigateur le port :8080 de votre Raspberry (depuis la Raspberry ou depuis un autre PC en tapant l’adresse IP de la Raspberry).

La carte de Dump1090 ouverte sur la Raspberry avec localhost:8080
La carte ouverte depuis un ordinateur avec adresse_ip:8080
Je suis désolé qu'il n'y est pas d'avions avec position sur les cartes, mais je referai des captures avec des avions dès que possible !

Installation de GQRX sous Raspberry

Dans cet article nous allons voir comment installer GQRX pour pouvoir utiliser une clé SDR pour Raspberry. Il ne s’agit pas d’un tutoriel pour installer GQRX sous Linux, pour ça voir cet article.

Installer GQRX

Pour installer GQRX, saisissez les commandes suivantes


sudo apt-get install libqt5gui5 libqt5core5a libqt5network5


sudo apt-get install libqt5widgets5 libqt5svg5 libportaudio2


wget //github.com/csete/gqrx/releases/download/v2.6/gqrx-2.6-rpi3-1.tar.xz


tar xvf gqrx-2.6-rpi3-1.tar.xz


cd gqrx-2.6-rpi3-1


./setup_gqrx.sh

Configurer la sortie audio

Avant de lancer GQRX, il faut configurer la sortie audio du Raspberry en fonction de si vous voulez utiliser la sortie jack ou la sortie audio HDMI. Pour cela, tapez la commande suivante :

sudo raspi-config

Avec le clavier, rendez-vous dans Advanced Options, puis sur Audio. Enfin, choisissez entre la sortie 3.5mm jack et la sortie HDMI. Aller sur Finish pour valider.

Lancement de GQRX

Si l’installation de GQRX s’est bien déroulée, vous pouvez désormais le lancer :

cd gqrx-2.6-rpi3-1

./run_gqrx.sh

Dans la fenêtre qui s’ouvre vous n’avez qu’à choisir votre clé puis à valider.

GQRX une fois lancé

Décodage DMR avec une clé SDR sous Linux

Nous allons voir comment décoder le DMR en utilisant une clé SDR sous Linux. Un article pour le décodage sous Windows est disponible ici.

La première chose à faire est d’installer GQRX. Pour cela regardez cet article.

Une fois GQRX installé, on peut s’occuper des logiciels pour le DMR.

Téléchargement de DSD+

Comme sous Windows, le logiciel utilisé pour le décodage est DSD+. Téléchargez les fichiers du logiciel et le les DLLs depuis cette page et décompressez les dans un répertoire au choix.

Mon répertoire contenant tous les fichiers

Une fois DSD+ téléchargé et les fichiers décompressés, il faut installer Wine pour pouvoir lancer les exécutables Windows sur Linux.

Installation de Wine

Pour installer Wine, tapez la commande suivante :

sudo apt-get install wine64

Cette ligne concerne les ordinateurs 64 bits, si vous êtes en 32 bits installez wine32.

Après avoir laissé travaillé l’ordinateur, vous pouvez normalement lancer DSDPlus. Pour cela, tapez la commande suivante :

wine /repertoire-de-DSD/DSDPlus.exe

Si tout se passe bien vous devriez voir s’ouvrir les fenêtres suivantes :

On retrouve les même fenêtres que sous windows

Mise en place de liaison GQRX / DSDPlus

Maintenant que DSDPlus est fonctionnel grâce à Wine, il faut créer la liaison entre Wine et DSDPlus. Pour cela, ouvrez les paramètres de Pulseaudio :

sudo nano /etc/pulse/default.pa

Dans le fichier qui s’est ouvert, tout en bas, ajoutez la ligne suivante :

load-module module-null-sink sink_name=Virtual_Sink sink_properties=device.description=Virtual_Sink

Validez les modifications et sortez du fichier, puis redémarrez l’ordinateur.

Normalement maintenant vous devriez pouvoir choisir Virtual_sink comme sortie audio de GQRX.

Les différentes entrées/sorties de GQRX

Pour faciliter le paramétrage de l’audio, installez pavucontrol :

sudo apt-get install pavucontrol

Une fois installé, lancez le avec la commande du même nom.

Pour configurer les entrées et sorties, il est nécessaire de lancer en plus du pavucontrol les logiciels GQRX et DSDPlus.

Dans la fenêtre qui s’ouvre, choisissez Lecture, puis configurez la sortie de GQRX sur Virtual_Sink et la sortie de DSDPlus sur l’Audio Interne comme ci-dessous :

Passez ensuite dans le menu Enregistrement, et configurez l’entrée de DSDPlus sur Virtual_Sink :

Place au décodage

Si vous avez tout bien paramétré, vous devriez pouvoir décoder du DMR à partir de votre clé SDR.

Décodage une fois tous les logiciels configurés

Décodage APRS avec une clé SDR sous Linux

Dans cet article nous allons voir comment décoder de l’APRS avec une clé SDR et un ordinateur sous Linux. Pour cela, nous allons utiliser les logiciels GQRX (pour la clé SDR), DIREWOLF et Xastir.

Pour installer GQRX, vous pouvez regarder dans cet article.

Pour installer DIREWOLF, il suffit de taper la commande suivante :

sudo apt-get install direwolf

Pour installer Xastir :

sudo apt-get install xastir

Une fois les 3 logiciels installés, on peut passer à la partie configuration.

Configuration de GQRX

Pour décoder l’APRS, il faut envoyer le signal audio reçu à DIREWOLF. Pour cela, nous allons utiliser l’UDP. Pour le configurer, une fois GQRX lancé et fonctionnel, allez dans l’onglet Input Control (rectangle bleu dans l’image ci-dessous). Une fois dans cet onglet, allez dans les paramètres (rectangle vert). Dans la fenêtre qui s’affiche, cliquez sur Network, puis configurez votre « adresse » UDP comme vous le voulez.

Fenêtre de paramétrage de l’UDP

Une fois l’UDP paramétré, vous pouvez l’activer en cliquant sur le bouton UDP (rectangle rouge sur l’image ci-dessus).

Configuration de DIREWOLF

Il faut maintenant demander à DIREWOLF de choisir l’UDP comme entrée audio. Pour cela, dans le fichier direwolf.conf (fichier à créer dans /home/votre-nom/ s’il n’est pas existant), il faut écrire les quelques lignes suivantes :

ADEVICE udp : 7355 default

ARATE 48000

ACHANNELS 1

En fonction du paramétrage UDP que vous avez effectué dans GQRX vous devrez modifier le port et l’adresse de l’UDP des lignes ci-dessus.

Si tout est bien paramétré, lorsqu’une trame APRS est reçue par la clé SDR, DIREWOLF doit la décoder.

Sur cette capture le fichier direwolf.conf n’était pas crée, la commande tapée permet de lancer DIREWOLF en lui donnant directement les paramètres.

Configuration de Xastir

Passer Xastir en français

La première fois que vous lancez Xastir, vous pouvez le passer en français avec la commande suivante :

sudo xastir -l french

A partir de maintenant, lorsque vous exécuterez Xastir avec sudo xastir il sera directement en français.

Modifier le fond de carte

Le fond de carte par défaut n’est pas très clair. On va donc le remplacer par un fond de carte OpenStreetMap. Pour cela, cliquez sur le menu Cartes, puis sur Choix des cartes, sélectionnez le fond que vous désirez puis appliquez la modification.

Ajout de l’interface entre DIREWOLF et Xastir

Il faut maintenant connecter DIREWOLF à Xaxtir. Pour cela, allez dans le menu Interfaces, puis Contrôle de l’interface. Cliquez sur Ajouter, puis AGWPE par réseau. Vérifiez l’hôte, le port et désactiver la fonction permettre transmission. Après avoir validé, dans le menu contrôle de l’interface, démarrez l’interface que vous venez de créer.

Les paramètres de l’interface créée

Il ne vous reste plus qu'à attendre que des trames arrivent, si vous avez tout bien paramétré les différentes stations apparaitront dans Xastir

Un premier montage sur GNU Radio

Après avoir installé GNU Radio (voir ici pour Linux, ici pour Windows), il est temps de l’utiliser !

Nous allons réaliser un montage dans lequel nous allons générer un signal sinusoïdal et le visualiser.

Le générateur de signal

La première étape est d’insérer le générateur de signal. Vous le trouverez en recherchant Signal Source dans les composants. Faites un double clic pour l’insérer.

Insertion du générateur de signal

La configuration du générateur est assez simple et se fait à l’aide de la fenêtre suivante (elle s’ouvre grâce à un double clic sur le composant) :

Pour régler le signal de sortie, voilà les paramètres à modifier :

La fenêtre de configuration du générateur de signal
  • Waveform : permet de changer la forme du signal (cosinus, sinus, constant, carré, triangulaire…),
  • Frequency : fréquence du signal (50e6 pour 50 Mhz, 1e3 pour 1 Khz…),
  • Amplitude : amplitude du signal,
  • Offset : décalage du signal.
L’oscilloscope

Une fois le générateur intégré, il faut insérer l’oscilloscope qui permettra la visualisation du signal. Pour cela, il faut rechercher WX GUI Scope Sink. Faites ensuite un glisser-déposer pour l’insérer. En double cliquant sur le module vous obtiendrez une fenêtre de configuration à modifier avec les paramètres suivants :

La fenêtre de configuration de l’oscilloscope
Limiter la vitesse d’execution

Avant de relier les bloc entre eux, il est nécessaire d’ajouter un cloc qui va limiter la vitesse d’exécution du montage. En effet, si on ne la limite pas, la vitesse d’exécution sera la vitesse maximale de votre processeur, ce qui peut faire planter votre ordinateur.

Ce bloc se trouve en recherchant Throttle. Paramétrez le ensuite en Type Float.

La version finale du montage

Une fois tous les blocs ajoutés, il est temps de les câbler. Pour cela, il suffit de cliquer sur la sortie d’un bloc puis sur l’entrée d’un autre pour les relier. Relier les différents bloc de notre montage comme ci-dessous :

Le montage câblé

Avant d’exécuter il reste une dernière manipulation à effectuer, double cliquez sur le bloc Options et dans la case Generate Options sélectionnez WX GUI.

Vous pouvez ensuite exécuter le montage. Pour cela, cliquez sur le bouton d’exécution dans la barre d’outil :

Le bouton d’exécution

Vous devriez voir s’ouvrir la fenêtre de l’oscilloscope.

La fenêtre de visualisation du signal

Vous pouvez modifier les paramètre d’affichage grâce aux différents paramètres situés dans la colonne à droite du graph :

  • Secs/Div : réglage de l’axe des abscisses,
  • Counts/div : réglage de l’axe des ordonnées,
  • Y offset : décalage de la courbe sur la courbe des ordonnées,
  • T offset : décalage de la courbe sur l’axe des abscisses.
Ajout d’un curseur pour changer facilement la fréquence

Dans le montage actuel, pour modifier la fréquence du signal, il faut modifier les paramètres du bloc Signal Source. Pour simplifier le changement de fréquence, nous allons ajouter un curseur sur la fenêtre de visualisation du signal.

La première étape consiste à ajouter un bloc WX GUI Slider. Paramétrez ensuite le bloc comme ci-dessous :

Configuration du curseur
  • ID : nom du curseur, son identifiant,
  • Default Value : valeur par défaut du curseur, c’est la valeur qui sera prise à l’exécution, avant que l’utilisateur ne la modifie,
  • Minimum : valeur minimum que peut prendre le curseur,
  • Maximum : valeur maximum que peut prendre le curseur,
  • Num Steps : nombre de pas du curseur,
  • Style : choix du sens du curseur (horizontal ou vertical).

Le curseur est maintenant créé, il faut donc dire au générateur de signal qu’il doit utiliser la valeur du curseur pour définir la fréquence. Pour cela, modifiez les paramètres du bloc Signal Source, et à la case Frequency mettez l’identifiant du curseur (dans mon cas ça sera frequence). Si vous exécutez de nouveau le montage, vous devriez voir apparaitre dans la fenêtre de visualisation du signal un curseur, et si vous le déplacez la fréquence doit varier.

Visualisation du signal avec le curseur de la fréquence réglé à 165 Hz

Installation du logiciel GNU Radio Companion sous Windows

Cet article traite l’installation de GNU Radio Companion sous Windows. Pour l’installer sous Linux, voir cet article.

La version pour Windows de GNU Radio est disponible sur cette page. Il vous suffit de sélectionner la version que vous voulez et de télécharger le fichier exécutable. Une fois le fichier télécharger, il suffit de l’exécuter.

Une fois l’installation terminée, vous pouvez lancer GNU Radio.

Capture d’écran de GNU Radio une fois l’installation effectuée

Tracker APRS Arduino

Dans cet article je vais vous présenter mon tracker APRS basé sur une Arduino UNO et un GPS de radiosonde.

Photo du shield monté sur son Arduino Uno

Présentation générale

Ce tracker est basé sur une Arduino UNO et sur un GPS de radiosonde. Il fonctionne avec un shield présenté plus bas. Pour fonctionner, il suffit de le brancher sur une alimentation 12V (ou sur une prise allume-cigare) et de le connecter à une radio. Le shield se charge de réduire la tension d’alimentation pour alimenter la carte Arduino, il se charge également de gérer le PTT et les différentes connexions.

Le matériel nécessaire :

  • Une carte Arduino UNO,
  • Un GPS de radiosonde ou tout autre GPS compatible avec la librairie TinyGPS++,
  • Un poste radio,
  • Le shield présenté plus bas.

Pour réaliser le circuit imprimé, voir la liste des composants dans la rubrique dédiée au shield.

Fonctionnement

Comme dit plus haut, ce tracker s’alimente directement en 12V, sur une prise allume cigare de voiture par exemple.

Schéma montrant le fonctionnement du tracker.

Le shield utilisé

Le shield utilisé est un shield que j’ai conçu avec des composants simples. Il a pour objectif de convertir le 12V en 5V afin d’alimenter la carte Arduino, et de gérer les connexions entre la carte Arduino, la radio et le GPS.

Afin de faciliter la conception du shield, j’ai découpé son schéma en plusieurs fonctions. Voilà le schéma global :

Schéma global du shield.
Liste des composants

Voilà la liste des composants nécessaires à la réalisation de ce shield :

NomTypeValeurAutre info
R1Résistance1k
R2Résistance2.2k
C2Condensateur polarisé1µFDiamètre : 5mm
Entre bornes : ~2,5mm
C1Condensateur polarisé10µFDiamètre : 6mm
Entre bornes : 5mm
D1Diode1N4007
D3Diode1N4148
D2, D4DELDiamètre 5mmCouleur au choix, D2 pour le PTT, D4 pour la mise sous tension
T1Transistor NPN2N2222Boitier TO-92
CI1Régulateur de tensionL7805
JP2Connecteur femelle1x3 pinsConnecteur de type pins Arduino
JP1Connecteur femelle1x4 pinsConnecteur de type pins Arduino
JP3Bornier à vis2 bornes

A cette liste il faut rajouter les différents pins males pour assurer l’assemblage avec la carte Arduino, soit des barrettes de:

  • 1 barrette de 1×6 pins,
  • 2 barrettes de 1×8 pins,
  • 1 barrette de 1×10 pins.
Le circuit imprimé

Il est possible de réaliser le montage sur une plaque à trous en faisant le montage avec des fils, mais le mieux est de le faire en circuit imprimé, chose que j’ai faite. Les composants sont des composants traversants, mais pour faciliter la mise en place des pins qui se connectent sur l’Arduino j’ai décidé de mettre les pistes côté composants.

Le PCB avec les emplacements des composants.

N’hésitez pas à me contacter par mail à l’adresse suivante pour avoir plus d’informations sur le PCB ou si vous voulez que je vous envoi le fichier EAGLE : meteobruno@gmail.com

La librairie Arduino utilisé

La librairie utilisée est celle de la V1 de la station météo APRS mobile et que j’avais présenté rapidement dans cet article.

Il s’agit donc de librairie aprslib, que vous pouvez télécharger ici.

La librairie contient 2 fichiers d’exemple : 1 premier fichier sans GPS, un second fichier, celui qui nous intéresse ici, nommé testaprslibgps. Ce fichier combine la librairie aprslib et la librairie Tinygps++ pour envoyer la position GPS par APRS. Pour utiliser le fichier, il faut donc installer la librairie Tinygps++, disponible ici.

Préparation de la librairie

Pour utiliser le fichier d’exemple utilisant le GPS, je vous conseille de copier le contenu de la librairie et le fichier d’exemple dans un même dossier comme ci-dessous :

Capture d’écran du projet Arduino

Une fois que vous avez copié les fichiers, il faut modifier l’appel de la librairie aprslib dans le fichier .ino. Pour cela, à la ligne 31, remplacez les chevrons par des guillemets comme sur la capture suivante :

Capture du fichier .ino pour la modfication de l’appel de la librairie

Vous n’avez ensuite plus de grosse modification à faire, il vous suffit d’adapter les champs à votre utilisation.

Personnaliser les informations de la librairie

Voyons maintenant comment adapter la librairie à notre utilisation et comme la personnaliser avec nos informations.

Pour commencer, il faut saisir notre indicatif. Cette étape se fait entre les guillemets de la ligne 65 du fichier .ino. Toujours dans le fichier .ino, vous pouvez modifier le commentaire APRS. Pour cela, modifier le contenu entre guillemets de la ligne 188 (attention, vous êtes limité à 30 caractères).

Nous allons maintenant modifier le contenu du fichier nommé config.h. A la ligne 43 vous pouvez modifier votre SSID. Voici une liste des SSID à utiliser en fonction des utilisations :

Liste des SSID, source : //info.aprs.net/index.php?title=AprsStation

Toujours dans le fichier config.h, à la ligne 53 vous pouvez modifier le WIDE de votre trame.

Enfin, dans le fichier aprslib.cpp, vous modifier le symbole APRS sous lequel vous apparaitrez à la ligne 74 (par défaut c’est la table primaire qui est utilisée, mais en modifiant la ligne 71 vous pouvez chosir la table secondaire). Les tables de symboles sont disponibles ici. Personnellement, j’ai choisi de mettre le symbole de la voiture, donc le caractère « > » de la table primaire.


Capture d’une trame envoyée avec le tracker sur aprs.fi
Une nouvelle version du Tracker est disponible ici (le programme ne change pas)

GPS d’une radiosonde M10 avec une Arduino

Dans un précédent article nous avions vu comment rendre un GPS de radiosonde utilisable sur un ordinateur. Il est également possible de réutiliser ces GPS avec une Arduino.

Pour pouvoir réutiliser les GPS de radiosonde sur une Arduino, vous devez au préalable avoir coupé une piste et souder quelques fils, comme indiqué dans l’article dédié.

La librairie à utiliser

Pour les données du GPS nous soit compréhensibles, nous devons passer par une librairie ; il s’agit de la librairie TinyGPS++. Cette librairie vous permet d’interpréter facilement les trames NMEA émises par le GPS.

Connecter le GPS à l’arduino

Pour brancher le GPS sur l’Arduino, il suffit de suivre le câblage suivant :

  • GND du GPS -> GND de l’Arduino
  • VCC du GPS -> 3.3V de l’Arduino
  • TX du GPS -> pin 3 de l’Arduino
  • RX du GPS -> pin 4 de l’Arduino

J’ai pris comme exemple les pins 3 pour TX et 4 pour RX, mais il est bien entendu possible de les inverser ou d’en prendre d’autres comme les pin 7 et 8.

Utilisation de la librairie

Comme dit plus haut, la librairie est simple d’utilisation. Pour récupérer les données, il suffit de demander les données avec les focntions qui suivent et de les utiliser comme bon nous semble (les convertir, les afficher…) :

(gps.location.lat());

(gps.location.lng());

Ces 2 fonctions nous permettent de récupérer respectivement la latitude et la longitude en degrés.

gps.date.year()) ;

gps.date.month())

gps.date.day()) ;

Ces 3 fonctions nous permettent de récupérer respectivement l’année (2000+), le mois (1-12) et le jour (1-31).

gps.speed.kmph())

Cette fonction permet de récupérer la vitesse en km/h. Il est également possible de récupérer la vitesse en mps, mph ou knots en remplaçant le kmph par une de ces 3 unité.

Il est également possible de récupérer la direction, l’heure, le nombre de satellites reçus etc etc. La liste complète des fonctions est disponible sur cette page.

Liste des fonctions disponibles, cette liste est disponible sur le site de la librairie.

Vous pouvez désormais réutiliser les GPS que l’on trouve sur les radiosondes M10 avec une carte Arduino !

Les données que donne un des fichier exemple de la librairie. Lorsque la capture d’écran a été prise, l’acquisition GPS n’était pas parfaite, c’est pour cela qu’il y a des astérisques.