Station Météo avec Arduino Méga 2560
Posté : 27 juil. 2011, 14:36
Je ne sais pas si c'est le bon endroit pour poster cette fiche. Mais je souhaitais vous présenter ma station météo personnelle.
La station se situe à Ennery (57365) dans la Moselle, région Lorraine.
Longitude: 6° 13' 00'' Est
Latitude: 49° 13' 24'' Nord
Altitude: 170 mètres au-dessus du niveau de la mer.
La station météo
C’est une station météo personnelle. Je l'ai conçue et réalisée à partir d'un microcontroleur Arduino Méga 2560.
Au départ
Je souhaitai mesurer le rayonnement solaire. Mais la station WS2350 est limitée : on ne peut pas lui adjoindre d'autres capteurs. Je ne voulais pas investir dans une vantage pro en raison de son coût. Après de longues recherches sur les forums et de nombreux essais, ne trouvant pas de réponses entièrement satisfaisantes, j'ai décidé de me lancer dans un projet de construction d'une station météo perso. Actuellement, ma station météo perso enregistre, minute par minute :
- le rayonnement solaire, la durée de l'ensoleillement (ciel limpide, voilé, laiteux ou couvert),
- la direction, la vitesse et les rafales du vent,
- la pression.
- la température extérieure sous abri
- l'humidité extérieure sous abri
- les précipitations
Les capteurs
Les capteurs sont situés à environ 8,50 m du sol à l’extrémité nord-est du toit de la maison. Le mât dépasse le toit d’environ 1,50 m. Le câble blindé (4 paires trosadées cat5), servant à relier <http://www.station-meteo.com/anemometre/>es capteurs du mât jusqu'à l'Arduino Méga 2560 (installé dans mon bureau), est logé dans une gaine qui passe sous le toit.
Sonde solaire : RG100
Tout a commencé avec elle. Sur les conseils d'un amateur météo, je me suis tourné vers la sonde solaire RG100 de la société Solems. Le détecteur RG 100 est une sonde simple et robuste qui mesure le rayonnement lumineux dans la gamme 400-1100nm. Ce domaine correspond à la majeure partie du rayonnement solaire. Il est donc adapté à des mesures de rayonnement solaire naturel en extérieur, sous tous les climats.
AUCUNE alimentation externe n’est requise pour le faire fonctionner. Le signal en voltage continu qu’il délivre est directement proportionnel au rayonnement solaire en W/m², en extérieur, dans les conditions de spectre AM 1.5, et 25°C de température ambiante. Le niveau du signal du RG 100 dans ces conditions est de : 100mV = 1000 W/m² (sensibilité : 1mV)
Le capteur du détecteur RG 100 est une cellule photovoltaïque au silicium polycristallin implantée dans un boîtier PMMA (plexiglas) et noyée dans la résine polyuréthane avec une résistance de charge stable en température qui convertit le courant de court-circuit de la cellule en voltage DC. La tension analogique de cette sonde solaire est lue, après amplification, par un Arduino Méga, sur la broche analogique 0. Cette broche analogique est un convertisseur ADC de 10 bits; la tension de référence peut être choisie: 5v, 2,56v ou 1,1v. J'ai retenu pour la sonde la tension de référence 1,1v et, moyennant une amplification, elle permet de mesurer le rayonnement solaire de 0 à 1400W/m².
Carte Arduino Méga
La carte Arduino Mega 2560 est une carte à microcontrôleur basée sur un ATmega2560.
Cette carte dispose :
- de 54 (!) broches numériques d'entrées/sorties (dont 14 peuvent être utilisées en sorties PWM (largeur d'impulsion modulée)),
- de 16 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties numériques),
- de 4 UART (port série matériel),
- d'un quartz 16Mhz,
- d'une connexion USB,
- d'un connecteur d'alimentation jack,
- d'un connecteur ICSP (programmation "in-circuit"),
- et d'un bouton de réinitialisation (reset).
Elle contient tout ce qui est nécessaire pour le fonctionnement du microcontrôleur; Pour pouvoir l'utiliser et se lancer, il suffit simplement de la connecter à un ordinateur à l'aide d'un câble USB (ou de l'alimenter avec un adaptateur secteur ou une pile, mais ceci n'est pas indispensable, l'alimentation étant fournie par le port USB).
Programme EnneryMeteo v4
Maintenant il fallait apprendre à programmer la carte Arduino Méga. Pas à pas, amélioration après amélioration, le programme fonctionne correctement. Mon correspondant météo m'a beaucoup aidé par ses questions, ses demandes et les tests qu'il effectuait avec les différentes versions que je lui envoyées. Le programme EnneryMeteo v4 lit, 10 fois par minute, la tension analogique de la sonde RG100 et en fait la moyenne. Il calcule le rayonnement solaire théorique sur un plan horizontal à la surface de la terre, en fonction de latitude du lieu, du jour de l'année, de l'heure du jour et de l'état du ciel (ensoleillé, voilé, laiteux ou couvert). Puis il compare ces données théoriques aux mesures réelles de rayonnement solaire et calcule la durée de ciel ensoleillé, voilé, laiteux ou couvert.
Girouette
Le forum Arduino est très riche en exemples. J'y ai trouvé une expérience pour gérer une girouette avec un circuit intégré MLX90316. MLX9031 est un capteur de position rotatif de 360°, sans point mort. Il remplace un potentiomètre ou un encodeur. Sa résolution est 1/10 de degré. La rotation d'un petit aimant,placé au-dessus du capteur, induit un champ magnétique. MLX90316 mesure la direction de ce champ magnétique. Selon le modèle, la sortie peut être une tension analogique ou une valeur numérique.
Le programme EnneryMeteo v4 lit, 10 fois par minute, la tension analogique de la girouette et en fait la moyenne (calcul vectoriel) : c'est la direction moyenne du vent pendant 1mn.
Anémomètre
Le capteur de l'anémomètre est une ILS. Arduino Méga compte pendant 3s les impulsions de l'ILS. Pendant 1mn, le programme EnneryMeteo v4 totalise 10 échantillons de 3s. Il compare ces 10 échantillons pour en déduire la vitesse la plus élevée pendant cette minute : c'est ce qu'on appelle la rafale. Puis il fait la moyenne de ces 10 échantillons et c'est le vent moyen sur 1mn.
Pression
Le capteur de pression atmosphérique est un MPX5100AP avec une sortie analogique. Le programme EnneryMeteo v4, pendant 1mn, totalise 10 échantillons. Il en fait la moyenne.
Température, humidité et point de rosée (Dewpoint)
Le capteur de température et d'humidité est un SHT15 avec une sortie numérique. Le programme EnneryMeteo v4, pendant 1mn, totalise 10 échantillons. Il en fait la moyenne de la température actuelle et de l'humidité actuelle. Il calcule le point de rosée, la température et l'humidité minimale et maximale de la journée en cours.
Précipitations
Les précipitations sont mesurées par un pluviomètre à basculement d'augets. Chaque basculement provoque la fermeture d'un ILS qui est enregistré par une sonde DS2423. Le programme EnneryMeteo v4 calcule la quantité de pluie tombée en 1mn, 1h et 24h.
Utilisation
Après ces différentes lectures et calculs, chaque minute, le programme EnneryMeteo v4 sauvegarde les données dans un fichier journalier (format csv) sur une carte SD, les transfère vers le PC, par une connexion USB, dans un autre fichier (format csv) pour être traitées par WsWin et GraphWeather. Ensuite les fichiers html et les graphiques sont transférés par Watchdog sur mon site internet.
Amicalement
Henri
site : http://www.hc-creation.fr/meteo
La station se situe à Ennery (57365) dans la Moselle, région Lorraine.
Longitude: 6° 13' 00'' Est
Latitude: 49° 13' 24'' Nord
Altitude: 170 mètres au-dessus du niveau de la mer.
La station météo
C’est une station météo personnelle. Je l'ai conçue et réalisée à partir d'un microcontroleur Arduino Méga 2560.
Au départ
Je souhaitai mesurer le rayonnement solaire. Mais la station WS2350 est limitée : on ne peut pas lui adjoindre d'autres capteurs. Je ne voulais pas investir dans une vantage pro en raison de son coût. Après de longues recherches sur les forums et de nombreux essais, ne trouvant pas de réponses entièrement satisfaisantes, j'ai décidé de me lancer dans un projet de construction d'une station météo perso. Actuellement, ma station météo perso enregistre, minute par minute :
- le rayonnement solaire, la durée de l'ensoleillement (ciel limpide, voilé, laiteux ou couvert),
- la direction, la vitesse et les rafales du vent,
- la pression.
- la température extérieure sous abri
- l'humidité extérieure sous abri
- les précipitations
Les capteurs
Les capteurs sont situés à environ 8,50 m du sol à l’extrémité nord-est du toit de la maison. Le mât dépasse le toit d’environ 1,50 m. Le câble blindé (4 paires trosadées cat5), servant à relier <http://www.station-meteo.com/anemometre/>es capteurs du mât jusqu'à l'Arduino Méga 2560 (installé dans mon bureau), est logé dans une gaine qui passe sous le toit.
Sonde solaire : RG100
Tout a commencé avec elle. Sur les conseils d'un amateur météo, je me suis tourné vers la sonde solaire RG100 de la société Solems. Le détecteur RG 100 est une sonde simple et robuste qui mesure le rayonnement lumineux dans la gamme 400-1100nm. Ce domaine correspond à la majeure partie du rayonnement solaire. Il est donc adapté à des mesures de rayonnement solaire naturel en extérieur, sous tous les climats.
AUCUNE alimentation externe n’est requise pour le faire fonctionner. Le signal en voltage continu qu’il délivre est directement proportionnel au rayonnement solaire en W/m², en extérieur, dans les conditions de spectre AM 1.5, et 25°C de température ambiante. Le niveau du signal du RG 100 dans ces conditions est de : 100mV = 1000 W/m² (sensibilité : 1mV)
Le capteur du détecteur RG 100 est une cellule photovoltaïque au silicium polycristallin implantée dans un boîtier PMMA (plexiglas) et noyée dans la résine polyuréthane avec une résistance de charge stable en température qui convertit le courant de court-circuit de la cellule en voltage DC. La tension analogique de cette sonde solaire est lue, après amplification, par un Arduino Méga, sur la broche analogique 0. Cette broche analogique est un convertisseur ADC de 10 bits; la tension de référence peut être choisie: 5v, 2,56v ou 1,1v. J'ai retenu pour la sonde la tension de référence 1,1v et, moyennant une amplification, elle permet de mesurer le rayonnement solaire de 0 à 1400W/m².
Carte Arduino Méga
La carte Arduino Mega 2560 est une carte à microcontrôleur basée sur un ATmega2560.
Cette carte dispose :
- de 54 (!) broches numériques d'entrées/sorties (dont 14 peuvent être utilisées en sorties PWM (largeur d'impulsion modulée)),
- de 16 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties numériques),
- de 4 UART (port série matériel),
- d'un quartz 16Mhz,
- d'une connexion USB,
- d'un connecteur d'alimentation jack,
- d'un connecteur ICSP (programmation "in-circuit"),
- et d'un bouton de réinitialisation (reset).
Elle contient tout ce qui est nécessaire pour le fonctionnement du microcontrôleur; Pour pouvoir l'utiliser et se lancer, il suffit simplement de la connecter à un ordinateur à l'aide d'un câble USB (ou de l'alimenter avec un adaptateur secteur ou une pile, mais ceci n'est pas indispensable, l'alimentation étant fournie par le port USB).
Programme EnneryMeteo v4
Maintenant il fallait apprendre à programmer la carte Arduino Méga. Pas à pas, amélioration après amélioration, le programme fonctionne correctement. Mon correspondant météo m'a beaucoup aidé par ses questions, ses demandes et les tests qu'il effectuait avec les différentes versions que je lui envoyées. Le programme EnneryMeteo v4 lit, 10 fois par minute, la tension analogique de la sonde RG100 et en fait la moyenne. Il calcule le rayonnement solaire théorique sur un plan horizontal à la surface de la terre, en fonction de latitude du lieu, du jour de l'année, de l'heure du jour et de l'état du ciel (ensoleillé, voilé, laiteux ou couvert). Puis il compare ces données théoriques aux mesures réelles de rayonnement solaire et calcule la durée de ciel ensoleillé, voilé, laiteux ou couvert.
Girouette
Le forum Arduino est très riche en exemples. J'y ai trouvé une expérience pour gérer une girouette avec un circuit intégré MLX90316. MLX9031 est un capteur de position rotatif de 360°, sans point mort. Il remplace un potentiomètre ou un encodeur. Sa résolution est 1/10 de degré. La rotation d'un petit aimant,placé au-dessus du capteur, induit un champ magnétique. MLX90316 mesure la direction de ce champ magnétique. Selon le modèle, la sortie peut être une tension analogique ou une valeur numérique.
Le programme EnneryMeteo v4 lit, 10 fois par minute, la tension analogique de la girouette et en fait la moyenne (calcul vectoriel) : c'est la direction moyenne du vent pendant 1mn.
Anémomètre
Le capteur de l'anémomètre est une ILS. Arduino Méga compte pendant 3s les impulsions de l'ILS. Pendant 1mn, le programme EnneryMeteo v4 totalise 10 échantillons de 3s. Il compare ces 10 échantillons pour en déduire la vitesse la plus élevée pendant cette minute : c'est ce qu'on appelle la rafale. Puis il fait la moyenne de ces 10 échantillons et c'est le vent moyen sur 1mn.
Pression
Le capteur de pression atmosphérique est un MPX5100AP avec une sortie analogique. Le programme EnneryMeteo v4, pendant 1mn, totalise 10 échantillons. Il en fait la moyenne.
Température, humidité et point de rosée (Dewpoint)
Le capteur de température et d'humidité est un SHT15 avec une sortie numérique. Le programme EnneryMeteo v4, pendant 1mn, totalise 10 échantillons. Il en fait la moyenne de la température actuelle et de l'humidité actuelle. Il calcule le point de rosée, la température et l'humidité minimale et maximale de la journée en cours.
Précipitations
Les précipitations sont mesurées par un pluviomètre à basculement d'augets. Chaque basculement provoque la fermeture d'un ILS qui est enregistré par une sonde DS2423. Le programme EnneryMeteo v4 calcule la quantité de pluie tombée en 1mn, 1h et 24h.
Utilisation
Après ces différentes lectures et calculs, chaque minute, le programme EnneryMeteo v4 sauvegarde les données dans un fichier journalier (format csv) sur une carte SD, les transfère vers le PC, par une connexion USB, dans un autre fichier (format csv) pour être traitées par WsWin et GraphWeather. Ensuite les fichiers html et les graphiques sont transférés par Watchdog sur mon site internet.
Amicalement
Henri
site : http://www.hc-creation.fr/meteo