Plan et instructions pour fabriquer la station météo

Introduction au fonctionnement de la station météo

En simple, la station météo lit la vitesse et la direction du vent environ à chaque trois secondes puis fait une moyenne des résultats obtenus sur une période de deux minutes et garde ces informations en mémoire dans ce qu'on pourrait appeler ici une transaction. Donc il y a une transaction météo de créée à chaque deux minutes. La température extérieure est également lue et gardée dans chaque transaction.

Au 10 minutes (donc lorsque la station a cinq transactions), la station météo se connecte à Internet via le réseau cellulaire (réseau 3G), puis envoie les transactions sur le site Web du club. C'est un programme (une page Web en fait) qui s'occupe de prendre les données reçues par la station météo puis de les enregistrer dans une base de données sur le site Web du club. Lorsque par la suite un visiteur vient visiter le site Web du club et consulte les conditions actuelles à la piste, le site Web va simplement lire ces transactions dans la base de données puis affiche l'information à l'écran. À titre informatif, le site Web va lire les cinq dernières transactions reçues dans la base de données, en fait la moyenne et affiche le résultat à l'écran.

Donc en résumé, la station météo recueille les données puis les envoie au site Web. Le site Web quant à lui s'occupe d'enregistrer les données reçues dans une base de données et aussi de les afficher lorsqu'un visiteur visite le site. Donc, la station météo et le site Web sont deux choses complètement distinctes mais qui fonctionnent conjointement.

Vous pouvez voir les conditions actuelles (une moyenne des transactions des dernières 10 minutes donc 5 transactions) sur le site du club en visitant le lien suivant :
https://clubairmodeliste.com/station-meteo-du-club
S’il est affiché De retour printemps prochain! c’est que la station est présentement débranchée. En effet, durant l’hiver, la station est remisée.

Vous pouvez aussi voir le détail de chaque transaction météo reçue sur le site du club en visitant le lien suivant :
https://clubairmodeliste.com/transactions-meteo

 

Description du fonctionnement et des composantes de la station météo

Avant de commencer, veuillez noter que mon but ici est d’expliquer le plus simplement possible le fonctionnement de la station météo. Mon but est que n’importe qui avec quelques connaissances en électronique et en informatique (et beaucoup de débrouillardise) puisse fabriquer cette station également. Puisque je n’ai pas de formation en électronique, ne vous offusquez pas si les termes que j’utilise ne sont pas les bons. Et même si je connais certains de ces termes techniques, pour garder le texte léger, je vais peut-être même en ignorer quelques uns :-)

Aussi, pour plus de faciliter, veuillez consulter ou même imprimer le document Plan de la station météo dans la liste des documents ci-dessous pour voir comment les pièces de la station météo sont reliées entre elles. Consultez également le document Liste des pièces pour plus d’informations (prix, fournisseur, site Web, etc.) à propos de chacune des pièces énumérées ci-dessous.

Alors commençons ! Le cœur de la station météo est un Arduino UNO. Un Arduino (il y en a plusieurs types mais celui que j’ai utilisé dans ce cas-ci est un UNO) est en fait un genre de mini-ordinateur (carte électronique avec un microcontrôleur) dans lequel on peut télécharger un programme. C’est ce programme qui fait tout (s’occupe d’aller lire les senseurs, envoyer les données sur le site du club, etc.).

Un senseur de température (type DS18B20) est relié à un des ports du Arduino pour y lire la température. Pour lire la vitesse et la direction du vent, j’ai utilisé un Kit de Station Météorologique qui comprend un anémomètre, une girouette ainsi qu’un pluviomètre mais je n’ai pas branché ce dernier car je n’en avais pas besoin. À titre informatif, lors de mes recherches, le kit revenait moins cher que d’acheter un anémomètre et une girouette séparément. L’anémomètre et la girouette utilisent également chacun un port de l’Arduino.

Un écran LCD (16 caractères de large x 2 rangées) est branché au Arduino et comme illustré sur le plan, plusieurs ports du Arduino sont utilisés pour le faire fonctionner. L’écran LCD pourrait être optionnel car il sert uniquement à afficher de l’information mais il est extrêmement pratique. En effet, le programme y affiche de l’information pour savoir par exemple dans quelle partie du programme on se trouve ou si tout s’y déroule bien.

