Mise à jour de ma station météo

  1. Contexte
  2. La station
  3. Mise en place
  4. Logiciel
  5. Conclusion

Autant vous le dire tout de suite : j'ai choisi un modèle pré-fabriqué. Désolé si vous espériez lire la suite de mes pérégrinations, mais peut-être que mon cheminement vous intéressera malgré tout.

Contexte

Cela fait depuis février 2022 que je planche sur le remplacement de ma station actuelle. Pour rappel, celle-ci est constituée de deux boîtiers : le premier contient le micro-contrôleur (un ESP8266), une alimentation, un capteur de température et d'humidité relative (SHT31) qui pilote la résistance PTC de 80℃ et les deux ventilateurs Noctua de 8 et 12cm destinés à réguler la température du boîtier, aussi bien en conditions froides que chaudes, et enfin un capteur de luminance (TSL2561). Ce boîtier "principal" se trouve sous le toit de ma véranda, et prend les coups de chaleur en pleine tronche. Il n'est pas rare qu'alors que les ventilateurs tournent à fond, le SHT mesure 60℃ dans le boîtier, ce qui me fait craindre pour l'alimentation. Et la petite PTC n'arrive pas maintenir une température supérieure à 0℃ par grand froid.

Le second boîtier ne contient que le capteur de température, humidité relative et pression atmosphérique BME280. Les deux boîtiers sont reliés par un câble RJ45 blindé de moins de deux mètres.

J'ai construis moi-même tous les PCB utilisés dans ce montage, de leur dessin jusqu'à leur nettoyage post-bain d'acide. J'ai oublié une étape absolument capitale pour des composants exposés à l'air libre : le vernissage. Résultat : les pistes en cuivre se sont oxydées au fil du temps, et la station déconne de plus en plus fréquemment, même si ça se limite à la perte de communication I2C occasionnelle avec l'un ou l'autre des capteurs.

Du coup, j'ai travaillé sur une nouvelle station météo, avec pas mal de mises à jour. Je passerai de l'ESP8266 à l'ESP32, du BME280 au BME681, du TSL2561 au TSL2591. Mais il me manquerait toujours les trois composants qui m'ont toujours fait défaut : anémomètre, girouette et pluviomètre. Mais s'il n'y avait eu que ça...

Le gros du problème consistait à trouver ou fabriquer un ou deux boîtiers, et trouver comment les alimenter. J'ai fait quelques essais avec une batterie au plomb de 5Ah sur un panneau solaire de 25W : la station s'est éteinte avant que le soleil ne reparaisse. Je devais donc abandonner l'idée d'une station énergétiquement autonome, à moins de changer de panneau, de batterie et de chargeur.

Outre l'alimentation, l'autre défit consistait à trouver un protocole de communication entre la station et le reste de mon réseau : avec mes murs en béton armé, pas de wifi possible.

J'ai fouillé tout Internet pour trouver une solution, une idée lumineuse qui m'aurait échappé, sans succès. J'en suis arrivé à un budget de plus de 400 euros, dont le tiers était déjà dédié aux capteurs analogiques dont je viens de parler. Le reste, c'était pour le boîtier et un système d'alimentation sur le 230V.

Alors, quitte à claquer autant d'argent, autant le faire pour une station pré-fabriquée, et grand bien m'en a pris.

La station

J'ai choisi la Bresser MeteoChamp HD Wifi 7-en-1.

De base, j'ai clairement été séduit par son écran et toutes ses possibilités : deux modes de visualisation de base, des pages de graphiques, des logs à n'en plus finir, plein de paramètres à configurer partout, bref, je kiffe.

Ensuite, je savais en l'achetant que je pourrai lui faire envoyer ses données où je veux, et surtout, pas dans le cloud. Ça a nécessité un peu de documentation et d'essais/erreurs, mais elle est désormais parfaitement intégrée à HomeAssistant, et sans passer par Internet.

Le packaging de la station fait très "entrée de gamme" pour un produit à 300 euros en promo, avec un carton très léger et assez peu de protections. Fort heureusement, tout est arrivé en parfait état.

L'ensemble est assez complet ; on regrettera simplement l'absence d'une pile bouton CR2032 utilisée par l'écran et trois piles AA LR06 pour le capteur supplémentaire. En revanche, un bloc d'accus est fourni pour l'ensemble de capteurs extérieurs.

