Aller au contenu

Encore une station météo sous Ascom.... mais avec son petit plus!


astrolivier

Messages recommandés

Bonjour à tous,

 

Voilà de cela plusieurs années j'ai fais un rêve. Construire un observatoire.
Pour y parvenir j'ai mis en route pleins de petits projets qui sont plus ou moins finis, le dernier grand pas étant l'abris en lui même..... arf.... un jour ^^

Mais à dire vrai, il y eu en parallèle du rêve de la conception d'un abris, la réflexion sur la facilité de la création d'un driver de type ASCOM.
Moi qui ne suis pas ingénieur, me lancer dans la programmation était sommes toute difficile.

Puis, quelques années plus tard, de petits modules facilement programmables sont apparus: les arduino. Aujourd'hui il existe énormément de variantes mais j'ai le plaisir de "jouer" avec cela depuis quelques années maintenant. Sans être expert, le langage C++ me fait un peu moins peur.

Encore loin de la création d'un projet ASCOM j'ai par la suite participé à divers projets et j'ai de mon coté personnalisé certains petits projets notamment sur INDI, le ASCOM Linuxien, qui m'ont permis de touché un peu au code HTML (le code pour la création de page web entre autre), javascript ou CSS.

Le temps passe, l'idée toujours en tête, mais voilà....une révolution a commencé il y a de cela quelques mois: l'IA générative. Pour les autres, ChatGPT.
Cet outil, oui oui c'est simplement un outil, permet de faire des choses remarquables, comme aider à la réalisation d'un driver ASCOM!!

Je m'explique: Il y a quelques années, j'avais réalisé un boitier météo pour Linux, basé sur une solution existante nommée Weatherradio.
Le principe est simple: un arduino sur lequel étaient branchés les capteurs suivants:
- un BME280 de chez Velleman: il s'agit d'un petit module permettant de connaitre la température ambiante, la pression atmosphérique, l'humidité relative, et par quelques petites formules, le point de rosée.
image.png.d0d55c0c4f3bcffd2c07e92010c69fa5.png

- un TLS2591 chinois: un capteur de luminosité (en lux) extrêmement sensible qui, par simple calcul, permet de connaitre la qualité d'un site, le fameux SQM. Je vous laisse aller voir sur le net, mais en gros, on peut facilement comparer deux sites en mesurant la "noirceur" du ciel.

image.png.746afbf01dda67b28f15d065d55e06ce.png


- un MLX90614 chinois: c'est un capteur de température infra rouge (les fameux thermomètres à distances pour enfant, ceux qui sont en rupture de stock depuis la COVID 19 😕 ), capteur qui permet donc de mesurer la température du ciel, et au moyen d'une formule tirée du boitier AAG Cloudwatcher, la quantité de nuages dans le ciel. En gros si le ciel est chaud c'est qu'il y a des nuages, s'i lest plus froid il n'y a pas de nuages et donc il fait beau. Bon c'est assez empirique mais après quelques réglages cela sera assez précis. J'y reviendrais.

image.png.dbb55b29498bc51bcc34e1da95fdc479.png


Ce petit monde donc était connecté à un petit arduino nano, qui est dans l'obligation d'être connecté à un port USB du pc pour communiquer toutes les mesures transmises.
Sans rentrer dans les détails, j'avais installé le firmware weatherradio dessus et tout allait bien.

Mais voilà, le temps est passé et la révolution en marche.
J'ai acheté un module arduino, enfin pas vraiment arduino, mais on va rester simple, qui s'appelle un ESP32.

image.png.9466e05c412d530723901c2527e83725.png

 

Petite carte électronique donc qui permet de faire la même chose que l'arduino nano, donc d'y connecter des capteurs, mais il offre surtout deux avantages supplémentaires en plus de sa puissance de calcul:
- il offre une connectivité sans fil, donc parfait pour le mettre loin de tout sur une petite batterie solaire (à venir),
- il offre une mémoire flash sur laquelle on peut y programmer un serveur web. Ca devient très intéressant.
Concrètement, que cela veut il dire:
Ce petit module permet d'installer à l’intérieur de sa mémoire différents fichiers (un peu comme sur un pc) et il peut par la sorte générer des pages internet. Pages que l'on peut visiter depuis n'importe quel périphérique disposant d'un accès internet et connecté sur le même réseau wifi que celui du module.
A partir de la, on peut afficher les valeurs des capteurs sur une page web.
Vous commencez à sentir le truc 8-)