Un clavier est également branché à un des ports du Arduino. Encore une fois, le clavier quoique fort utile pourrait être optionnel car en temps normal il ne sert pas. Il sert seulement lorsque le programme démarre ; pendant les premières 30 secondes, le programme attend qu’on presse une touche (voir le code source). Si on presse la touche 1, le programme entre dans un mode test qui lit en permanence la direction du vent et affiche le résultat sur l’écran LCD. Si c’est la touche 2 qui est pressée, c’est le même principe mais cette fois-ci c’est la vitesse du vent qui est lue et affichée sur l’écran. Finalement pour la touche 3, c’est la température qui est lue. Ces options sont très utiles pour vérifier le fonctionnement des senseurs mais aussi lors de l’installation initiale de la station pour aligner la girouette physiquement selon les points cardinaux. Pressez simplement le bouton Reset de l’Arduino (ou coupez l’alimentation) pour redémarrer le programme. C’est le seul moyen pour sortir de ce mode.

Maintenant qu’on a fait le tour des senseurs, pour envoyer les données recueillies sur le site Web du club (les fameuses transactions mentionnées plus haut), c’est à l’aide d’un genre de téléphone cellulaire compatible Arduino qu’on peut le faire. Ce petit bijou s’appelle un FONA 3G. Pour le contrôler, nous pouvons envoyer des commandes à ce cellulaire à partir de notre programme Arduino. Ce cellulaire pourrait nous permettre de faire ou recevoir des appels (voix), envoyer ou recevoir des textos, aller surfer sur Internet et il y a même un GPS qui y est intégré. Cependant, pour notre application, on se sert du FONA 3G uniquement pour se connecter à Internet et communiquer avec le site Web du club pour y envoyer nos transactions.

Puisque ce FONA 3G est un véritable cellulaire, il faut bien entendu un abonnement avec un fournisseur de services téléphoniques pour pouvoir se brancher à Internet. Après avoir vérifié le coût d’un abonnement avec plusieurs fournisseurs (Bell, Telus, Vidéotron, Rogers, etc.) le moins cher que j’ai trouvé est avec Petro-Canada. Oui oui, aussi bizarre que cela puisse sembler, Petro-Canada vend également des forfaits cellulaires (ils utilisent le réseau de Rogers). Parlant de forfait, en fait, je n’en ai pris aucun. En effet, j’ai plutôt opté pour un abonnement à la carte (ils offrent les deux soit à forfait ou à la carte). La raison est que souvent dans un forfait, vous obtenez par exemple un certain nombre de minutes gratuites (voix), de textos, puis de données (data). Notre station météo n’a besoin d’aucune minute (voix) ni d’aucun texto. Tout ce que la station météo a besoin est de l’option données pour accéder à Internet pour y envoyer l’information recueillie sur le site Web du club. Le coût des données avec Petro-Canada (à la carte) est de 10 cents par mégaoctet. Puisque la station météo envoie très peu de données, il en coûte pour le moment environ seulement 10 cents par jour. Veuillez noter que ces informations étaient en vigueur au moment de la création de ce document.

Donc en terminant sur ce point, vous pouvez utiliser n’importe quel fournisseur mais si vous optez pour Petro-Canada, voici ce que j’ai fait. Ceci pourrait vous éviter des recherches et des soucis inutiles : Vous achetez simplement une carte SIM Petro-Canada (format Mini pour pouvoir l’insérer dans le FONA 3G) dans un dépanneur Petro-Canada ou directement sur leur site Web. Une fois la carte SIM en main, vous allez sur leur site Web, vous vous créez un compte puis vous saisissez le numéro de votre carte SIM pour activer votre carte. Il vous faudra saisir également le numéro IMEI de votre appareil. Un numéro IMEI est simplement un numéro d’identification unique pour différencier chaque téléphone cellulaire. Ce numéro est inscrit directement sur le FONA 3G. Une fois votre compte créé et votre carte SIM enregistrée, toujours à partir de votre compte sur le site Web de Petro-Canada, si vous avez opté pour l’option à la carte, vous devez activer l’option qui s’appelle ENABLE PAY PER USE DATA. Une fois cette option activée, pour des raisons mystérieuses, ça peut prendre un certain délai (maximum 24 heures) avant que vous puissiez vous connecter à Internet à l’aide du FONA 3G.