Ça aussi, c'était un point qui m'a décidé à choisir ce modèle : l'ensemble de capteurs extérieurs est totalement autonome en terme d'énergie. Un petit panneau solaire recharge les accus (qui semblent être un groupe de 3 AA rechargeables et facilement remplaçables), et selon les dires du constructeur, il devrait pouvoir faire nuit pendant un tiers de l'année que l'ensemble aurait encore assez d'énergie pour ne pas totalement être réduit au silence. J'ai déjà bien assez à faire pour lui trouver un emplacement idéal et assembler les composants requis (lire plus loin) pour ne pas m'embêter à changer les piles tous les 15 jours...

Cet ensemble extérieur est constitué d'une girouette, d'un anémomètre, d'un pluviomètre, d'un capteur d'irradiation solaire, et d'un capteur de température/humidité. N'ayant pas démonté l'ensemble juste pour voir (je n'arrive pas à m'y résoudre), j'ignore quels composants sont employés. Le pluviomètre est assez classique, avec une cuiller dont la bascule incrémente un compteur, de même que la girouette qui fonctionne sûrement grâce à un réseau de résistances.

Je regrette tout de même l'absence de ventilateur en amont du capteur de température et d'humidité, alors que j'avais noté son existence sur les visuels de la station démontée. Mais pour la défense de Bresser : les visuels ne sont pas contractuels, et c'est probablement une mauvaise identification de la station démontée vue en photo qui m'a conduit à penser que la mienne en serait équipée. Sûrement un modèle un peu plus haut de gamme. On verra si et quand ça influera négativement sur mes relevés.

La liaison avec la base se fait évidemment sans-fil (en 868MHz). Pour le coup, à la même hauteur que la base, le module extérieur se connecte parfaitement. Si je descends la base dans mon bureau, impossible de se connecter. Une vraie cage de Faraday ma baraque...

Autre élément qui se connecte en 868MHz à la station : le capteur supplémentaire de température/humidité. On peut en associer jusqu'à 8, et on parle de modules additionnels tels que le capteur d'humidité de sol pour les cultures et le thermomètre pour piscines, par exemple.

La station, elle, se connecte en wifi. La procédure est courante pour ce genre de produit : on active le mode point d'accès (AP), on se connecte depuis un ordinateur à 192.168.1.1 et, depuis le navigateur, on procède à quelques réglages. Une fois connectée au wifi, elle ne fait rien par elle-même, sinon récupérer le temps par NTP. Elle n'offre aucun serveur pour accéder à ses données en local : il va falloir ruser, on verra ça plus loin. Mais en même temps, la quantité de choses qu'il est possible d'afficher est vraiment très satisfaisante, et là je ne cherche qu'à en récupérer le plus possible pour les afficher sur ma tablette domotique, et pour piloter les lumières en remplacement du capteur de luminance de mon ancienne station.

Mise en place

Mon environnement n'est pas idéal pour une station météo : j'ai des arbres partout, et là où il n'y en a pas, il y a des cailloux ou du goudron. Pas bon pour l'inertie thermique... Malgré cela, j'ai un emplacement idéal en plein milieu du jardin : à 5 mètre de tout arbre ou maison, dans le vent, où la station ne risque pas de se prendre une pomme ou des graines dans la gueule, et à une distance suffisante pour accrocher le 868MHz sans broncher.

Par contre, j'ai deux chèvres, qui ont bousillé leur abri en tôle, et qui aime se frotter à tout ce qui dépasse.

Comme il est hors de question que je coule du béton en plein milieu du jardin, j'ai du opter pour un pied de parasol, retenu en place par 4 conteneurs qui, une fois remplis d'eau, pèsent 15 kilos chacun. J'ai acheté un simple tuyau de plomberie en PVC de 42mm, qui me semble offrir un excellent compromis entre résistance et flexibilité : il ne se cassera ni au vent ni aux cornes des chèvres. Une fois le tout installé, je réalise que les chèvres commencent à bouffer les boulons de serrage au pied du mât. En outre, je remarque une certaine instabilité de la base (le sol à cet endroit est rendu inégal par la caillasse fouillée et creusée par les poules et les chèvres).

Qu'à cela ne tienne, j'ai une énoooorme palette en réserve, lourde, robuste, in-des-truc-tible. Palette en place, pied posé, réservoirs installé, mât serré, tout est stable et ne bouge pas d'un centimètre. Reste ces boulons que les chèvres ont décidément pour objectif de grignoter jusqu'à ce qu'il n'en reste rien. J'ai aussi 3 pneus en réserve (le quatrième leur sert de bascule pour une palette, elles adorent jouer dessus), que j'ai simplement empilé autour du mât.

Le résultat me donne l'impression d'une station météo Mad Max.

Désolé d'avoir zoomé comme un porc mais je ne voulais pas attirer les poules et les chèvres...