Je me suis donc dit, si avec ce petit module si puissant, un peu d'IA qui offre une aide génialissime et beaucoup d'envie, je me lançais dans la création de mon premier driver ASCOM pour une station météo Astro.
Attention, ici je ne fais pas de suivi météo comme les stations du commerce, même si en réalité cela est tout à fait possible avec ce module ( quand je vous dit qu'il est puissant ce machin ^^)

Tout feu tout flamme, je me lance dedans.
ChatGPT offre une aide précieuse. On peut lui demander à peu près tout et j'avoue que sans cet outil je n'y serais surement pas arrivé. Il connait tous les langages de programmation et pour peu qu'on sache l'utiliser c'est extrêmement puissant.

Après plusieurs heures à triturer les codes C++ de l'arduino et C# d'ASCOM le résultat tombe.
Ça fonctionne aux petits oignons.

Donc, petit résumé de la chose:

J'ai un ESP32 sur lequel sont branchés plusieurs capteurs.
les valeurs mesurées sont renvoyées sur une page internet générée par l'ESP32.
Le driver ASCOM que j'ai conçu permet, via NINA par exemple, d'envoyer une requête internet (basiquement il ouvre une page internet sans que vous le voyez) et reçois les valeurs de la page web. Le drivers traite l'info et NINA affiche les valeurs.

nina.jpg.e799e4ee62ebc99c80f7e7a8731b8692.jpg


Enfin, dans un soucis d’esthétisme, j'ai crée une interface sur la page internet avec des petites gauges affichant les valeurs. Les valeurs sont rafraichies toutes les 10 secondes. On peut changer cela facilement dans le fichier script.js qui accompagne le code HTML de la page internet.
Mais ce que je souhaitais avant tout, c'était de pouvoir paramétrer quelques valeurs importantes que je vais exposer juste après, sans avoir besoin de rebrancher l'ESP32 à l'ordinateur et de renvoyer une mise à jour du firmware de l'ESP32.

pagewebesp32.jpg.94fd123c754612cef712303588ca3554.jpg


Petite explication.
Le module MLX90614, comme je l'évoquais plus tôt, est un module qui sert à mesurer la température d'une portion de ciel.
Si il y a des nuages ou non, la température mesurée (via le capteur infrarouge) va en être modifiée. Le but ici n'est pas d'expliquer comment cela fonctionne car cela alourdirait inutilement cette page déjà bien remplie ^^. Le truc, c'est que la valeur brute mesurée n'est a elle seule pas suffisante pour être pertinente.
Le fabriquant du boitier AAG cloudwatcher, qui dispose du même module, a mis en ligne dans sa notice les équations qui permettent de corriger la valeur mesurée par le capteur. En gros, à la valeur mesurée, on doit appliquer une correction que l'on va soustraire à la valeur brute. On obtiendra une valeur corrigée.
Le problème, c'est que cette correction peut varier en fonction des saisons. En gros, la valeur de correction à appliquer sera différente si on regarde la température du ciel en hiver ou en été.
L'équation qui génère la valeur de la correction est constituée de 7 coefficients sur lesquels ont peut agir.
On comprends dès lors que pour éviter de devoir modifier les valeurs des coefficients en dur dans le firmware de l'ESP32 et ne pas avoir à recharger le firmware tous les x temps, il me fallait trouver un autre moyen.
Et l'ESP32 permet cela assez facilement!!
J'ai créé un fichier dans la mémoire de l'ESP32 dans lequel sont stockés ces coefficients.
Ensuite, (merci ChatGPT) dans le code de la page web j'ai généré un formulaire dans lequel on peut à la volée donner de nouvelles valeurs aux différents coefficients. Ces valeurs sont donc stockées en dur sur l'ESP32 et elles ne seront ainsi pas perdues même après un reboot de l'ESP32 (panne d’électricité par exemple, ou batterie à plat ^^).
C'est donc depuis la page web générée par l'ESP32 que l'on peut modifier les valeurs facilement en fonction des saisons. Un vrai bonheur.

Voilà, je suis arrivé au terme de ce petit projet qui m'aura permis de toucher du doigt plusieurs domaines:
- l'apprentissage sur un module ESP32 que je ne connaissais mais que je vais réutiliser pour d'autres sujets que l'astro (pour 3€ les 2 modules sur Ali.... ce serait dommage de ne pas le faire),
- apprentissage de l'outil ChatGPT pour obtenir les résultats souhaités,
- apprentissage de divers langages: HTML, javascript, C# et d'autres!!
- démystification de la création d'un driver ASCOM que je croyais réservé à une élite d'ingénieur en informatique, du moins pour des projets simples :)

 

Petit plus!!! En plus d'un driver méteo je vous propose le driver Safety Monitor qui se connecte aussi sur le même module afin de savoir si les conditions météo sont favorables, mis à part le vent que je n'ai pas intégré.

 

Aussi, je vous propose de partager mon travail afin que chacun puisse soit s'y essayer ou s'en inspirer.

je fourni:

- l'executable du driver météo pour NINA en tant qu'ObservingConditions,

MeteoESP32 Setup.exe

- l'executable du driver météo pour NINA en tant que Safety Monitor,

SafetyMonitorESP32 Setup.exe

-le firmware ESP32 avec son repetoire pour la partie WEB,

esp32Astro firmware.rar

-les projets visual studio pour ceux qui veulent aller plus loin ou integrer de nouvelles fonctionnalités comme un anémomètre par exemple.

visual studio - MeteoESP32Driver.rar

visual studio - SafetyMonitorESP32.rar

 

Voilà, j'espère avoir pu partager avec vous quelques petits choses.
Je répondrais aux questions, s'il y en a,

A très vite

Olivier

 

@bemoBonjour, je sais que cela fais maintenant très très longtemps que j'avais promis ce driver!! il est enfin là... vaut mieux tard que jamais ^^

 

PS: Un grand merci aussi à @Raphael_OD et @Antiath sans qui je n'aurais tout bonnement pas essayer non plus!! des conseils avisés et utiles!!! un grand merci :)

Modifié par astrolivier
  • J'aime 2
  • Merci / Quelle qualité! 6
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.