Maintenant il ne reste que la partie alimentation. Puisqu’il n’y a pas d’électricité au club, pour alimenter la station météo, j’utilise un panneau solaire qui est branché à un petit circuit appelé Solar Lipoly Charger qui lui, s’occupe de charger la batterie lipo 3.7 volts rechargeable de 2500mAh qui y est branchée. Ce chargeur solaire est assez intelligent pour ne pas utiliser la batterie pour alimenter la station météo lorsqu’il fait jour. Ceci évite de constamment charger / décharger la batterie. La nuit, il va plutôt utiliser la batterie (qui s’est normalement faite recharger durant la journée) pour alimenter la station.

La batterie utilisée contient un circuit de protection qui empêche la tension de la batterie d'être trop élevée (trop chargée) ou trop faible (surexploitation), ce qui signifie que la batterie sera coupée quand elle est complètement vide à environ 2.8V, sinon ceci pourrait endommager la batterie de manière permanente.

En fait la station météo n’est pas directement alimentée par le chargeur solaire. En effet, celui-ci ne produit pas un voltage constant. En plein soleil, le panneau solaire peut produire jusqu’à 6 volts et la nuit, la batterie peut fournir entre 2.8 et 4.2 volts. Donc, le circuit (chargeur solaire) est branché à un autre petit circuit (PowerBoost 500 Basic) qui lui s’occupe de régulariser le voltage à environ 5.2 volts en sortie, peu importe le voltage d’entrée. Donc c’est à partir de ce dernier que la station météo est alimentée. Lorsque je dis que la station météo est alimentée, en fait, c’est plutôt l’Arduino comme tel qui est alimenté.

 

Le programme dans l’Arduino

Une fois toutes les composantes reliées entre elles, c’est l’Arduino qui est le point central et qui s’occupe de communiquer avec la plupart d’entre elles. Ceci est fait grâce à un programme qu’on télécharge dans l’Arduino. L’Arduino sans programme ne fait absolument rien. C’est via le programme qu’on indique à l’Arduino quoi faire, comme par exemple aller lire les senseurs, compiler les résultats puis les envoyer sur le serveur du club à l’aide du FONA 3G. Ce programme (que vous retrouverez également dans les documents plus bas) a été développé par mon frère Paul-André et moi. Le langage de programmation utilisé est le C. Il me fait plaisir de vous offrir ce programme. C’est celui qui s’exécute présentement dans notre station météo. Modifiez-le au besoin si nécessaire pour l’adapter à votre application. Il sera un excellent point de départ et vous évitera bien des recherches surtout pour la partie qui envoie des instructions au FONA 3G.

Notez qu’au départ, je ne savais pas que je publierais ce programme alors ne soyez pas surpris par exemple de voir des parties en commentaires qui ne servent pas ou plus car je n’ai pas pris le temps de faire le ménage si on peut dire. Donc veuillez m’en excuser. J’ai préféré utiliser ce temps pour produire à la place cet article qui, j’espère, pourra vous aider. Vous remarquerez aussi des styles différents de programmation dans le programme. C’est simplement que mon frère et moi avons deux styles de programmation bien distincts. Ça ne change rien au fonctionnement du programme. J’ai récupéré du code de la librairie du FONA 3G (produite par l’entreprise Adafruit où j’ai acheté la plupart des pièces de la station météo). En effet, puisque je me sers du FONA 3G uniquement pour accéder à Internet, je n’ai récupéré que ce que j’avais besoin. Ceci m’a permis de rapetisser la taille du programme final car la mémoire du Arduino UNO étant très limitée, on peut rapidement atteindre la limite si on ne fait pas attention et qu’on utilise trop de librairies. Finalement, pour les parties affichage LCD et lecture des senseurs, c’est mon frère qui a écrit le code de toute pièce et il y a mis beaucoup d’explications en français. C’est très intéressant et ça change des librairies souvent commentées en anglais.