Avec un tel équipement, les chèvres devraient pouvoir mettre un coup de corne dans un pneu, voire chercher à le dégager de la pile, la station ne devrait pas broncher. Pour l'instant, je suis en confiance.

Pfiou... Ça faisait longtemps qu'un projet ne m'avait pas autant consommé mon énergie !

Logiciel

Comme je l'ai dit plus haut, la station est censée émettre ses données vers des services comme ProWeatherLive, Wunderground et que sais-je encore. RA-NA-FOUT. Je veux héberger ces données chez moi. Fort heureusement - et ce n'est pas le cas des stations moins onéreuses de la marque - la MeteoChamp offre un champ vide, labellisé "URL", qui me porte à croire qu'avoir un petit bridge ne sera pas trop difficile.

En réalité, il faut comprendre ce champ "URL" comme un champ "Hôte" : la station attend ici un simple nom d'hôte et non un chemin complet vers un script recevant les données. Même le protocole ne doit surtout pas être mentionné, et les noms d'hôte à rallonge vont devoir se raccourcir. En ce qui me concerne, ça passe, avec une IP locale. J'ai ensuite appris fortuitement que la station envoie ses données à un script /weatherstation/updateweatherstation.php, donc peut importe comment je m'y prends, je dois créer un serveur qui répond à cette URL.

J'ai appris tout aussi fortuitement et non sans surprise que l'envoi des données ne se fait qu'en clair via ce bon vieil HTTP, sans certificat. Tu mets du HTTPS dans la boucle, tout ce qu'il y a de plus officiel, la station reste muette. J'envoie pas mes codes de carte bleue mais quand même, je suis content que mes coordonnées GPS ne foutent pas le camp dans la nature, et qu'elles restent finalement dans mon réseau local.

Donc la station ne s'embête pas : elle m'envoie une requête GET (oui, pas POST, GET) avec les capteurs et leurs valeurs dans l'URL. Du coup, ça se parse facilement, et on les ressert sans le moindre traitement. C'est dans HomeAssistant qu'on va configurer quelques capteurs via l'intégration REST, et c'est tout. Même pas besoin de s'emmerder avec les conversions d'unités, tout se fait presque tout seul.

En plus, la station envoie ses données toutes les 10 secondes. Pour ça aussi, je suis content qu'elle ne passe pas par Internet.

Juste pour être clair : rien de tout ça n'est documenté, validé ou même approuvé par Bresser : ce champ est fait initialement pour le réseau Arekas. Heureusement que la cible de ce genre de produit n'est pas les informaticiens... Bref, du coup ça fonctionne, j'ai mes capteurs dans HomeAssistant.

Par contre, je m'étonne de la pauvreté des données communiquées par la station par ce biais. J'espérais disposer d'autant d'informations que sur l'écran lui-même, par exemple les heures de lever et de coucher du soleil, la version du firmware de la station, une certaine organisation pour les capteurs sur les 8 canaux optionnels, ce genre de choses. Non, là, c'est le minimum syndical. Ça me laisse la désagréable impression de gens qui savent construire des stations météo mais qui ne savent pas en coder le firmware (qui se met à jour en deux étapes d'ailleurs, jamais vu ça auparavant, très étrange...).

Conclusion

Voilà qui conclue ma recherche d'une nouvelle station météo. J'espère qu'elle me tiendra quelques années, au moins autant que ma station météo personnelle qui aura durée 5 ans avant de se faire ronger les circuits par l'humidité. La présence de pièces détachées sur le site du constructeur est rassurante, et si un jour l'envie me prend de mettre mes propres composants, j'aurais enfin un boîtier digne de ce nom, et les capteurs "essentiels".

Je trouve honnêtement que 300 euros en promo est un coût élevé. Mais c'est un achat très ponctuel, et assez qualitatif (le plastique est solide, les finitions sont bonnes, le bundle est complet, l'écran, bien que non tactile, est agréable à consulter, etc.). Je doute que j'aurai besoin de la remplacer de si tôt, à moins qu'une chèvre la charge frontalement avec la volonté de lui défoncer la mouille, ou qu'un oiseau décide de faire son nid dans le pluviomètre (un risque connu et réel parmi les météorologues amateurs...).

Malgré ce tarif élevé, je suis très content de mon achat. J'ai plein de choses à bidouiller, à mesurer et à analyser, et je vais pouvoir recycler l'ancienne station en d'autre projets que j'ai en tête, tels qu'un compteur pour l'eau, ou un système d'injection d'eau de pluie dans le sol quand mon réservoir est plein et que la terre est sèche, bref, il y a de quoi faire.

Je publierai une petite mise à jour dans quelques mois pour voir si cette station a rempli ses promesses !