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.

Le projet de station météo APRS mobile : présentation générale de la librairie Arduino

Comme indiqué dans l’article de présentation du matériel de la V1, la station est organisée autour d’une carte Arduino Uno, je pense qu’il n’est pas nécessaire de présenter ce qu’est une Arduino Uno tellement cette petite carte est répandue…

Carte Arduino Uno.

 

Tous les capteurs sont donc connecté à cette Arduino, et c’est elle qui est chargée de collecter les données et de construire la trame APRS pour l’envoyer.

la librairie utilisée

Après avoir récupéré les données, l’Arduino va construire une trame APRS. Cette construction se fait grâce à la librairie aprslib. En téléchargeant cette librairie, vous avez 2 fichiers exemples. Un fichier avec GPS, un autre sans GPS. Je n’ai pas essayé le fichier avec GPS, je me suis contenté de la version sans GPS et je saisissais les coordonnées manuellement.

Pour pouvoir paramétrer plus facilement le programme, je vous conseille de déplacer le fichier d’exemple dans le dossier avec tous les autres fichiers :

Le dossier avec tous les fichiers de la librairie (APRS_tuto.ino étant le fichier exemple).

Lorsque vous ouvrez le fichier .ino avec l’IDE Arduino (ou tout autre IDE compatible), vous allez donc avoir également tous ces fichiers. Pensez juste à modifier dans le fichier .ino le #include <aprslib.h> par  #include « aprslib.h ». Vous pourrez donc modifier facilement différents paramètres répartis dans ces fichiers :

  • Dans le fichier aprslib.cpp vous trouverez la structure de la treme APRS.
    Capture de la structure de la trame dans aprslib.cpp

    Vous pouvez par exemple changer le symbole à la ligne 74 (le symbole pour les station météo est ‘_‘).

  • Le fichier config.h est le fichier dans lequel j’ai paramétré le plus de chose.
    Configuration du SSID, de l’indicatif de destination et du WIDE.

    A la ligne 43 se trouve le SSID, par exemple en saisissant 13 cela donnera F4IAI-13. A la ligne 46 se trouve l’indicatif de destination, je ne l’ai pas changé. A la ligne 53 se trouve le WIDE, le chemin. Pour être répéter un maximum de fois je l’ai modifié en WIDE3-3.

    Configuration des pins.

    Vous pouvez modifier les pins de l’Arduino pour le PTT et le pin duquel sortira la trame audio. Le pin audio (à la ligne 101) doit être la sortie 3 ou la sortie 11. Le pin de PTT n’a lui pas pas besoin d’être forcément une sortie PWM.

  • Le fichier radio_hx1.cpp est le fichier du PTT. Vous pouvez inversé les états du pin en modifiant les LOW en HIGH et HIGH en LOW aux lignes 28, 38 et 52.
    C’est ici que l’on peut inverser les états du PTT.

     

  • Enfin, le fichier .ino contient le programme principal.

C’est ici tout que tout le reste se paramètre. A la ligne 45 vous pouvez saisir votre indicatif (sans le SSID qui a été saisi dans un autre fichier). A la ligne 46 vous pouvez saisir l’heure, à la ligne 47 la latitude, à la ligne 48 la longitude (la latitude et la longitude doivent être en degrés minutes décimales, j’utilise ce convertisseur pour les obtenir en sélectionnant le format « marine »).

A la ligne 49 vous avez la direction, à la ligne 50 la vitesse. Enfin, à la ligne 51 vous pouvez saisir le commentaire que vous voulez, il faudra juste penser à augmenter le nombre de caractères de votre variable tempaprscomment en fonction de la longueur de votre commentaire (pour cela il faut modifier la valeur de la ligne 35).

Le delay() de la ligne 59 vous permet de choisir l’intervalle de temps entre 2 émissions, la durée doit être saisie en millisecondes.

C'est la fin de cette présentation de la librairie utilisée, n'hésitez pas à me contacter si vous avez des questions. Vous pouvez trouvez un article sur l'envoi de trames météo avec cette librairie ici.

 

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

Comme il faut bien commencer par quelque chose, pour la station météo APRS il a été choisi de commencer par du matériel principalement de récupération. Voici donc une présentation du matériel utilisé pour la station V1.

Les capteurs :

L’anémomètre / girouette