Utilisez le logiciel Arduino IDE (gratuit et open-source téléchargeable à partir du site web d’Arduino) pour compiler puis télécharger votre programme dans votre Arduino.

Note : À titre informatif seulement, j’ai fait un essai en remplaçant la carte Arduino UNO par une carte Arduino Mega 2560 et la station météo semble fonctionner tout aussi bien. Le seul changement que vous avez à faire dans ce cas est de brancher la pin TX du FONA 3G à la pin 10 du Arduino Mega 2560 (au lieu de la pin 3). Le principal avantage du Mega 2560 est qu’il vous offre 8 Ko de mémoire SRAM au lieu de 2 Ko pour le UNO. Donc, si jamais à force d’améliorer votre programme, il devient trop gourmand en mémoire, utiliser une carte Arduino MEGA 2560 pourrait être une option simple.

 

Le site Web

Tel qu’indiqué plus haut, lorsque la station météo envoie les données sur le site Web du club, c’est en fait une page Web spécifique qui est appelée. La station météo envoie deux paramètres à cette page Web soit le paramètre data et le paramètre pwd. Le paramètre data contient en fait les données recueillies par la station météo (les fameuses transactions discutées plus haut). Le paramètre pwd contient un mot de passe. Ce mot de passe sert uniquement à savoir si c’est bien la station météo qui appelle la page. En effet, des robots comme par exemple des engins de recherche pourraient aussi appeler cette page. Ou cette page pourrait aussi simplement être appelée en saisissant le nom de cette page dans votre fureteur Internet. Donc dans la page Web, la première chose qui doit être faite est de vérifier le mot de passe reçu en paramètre. Si ce mot de passe n’est pas le bon et bien la page ne fait tout simplement rien. Dans le cas où le mot de passe est le bon et bien la page Web devra simplement prendre le contenu du paramètre data, le traiter (extraire chaque transaction) puis enregistrer chaque transaction dans la base de données.

La page Web qui est appelée par la station météo pourrait être développée dans n’importe quel langage de programmation Web comme par exemple PHP, Java ou ASP pour ne nommer que ceux-ci. Dans mon cas, j’ai développé cette page en PHP. Pour des raisons de sécurité je ne peux vous donner le code source de cette page. En effet, si quelqu’un de malveillant voyait le source de cette page Web, il pourrait l’étudier pour tenter de trouver une faille dans la programmation pour ensuite, par exemple, tenter d’accéder à d’autres parties du site Web normalement non accessibles au public. Dans ce cas-ci, le site Web du club ne contient pas vraiment de données confidentielles donc ce ne serait peut-être pas dramatique. Mais question de principe, je ne peux vous donner le code source de cette page.

Cependant, il me fait plaisir de vous fournir un modèle de page Web en PHP pour faire cela.  Vous le retrouverez également dans les documents plus bas. Donc, vous pourriez partir de ce modèle pour développer votre propre page Web qui va recevoir les données de la station météo. En effet, la station météo prend les transactions et les encode pour en faire une chaîne de caractères puis envoie cette chaîne de caractères à la page Web (via le paramètre data). La page web, elle, prend cette chaîne de caractères, la décode pour les remettre en transactions prêtes à être enregistrées dans une base de données (ou ailleurs selon ce que vous désirez). Donc, vous n’auriez que la partie qui enregistre les transactions dans la base de données à développer car la partie qui décode les transactions est déjà incluse dans le modèle que je vous fournis.

Pour ce qui est de la page qui affiche les résultats, par exemple lorsqu’un visiteur va visiter votre site Web et consulte une page qui affiche les conditions météo actuelles à votre club ou l’historique des transactions, et bien je ne fournis aucun modèle pour cela. Il suffit d’aller lire la base de données puis d’afficher ces données dans la page Web dans le format que vous désirez.

 

Conclusion

J’espère que mes explications ci-haut sont assez claires et que les documents que vous retrouverez ci-dessous vous aideront. J’ai aussi mis quelques photos que vous pouvez consulter pour voir la station météo une fois assemblée. Je vous souhaite la meilleure des chances dans votre projet !

Guylain Plante
gplante2@gmail.com
Membre du club Air Modéliste
Lévis, QC

Écrit le 18 février 2017