Le projet de station météo APRS mobile : le matériel de la V2

Alors que la version 1 de la station été basée sur une Arduino UNO et plusieurs capteurs (voir présentation du matériel de la V1), la version version 2 est basée une Raspberry et une station Davis Vantage Vue.

La Version 2 de la station lors d’une présentation pour les pompiers du Gard. En vert est encadré l’ISS ; le bloc qui contient les capteurs. En bleu est encadré la console qui reçoit et affiche les données météo pour les renvoyer à la Raspberry.
La station météo

Les différents capteurs de la V1 ont été remplacés par une station plus professionnelle, une Davis Vantage Vue.

La station est en deux blocs : l’ISS qui contient les capteurs (cadre vert sur la photo ci-dessus), et la console qui reçoit et affiche les données (cadre bleu sur la photo ci-dessus).

La partie « ISS » de la station.

La liaison entre les deux blocs se fait en 868 Mhz, cette fréquence est nettement mieux pour notre utilisation que les 433 Mhz, d’une part car la bande des 433 Mhz est très occupée, d’autre part car le poste radio va émettre sur les 144 Mhz et il sera proche physiquement de la station météo, donc plus on est éloigné en fréquence moins il y aura de brouillage de la part du poste radio.

Les données météo (température, hygrométrie, vitesse et direction du vent, pluviométrie) sont transmises toutes les 2 secondes à la console.

La Raspberry

La Raspberry (PI2 minimum) remplace l’Arduino Uno. Sur cette Raspberry sont installés les logiciels Weewx, YAAC et Direwolf. Chaque logiciel a un rôle précis :

  • Weewx lit les donnés de la station qui est branchée en USB (grâce au data logger de Davis Instrument) et construit grâce à un plugin un fichier .txt
  • YAAC est un client APRS. Il est chargé de lire le fichier .txt généré par Weewx pour le transformer en trame APRS. La trame APRS est ensuite envoyée au TNC virtuel
  • Direwolf est le TNC virtuel. Il va transformer la trame envoyée par YAAC en une trame audio (la raspberry n’ayant pas de carte son intégrée, il faut rajouter une carte son USB). Direwolf gère également le PTT du poste radio grâce à un montage sur les GPIO (voir schema ci-dessous)
Montage pour permettre à la Raspberry de contrôler le PTT du poste.
Au final, comment la station fonctionne ?

L’ISS de la station météo envoi ses données à la console sur 868 Mhz. La console est reliée par USB à la raspberry grâce au data logger vendu par Davis Instrument.

Les données sont lues par la raspberry grâce au logiciel Weewx, qui génère toutes les minutes un fichier .txt. Ce fichier .txt est ensuite récupéré par le client APRS « YAAC », qui va généré une trame APRS avec les données saisies par l’utilisateur à l’installation du logiciel (position GPS, indicatif…) et les données météo actualisées toutes les minutes. Cette trame est envoyée à intervalle régulier au TNC virtuel.

Le TNC virtuel, ici Direwolf, récupère la trame et la transforme en trame audio. Cette trame audio est générée grâce à une carte son USB, la raspberry n’ayant pas de carte son intégrée. C’est également Direwolf qui bascule le poste en émission grâce à un montage PTT sur les GPIO.

Fin de cette petite présentation du matériel de la V2.
D'autres articles dédiés aux logiciels utilisés seront mis en ligne.

Le projet de station météo APRS mobile : création de la trame météo

La librairie présentée dans l’article précédent nous permet d’envoyer une trame APRS grâce à une simple arduino Uno. Cependant cette trame il faut savoir quoi mettre dedans.

La composition d’une trame météo

Plusieurs schémas sont possibles pour faire une trame météo. La liste des trames APRS est disponible dans ce document.

Le schéma retenu est le suivant :

4401.27N/00437.22E_188/007g008t079r000p000P000h40b09947adrasec30

Le découpage est le suivant :

4401.27N → Latitude au format Degrés Minutes en décimales

00437.22E → Longitude au format Degrés Minutes en décimales

188 → Direction du vent en degrés

007 → Vitesse moyenne du vent en mph

g008 → Vitesse rafale de vent en mph

t079 → Température actuelle en °F

r000 → Pluviométrie de la dernière heure en inch

p000 → Pluviométrie sur les dernières 24h en inch

P000 → Pluviométrie depuis minuit en inch

h40 → Humidité en %

b09947 → Pression atmosphérique en mb

adrasec30 → commentaire

L’acquisition des données

Les données des différents capteurs sont acquises grâce à leurs librairies et programmes. Ces acquisitions se font dans le fichier principal du programme.

Cependant, pour pouvoir envoyer les données, elles doivent être sous la forme de « string », ce sont les différentes chaines de caractères (String) qui seront assemblées pour former la trame APRS. Il faut donc penser à convertir les résultats des lectures des capteurs qui peuvent donner des valeurs sous d’autres format (sous le format « float » par exemple).

Outre les formats qui doivent être respectés, tout (ou presque) est permis pour lire les données des capteurs.

L’assemblage de la trame

Une fois les données récupérées, il faut encore les assembler pour obtenir le bon format.

En ce qui concerne les coordonnées GPS, on peut utiliser les variables prévues à cet effet dans la librairie.

Pour la direction du vent on peut utiliser la variable « tempaprscourse », pour la vitesse moyenne on peut utiliser « tempaprsspeed », par contre pour les autres informations il n’y a pas de variable pré-établie. Du moins au premier abord, car il suffit simplement de les mettre dans la variable dédiée au commentaire.

Lorsque les décodeurs APRS vont recevoir la trame, si elle est bien construite ils ne considéreront pas les informations de la variable « tempsaprscomment » comme des commentaires, mais comme des données météo. Pour cela il faut assembler dans la variable « tempaprscomment » les caractères qui définissent les données (« g », « t », « h »…) et les données en elles mêmes.

C’est là où il est important d’avoir augmenté le nombre de caractères autorisés.

Vous pouvez maintenant utiliser la librairie Arduino pour envoyer des informations météo.