Le ROMV2 est un Sky Quality Meter (SQM) DIY (Do It Yourself) contenant les composants suivant :
- TSL2591
- MLX90614
- BME280
- ADXL345
- GPS NEO 8M
- TFT ST7735
Le SQMLite est un Sky Quality Meter (SQM) DIY (Do It Yourself) contenant les composants suivant :
- TSL2591
- BME280
- TFT ST7735
Le SQMLite est une version à moindre coût, centrée sur la mesure de qualité du ciel (SQM / Bortle) et des conditions d'environnement, sans la partie état du ciel, niveau à bulle ni GPS.
- Lecture de la luminosité (full / ir / visible), calcul de la quantité de lux, du SQM et du Bortle.
- Lecture de la luminosité dans une tâche dédiée FreeRTOS s'exécutant en paralèlle sur le 2ème coeur de l'ESP 32.
- Correction thermique de la lecture de la luminosité avec la température ambiante.
- Moyenne mobile du lux sur 50 valeurs permettant de réduire l'incertitude mesurée. Calcul du SQM et du Bortle sur la moyenne mobile du lux.
- Possibilité de remise à zéro de la moyenne mobile.
- Réglage automatique de la sensibilité (1x, 25x, 428x, 9876x) et de la durée de mesure (100ms, 200ms, 300ms, 400ms, 500ms, 600ms) du capteur de luminosité TSL2591.
- (*) Lecture de la qualité du ciel (3 états : ciel clair / peu nuageux / nuageux) via le capteur MLX90614 permettant la lecture de la température du ciel.
- Lecture des conditions d'environnement (Température, taux d'humidité, pression atmosphérique) via le capteur BME280.
- Calcul du point de rosée.
- (*) Niveaux à bulle permettant de diriger l'optique vers le zénith grâce au capteur ADXL345.
- (*) Coordonnées GPS et Date/Heure UTC issues du capteur GPS NEO 8M.
- Connection Bluetooth BLE.
- Driver ASCOM permettant de se connecter via Bluetooth BLE.
- Connection Wifi et Broker MQTT.
- Indicateur de mesure de luminosité en cours.
- Indicateur d'état de connection Bluetooth BLE client / Wifi MQTT / Offline.
- (*) Indicateur d'état du GPS.
- Indicateur de charge restante dans la batterie.
- Mise en veille de l'écran après 5 minutes d'inactivité ou sur demande.
- Ecran de calibration du capteur de luminosité (TSL2591) avec sauvegarde et lecture de la calibration en EEPROM permettant de stocker cette valeur même après extinction de l'appareil.
- Ecran de sélection de la connection réseau : Bluetooth BLE / Wifi MQTT / Offline. Sauvegarde du paramètre en EEPROM.
- Ecran de paramétrage de la connection Wifi et Broker MQTT. Page web se connectant au périphérique et permettant la saisie des paramètres réseaux. Sauvegarde des paramètres réseaux en EEPROM.
(*) ROMV2 uniquement
| Composant / Fonction | ROMV2 | SQMLite |
|---|---|---|
| TSL2591 — Luminosité / SQM / Bortle | ✅ | ✅ |
| BME280 — Environnement / point de rosée | ✅ | ✅ |
| TFT ST7735 — Affichage | ✅ | ✅ |
| MLX90614 — État du ciel (IR) | ✅ | ❌ |
| ADXL345 — Niveau à bulle | ✅ | ❌ |
| GPS NEO 8M — Coordonnées / UTC | ✅ | ❌ |
| Connexion BLE + Driver ASCOM | ✅ | ✅ |
| WiFi / MQTT | ✅ | ✅ |
| Écran | ROMV2 | SQMLite |
|---|---|---|
| Accueil | ✅ | ✅ |
| Luminosité | ✅ | ✅ |
| Environnement | ✅ | ✅ |
| Ir Température | ✅ | ❌ |
| Niveaux | ✅ | ❌ |
| GPS | ✅ | ❌ |
| Sélection de la connection réseau | ✅ | ✅ |
| Paramétrage du Wifi MQTT | ✅ | ✅ |
| Calibration du capteur de luminosité TSL 2591 | ✅ | ✅ |
Tip
Le choix du modèle se fait simplement en ouvrant le bon exemple dans l'Arduino IDE (Fichier -> Exemples -> ROMV2 -> ROMV2 ou SQMLite). La même bibliothèque et la même configuration ROMV2_APP_CONFIG.h servent les deux.
Voici l'échelle de Bortle utilisée dans l'application.
| Composant | Prix | Nb. pièces | Prix unitaire |
|---|---|---|---|
| ESP32 with Battery (Micro USB) | 18.77 € | 1 | 18.77 € |
| TSL2591 | 15.10 € | 1 | 15.10 € |
| BME280 | 30.99 € | 5 | 6.20 € |
| ADXL345 | 10.56 € | 5 | 2.12 € |
| MLX90614 | 33.49 € | 2 | 16.75 € |
| GPS NEO 8M | 20.99 € | 1 | 20.99 € |
| TFT ST7735 | 27.99 € | 5 | 5.60 € |
| Lentille D23 F30 | 25.94 € | 1 | 25.94 € |
| Joystick | 10.99 € | 8 | 1.37 € |
| Boot Button | 10.99 € | 5 | 2.20 € |
| Interrupteur à bascule | 6.49 € | 5 | 1.30 € |
| Rallonge Micro USB | 11.79 € | 2 | 5.90 € |
| Testeur de capacité | 13.19 € | 4 | 3.30 € |
| Total | 125.54 € |
| Composant | Prix | Nb. pièces | Prix unitaire |
|---|---|---|---|
| ESP32 with Battery (Micro USB) | 4.19 € | 1 | 4.19 € |
| TSL2591 | 4.19 € | 1 | 4.19 € |
| BME280 | 2.99 € | 1 | 2.99 € |
| ADXL345 | 2.04 € | 1 | 2.04 € |
| MLX90614 | 5.93 € | 1 | 5.93 € |
| GPS NEO 8M | 9.29 € | 1 | 9.29 € |
| TFT ST7735 | 3.20 € | 1 | 3.20 € |
| Lentille D23 F30 | 2.06 € | 1 | 2.06 € |
| Joystick | 0.51 € | 1 | 0.51 € |
| Boot Button | 6.69 € | 5 | 1.34 € |
| Interrupteur à bascule | 1.65 € | 10 | 0.17 € |
| Rallonge Micro USB | 1.09 € | 1 | 1.09 € |
| Testeur de capacité | 1.45 € | 1 | 1.45 € |
| Total | 38.45 € |
| Composant | Propriétés | Quantité |
|---|---|---|
| Vis & rondelles | M4 x 20mm | 8 |
| Vis & rondelles | M2 x 20mm | 4 |
| Vis & rondelles | M2 x 8mm | 21 |
| Vis & rondelles | M2 x 6mm | 8 |
| Ecrou Nylstop autobloquants | M2 | 7 |
| Condensateur | 100 µF | 1 |
| Condensateur céramique | 100 nF | 1 |
| PCB EPLZON | ... | 1 |
| Câbles Dupont | ... | ... |
| PCB Vis Connecteur | ... | ... |
| Jumper Breadboard | ... | ... |
| Pile Rechargeable 18650 | Li-ion 3,7V 3500mAh 10A | 1 |
| Composant | Prix | Nb. pièces | Prix unitaire |
|---|---|---|---|
| ESP32 with Battery (USB-C) | 18.77 € | 1 | 18.77 € |
| TSL2591 | 12.69 € | 1 | 12.69 € |
| BME280 | 39.48 € | 5 | 7.90 € |
| TFT ST7735 | 27.99 € | 5 | 5.60 € |
| Lentille D23 F30 | 25.94 € | 1 | 25.94 € |
| Joystick | 10.99 € | 8 | 1.37 € |
| Boot Button | 10.99 € | 5 | 2.20 € |
| Interrupteur à bascule | 7.49 € | 5 | 1.50 € |
| Rallonge USB-C | 17.56 € | 1 | 17.56 € |
| Testeur de capacité | 12.79 € | 4 | 3.20 € |
| Total | 96.73 € |
| Composant | Prix | Nb. pièces | Prix unitaire |
|---|---|---|---|
| ESP32 with Battery (USB-C) | 5.09 € | 1 | 5.09 € |
| TSL2591 | 3.79 € | 1 | 3.79 € |
| BME280 | 4.59 € | 1 | 4.59 € |
| TFT ST7735 | 3.29 € | 1 | 3.29 € |
| Lentille D23 F30 | 2.33 € | 1 | 2.33 € |
| Joystick | 0.46 € | 1 | 0.46 € |
| Boot Button | 26.19 € | 20 | 1.31 € |
| Interrupteur à bascule | 1.79 € | 10 | 0.18 € |
| Rallonge USB-C 0.2m | 1.71 € | 1 | 1.71 € |
| Testeur de capacité | 1.45 € | 1 | 1.45 € |
| Total | 24.20 € |
| Composant | Propriétés | Quantité |
|---|---|---|
| Vis & rondelles | M4 x 20mm | 8 |
| Vis & rondelles | M2 x 20mm | 4 |
| Vis & rondelles | M2 x 8mm | 21 |
| Vis & rondelles | M2 x 6mm | 8 |
| Ecrou Nylstop autobloquants | M2 | 7 |
| PCB EPLZON | ... | 1 |
| Câbles Dupont | ... | ... |
| PCB Vis Connecteur | ... | ... |
| Jumper Breadboard | ... | ... |
| Pile Rechargeable 18650 | Li-ion 3,7V 3500mAh 10A | 1 |
Des branchements direct sur l'ESP32 sont nécessaires :
- 2 câbles Dupont branchés directement sur l'interrupteur de l'ESP et connectés à l'interrupteur du ROM.
- 2 câbles branchés sur les pôles + et - de l'ESP et connectés à l'indicateur de charge restante de la batterie.
Warning
Attention, le connecteur micro USB présent sur l'ESP est très très fragile (j'en ai personnellement cassé plusieurs sur d'autres projets en faisant des branchements). Je vous conseil donc de rajouter 2 points de soudure de part et d'autre du connecteur afin d'augmenter sa solidité.
Des branchements direct sur l'ESP32 sont nécessaires :
- 2 câbles Dupont branchés directement sur l'interrupteur de l'ESP et connectés à l'interrupteur du SQM Lite.
- 2 câbles branchés sur les pôles + et - de l'ESP et connectés à l'indicateur de charge restante de la batterie.
Warning
Attention, le connecteur USB-C présent sur l'ESP est très très fragile (j'en ai personnellement cassé plusieurs sur d'autres projets en faisant des branchements). Je vous conseil donc de rajouter 2 points de soudure de part et d'autre du connecteur afin d'augmenter sa solidité.
Vous trouverez dans ce dossier tous les fichiers STL nécessaires à l'impression 3D.
Important
La partie encadrée en jaune correspond au côté des vis du TSL2591.
Tip
La lentille est optionnelle. Vous pouvez uniquement positionner le cache du capteur et le tube sans la lentille. Vous pourrez ensuite corriger la calibration si nécessaire.
- Télécharger le fichier ROMV2_Firmware.zip
- Depuis votre Arduino IDE, installer la bibliothèque ROMV2, en sélectionnant le fichier téléchargé via le menu :
Croquis -> Importer une bibliothèque -> Ajouter la bibliothèque .ZIP ...
Voici la liste des bibliothèques utilisées par l'application que vous devez installer via le gestionnaire de librairies dans votre Arduino IDE :
- Adafruit_TSL2591
- Adafruit_BME280
- Adafruit_MLX90614
- Adafruit_ADXL345
- TFT_eSPI
Dans votre Arduino IDE, sélectionnez la carte ESP32 Dev Module.