L’anémomètre / girouette est issus d’une de mes ancienne station météo, il s’agit d’un LaCrosse TX23. Nous lisons les données qu’il envoi grâce à une librairie Arduino dédiée, cette librairie nous permet de récupérer la vitesse et la direction du vent toutes les 2 secondes. Les fils sont connectés à l’Arduino de la manière suivante :

  • Fil marron : fil de données, sortie PWM nécessaire,
  • Fil rouge : +5v,
  • Fil vert : ne pas connecter,
  • Fil jaune : masse.
le pluviomètre

Le pluviomètre est celui issus d’une de mes ancienne station météo. C’est un Oregon Scientific PCR800. Il fonctionne avec un godet et un ILS (interrupteur à lame souple). Étant donné qu’il est conçu pour envoyer ses données à la console de la station d’origine sur le 433Mhz, nous avons soudé des fils aux bornes de l’ILS pour récupérer ses données câble. Pour avoir la pluviométrie, il nous suffit donc de compter le nombre de changements d’états de l’ILS avec l’Arduino qui correspond aux nombre de basculements du godet.

le thermomètre / hygromètre

Le thermomètre / hygromètre n’est lui pas de récupération. Il s’agit d’un DHT22 que l’on trouve entre 5 et 10€ sur internet. Au début nous avions essayé le DHT11, moins cher, mais aussi moins précis, avec une plage de fonctionnement moins grande et qui consomme plus en énergie.

Quelques différences entre le DHT11 et le DHT22 :

DHT11DHT22
Consommation2,5mA1,5mA lors d'une mesure, 50µA au repos
Mesure de la températurede 0°C à 50°C, avec une précision de +/- 2°Cde -40°C à 80°C, avec une de précision de +/- 0,5°C
Mesure de l'Hygrométrie (Humdité)de 20% à 80%, avec une précision de +/- 5%de 0% à 100%, avec une précision de +/- 2 à 5%
Fréquence de mesure1 mesure par seconde4 mesures par seconde

Pour lire les données du DHT22 (comme pour le DHT11 si c’est celui que vous avez), il suffit d’utiliser la librairie Adafruit Sensor et la librairie DHT Sensor.

le baromètre

Le baromètre (ou capteur de pression atmosphérique) n’est pas un capteur de récupération. Il s’agit d’un BMP180, que l’on trouve autour de 10€ sur internet. Nous l’utilisons uniquement pour la pression atmosphérique, mais il peut également donner la température et l’altitude.

ParamètrePlage de fonctionnement et précision
Pression atmosphériquede 300hPa à 1100 hPa, avec une précision de +/- 0,03 hPa
Températurede -40°C à 85°C, avec une précision de +/- 2°C
Altitudede -500m à 9000m par rapport au niveau de la mer, avec une précision de +/- 0,25m

Il communique les données à l’Arduino en I2C, pour les lire il faut installer la libraire BMP085/BMP180, et faire les branchements suivants :

  • Pin VCC sur le 3.3V (ATTENTION, selon votre version du capteur, il peut ne pas supporter le 5V, je vous conseille donc d’utiliser le 3.3V),
  • Pin GND sur la masse,
  • Pin SCL sur A5,
  • Pin SDA sur A4.

Le contrôle de la station:

Comme indiqué au fil de cet article, la station est basée sur une carte Arduino, plus précisément sur une Arduino Uno.

Cette Arduino Uno récupère toutes les données des capteurs, construit la trame APRS et envoi la trame BF au poste radio (un article sur cette partie sera mis en ligne prochainement).

Afin d’éviter des branchements complexes, nous avons créé notre propre shield (plans disponibles en me contactant par mail : meteobruno@gmail.com ), sur lequel nous venons connecter un connecteur IDC 10 broches qui regroupe tous les capteurs.

Le GPS :

Le GPS est un GPS Trimble de radiosonde M10. Pour le réutiliser nous avons suivi les travaux d’un autre radioamateur, F1BSW. Il suffit de couper une piste et de souder quelques fils pour pouvoir le réutiliser : lien vers la page de F1BSW.

La radio :

Le poste radio utilisé est un TALCO CS3, programmé pour l’APRS. L’Arduino contrôle le TALCO (envoi de la trame et PTT) grâce à sa prise micro, dont voici les correspondances des fils :

Correspondance des fils sur la prise micro du TALCO

La batterie :

La batterie utilisée actuellement est une batterie 12V / 65 Ah de voiture. La conversion 12V vers 5V pour alimenter l’Arduino est assurée par le shield cité plus haut.


Voilà la fin de cette petite présentation des composants de la station. D'autres articles dédiés à des éléments comme le shield ou le GPS seront bientôt mis en ligne.

 

Continuer la lecture de Le projet de station météo APRS mobile : le matériel de la V1