Warning
Attention : l'application nécessite de se positionner en mode "Huge App" (cf. image ci-dessous), permettant ainsi de disposer de l'espace mémoire suffisant pour le fonctionnement sur l'ESP32.
Vous pouvez accéder à la configuration de l'application via le fichier suivant :
<Arduino librairies> -> ROMV2 -> src -> ROMV2_APP_CONFIG.h
Afin de faire fonctionner votre écran, il vous sera nécessaire de le configurer via la bibliothèque TFT_eSPI en modifiant le fichier suivant :
<Arduino librairies> -> TFT_sSPI -> User_Setup.h
Vous devez modifier 2 paramètres :
Pour démarrer un nouveau projet ROMV2, il vous suffit d'aller dans les examples de votre Arduino IDE, et de sélectionner ROMV2 -> ROMV2.
Pour démarrer un nouveau projet SQMLite, il vous suffit d'aller dans les examples de votre Arduino IDE, et de sélectionner ROMV2 -> SQMLite.
Pendant le développement de votre projet, vous pouvez activer le mode Debug.
Warning
Afin d'améliorer les performances, n'oubliez pas de le désactiver une fois le fois le projet abouti.
Dans le fichier suivant :
<Arduino librairies> -> ROMV2 -> src -> JUANITO_APP.h
Enlevez les commentaires devant la ligne :
#define DEBUG
En activant le mode Debug, vous pourrez voir les traces de l'application dans le Moniteur série de votre Arduino IDE pendant l'exécution.
Vous trouverez au bas du ROMV2 :
- l'interrupteur On/Off de l'appareil.
- 1 connecteur Micro USB permettant de recharger le ROMV2 et servant également à la mise à jour du firmware.
- 1 interrupteur (bouton poussoir) permettant de mettre l'ESP en mode Boot lors de la mise à jour du firmware.
- L'indicateur de charge restante dans la batterie. Appuyez sur le bouton "TEST" de l'indicateur pour connaître la charge restante.
Vous trouverez au bas du SQMLite :
- 1 connecteur USB-C permettant de recharger le SQMLite et servant également à la mise à jour du firmware.
- 1 interrupteur (bouton poussoir) permettant de mettre l'ESP en mode Boot lors de la mise à jour du firmware.
Vous trouverez sur le côté droit du SQMLite :
- l'interrupteur On/Off de l'appareil.
- L'indicateur de charge restante dans la batterie. Appuyez sur le bouton "TEST" de l'indicateur pour connaître la charge restante.
Le pilotage du ROMV2 et du SQMLite s'effectue via le joystick :
- Droite et gauche permettent de naviguer parmis les différents écrans.
- Haut et Bas permettent un retour direct à l'écran d'accueil.
- Sur l'écran d'acceuil, un clic sur le joystick permet d'alterner l'affichage Lux et SQM.
- Sur l'écran de luminosité, un clic sur le joystick permet de réinitialiser la moyenne mobile en cours.
- Un clic long sur le joystick permet de basculer l'écran en mode veille.
- Sur l'écran de sélection du réseau, Haut et Bas permettent de modifier le nouveau réseau sélectionné, et un clic sur le joystick permet de sauvegarder la nouvelle valeure du paramètre.
- Sur l'écran de paramétrage du réseau Wifi, un clic sur le joystick permet de passer l'ESP en mode AP (Access Point) ou STA (Station) et inversement.
- Sur l'écran de calibration du TSL2591, Haut et Bas permettent de modifier la nouvelle valeure de calibration, et un clic sur le joystick permet de sauvegarder la nouvelle valeure du paramètre.
L'écran du ROMV2 / SQMLite s'éteint automatiquement après 5 min d'inactivité (modifiable dans le fichier de configuration). Cette mise en veille peut être déclenchée à tout moment par un "click long" sur le joystick.
Pour sortir du mode veille, il suffit d'effectuer une action sur le joystick, peu importe laquelle.
Le firmware est constitué de plusieurs écrans, avec un en-tête commun à tous les écrans.
L'en-tête comprend les éléments suivants :
- Un icone principal spécifique à l'écran en cours d'affichage.
- La date et l'heure UTC remontée par le capteur GPS.
- Un icone indiquant qu'une prise de mesure de la luminosité est en cours.
- Un icone d'état de la connexion en cours. Trois types d'icone selon la connexion :
- Icone Offline.
- Icone Bluetooth. Deux états pour cet icone :
- Rouge : Aucun client Bluetooth BLE connecté.
- Vert : Un client BLE est actuellement connecté.
- Icone Wifi. Quatre état pour cet icone :
- Rouge : Wifi non connecté.
- Orange : Connexion en cours OU ESP en mode AP (Access Point).
- Bleu : Wifi connecté en mode STA (Station) mais aucune connexion avec un Broker MQTT (exple : Mosquito).
- Vert : Wifi connecté en mode STA (Station) et connexion avec un Broker MQTT effectuée.
- Un icone indiquant si le GPS est "fixé", remontant ainsi les informations de localisation (2 états : rouge et vert). Est également précisé le nombre de satellites à partir desquels le capteur récupère les informations.
L'en-tête comprend les éléments suivants :
- Un icone principal spécifique à l'écran en cours d'affichage.
- Le titre de l'application.
- Un icone indiquant qu'une prise de mesure de la luminosité est en cours.
- Un icone d'état de la connexion en cours. Trois types d'icone selon la connexion :
- Icone Offline.
- Icone Bluetooth. Deux états pour cet icone :
- Rouge : Aucun client Bluetooth BLE connecté.
- Vert : Un client BLE est actuellement connecté.
- Icone Wifi. Quatre état pour cet icone :
- Rouge : Wifi non connecté.
- Orange : Connexion en cours OU ESP en mode AP (Access Point).
- Bleu : Wifi connecté en mode STA (Station) mais aucune connexion avec un Broker MQTT (exple : Mosquito).
- Vert : Wifi connecté en mode STA (Station) et connexion avec un Broker MQTT effectuée.
L'écran d'accueil comprend les éléments suivants :
- L'affichage des coordonnées GPS.
- Un icone représentant l'état du ciel. L'icone à trois états :
- Ciel clair.
- Peu nuageux.
- Nuageux.
- Un icone représentant le point de rosée ainsi que la température du point de rosée. L'icone à trois états :
- Bleu : pas de risque de buée.
- Orange : point de rosée à moins de 5°c de la température ambiante, risque de buée imminente.
- Rouge : point de rosée atteint, pare-buée obligatoire.
- Un icone affichant la valeur de Bortle en cours.
- Un espace affichant la valeur de luminosité mesurée. 2 modes d'affichage :
- Affichage du Lux
- Affichage du SQM (Mag / Arcsec²).\
Tip
On passe d'un mode à l'autre (Lux / SQM) en cliquant sur le joystick.
- Un espace affichant la valeur de la température ambiante.
L'écran Luminosité comprend les éléments suivants :
- La luminosité mesurée totale et dans les Infrarouge.
- La luminosité mesurée dans le visible.
- La quantité de Lux issue des mesures Ir et Full.
- La quantité de Lux sur une moyenne mobile. Le nombre de mesures permettant de calculer la moyenne est entre parenthèse. Le nombre maximum de valeurs pour le calcul de la moyenne mobile est de 50 (ce nombre est modifiable dans le fichier de configuration via la constante
TSL2591_MOVING_AVERAGE_COUNT). - Le SQM (Mag / Arcsec²) calculé à partir du Lux moyen.
- Le Bortle issu de la valeur du SQM calculé.
- Le gain du capteur lors de la dernière mesure de luminosité effectuée.
- Le temps d'exposition du capteur lors de la dernière mesure de luminosité effectuée.
Note
Le gain et le temps d'exposition du capteur sont ajustés automatiquement par le firmware afin d'avoir les valeurs les plus appropriées en fonction du contexte.
Important
Pour réinitialiser la moyenne mobile effectuée sur la mesure de Lux, il suffit d'effectuer un clic sur le joystick.
L'écran Environnement comprend les éléments suivants :
- La température ambiante (°C).
- Le taux d'humidité (%).
- La pression atmosphérique (Pa).
- Un icone représentant le point de rosée ainsi que la température du point de rosée. L'icone à trois états :
- Bleu : pas de risque de buée.
- Orange : point de rosée à moins de 5°c de la température ambiante, risque de buée imminente.
- Rouge : point de rosée atteint, pare-buée obligatoire.
L'écran Ir Température permet d'afficher l'état du ciel. Il comprend les éléments suivants :
- Un icone représentant l'état du ciel. L'icone à trois états :
- La température ambiante mesurée.
- La température de l'objet mesurée.
L'écran Niveaux permet d'afficher un niveau à bulle afin de positionner correctement le capteur de luminosité au zénith. Il comprend les éléments suivants :
- Un niveau à bulle de forme circulaire.
- L'accélération en X (m / s²).
- L'accélération en Y (m / s²).
- L'accélération en Z (m / s²).
L'écran GPS permet d'afficher les données issues du GPS. Il comprend les éléments suivants :
- Les coordonnées longitude et latitude en degrés, minutes, secondes et dizaines de secondes, orientation.
- Le nombre de satellites à partir desquels le capteur GPS récupère les informations.
- L'état "fixé" ou non.
- L'altitude courante (m).
L'écran de calibration du capteur de luminosité TSL2591 permet de définir de calibration qui sera utilisée lors du calcul du SQM (et du Bortle). Il comprend les éléments suivants :
- La valeur actuelle.
- La nouvelle valeur à enregistrer en EEPROM.
Note
Vous pouvez modifier cette valeur grâce au joystick :
- Un mouvement court vers le haut incrémente la valeur de 0.01.
- Un mouvement long vers le haut augmente rapidement la valeur.
- Un mouvement court vers le bas décrémente la valeur de 0.01.
- Un mouvement long vers le haut diminue rapidement la valeur.
- Un clic sur le joystick permet l'enregistrement de cette nouvelle valeur en EEPROM.
- Téléchargez et exécutez le fichier RemoteOpenMeteoV2-SQM Setup.exe
Afin de pouvoir utiliser le Driver ASCOM ROM V2 - SQM depuis votre application Astro comme N.I.N.A., vous devez au préalable déclarer votre périphérique Bluetooth auprès de votre système Windows.
Important
Cette opération de reconnaissance de votre périphérique Bluetooth auprès de votre système Windows n'est à faire qu'une seule fois, lors de la première utilisation.
Dans la fenêtre des paramètres windows, allez dans la section "Bluetooth et appareils", si nécessaire, cliquez sur "Afficher d'autres périphériques", puis cliquez sur le bouton "Ajouter un appareil" et suivez les étapes de l'assistant.
Afin de sélectionner le ROM V2 - SQM dans N.I.N.A., allez dans l'onglet "Equipements", et dans le sous-onglet "Météo".
Dans la liste déroulante, sélectionnez "ROM V2 - Sky Quality Meter"
Lors de la première utilisation dans N.I.N.A., un appairage du ROM V2 - SQM est nécessaire.
Pour cela, cliquez sur le bouton "Paramètres".
Dans la boîte de dialogue qui s'ouvre, sélectionnez le périphérique "REMOTE OPEN METEO" détecté puis validez.
Note
Voilà, l'appairage est effectué. Il ne sera plus nécessaire d'effectuer cette opération lors des prochaines utilisations.
Voilà, vous pouvez désormais profiter des données du ROM V2 - SQM dans NINA.
Enjoy
Juanito del Pepito
Voici un petit retour d'expérience des mesures de l'état de mon ciel à mon domicile :
| Date | Version | Commentaires |
|---|---|---|
| 27/05/2026 | 2.0.3.1 |
|
| 23/05/2026 | 2.0.2.1 | Correction thermique de la lecture de la luminosité avec la température ambiante. |
| 17/05/2026 | 2.0.1.2 | Simplification du train optique du TSL2591. |
| 08/05/2026 | 2.0.1.1 | Lecture de la luminosité dans une tâche dédiée FreeRTOS s'exécutant en paralèlle sur le 2ème coeur de l'ESP 32. |
| 30/04/2026 | 2.0.0.1 | Version initiale. |
























































