Skip to main content

Sonde CTD autonome de haute précision

Nom du projet : Élaboration d'un dispositif de mesure autonome et étanche pour les environnements aquatiques.

Coordonnées : Blandine Duparc, blandine.duparc@etu.sorbonne-universite, D.M. physique-géosciences 
                           Aurèle Roux, aurele.roux@etu.sorbonne-universite.fr, D.M. physique-géosciences
                           Ilona Dupas, ilona.dupas@etu.sorbonne-universite.fr, Maj. biologie et min. géosciences

Responsable UE ST062 : Loïc Labrousse et Pierre Thery

Responsable du projet : Danièle Valdés

Durée : Début du projet le 31 janvier 2025 – Fin du projet prévu en mai 2025.

Objectif : Construire une sonde CTD autonome de haute précision étanche à faible coût pour ensuite être utilisée comme sonde « jetable » dans la recherche 

Matériaux / Outils  : capteur de température Tsic716, capteur de pression MS5837-30BA, boîte de dérivation étanche avec des presse-étoupes, carte Arduino. Utilisation du logiciel Arduino.

Présentation du projet
  • Introduction

L'objectif de ce projet est de concevoir une sonde de haute précision étanche et autonome assurant le suivi en pression, température et conductivité d'environnements sous-marins.

Cette sonde, qui comprend un datalogger indépendant, se doit d'avoir un coût de fabrication abordable. Les dispositifs équivalents du marché sont proposés à des tarifs compris entre 1200 et plus de 2000€, c'est pourquoi nous souhaiterions réduire son coût à moins de 300€. Ainsi, un plus grand nombre de capteurs pourront être installés dans des sites souterrains stratégiques (nappes phréatiques, lacs, etc.), et cela facilitera l'accès aux données pour des populations défavorisées, en permettant notamment le suivi précis et fiables des paramètres aquatiques des puits d'eau potable en Afrique.

Pour ce faire, notre démarche est de réaliser par nos propres moyens le plus de composants possibles. Les différents capteurs sont achetés sous forme de modules électroniques que nous étalonnons nous-même, et la majorité des autres composants sont pensés pour être produits à partir des machines du Fablab.

Les enjeux principaux sont donc l'impératif de coût, l'étanchéité complète du dispositif, son autonomie comportementale, sa durabilité mécanique et énergétique, ainsi que sa précision accrue.

Cette page présente l'avancement de notre projet tel quel ; une notice de présentation et de production sera publiée une fois le dispositif achevé. 

  • Cahier des charges

Fonction Description
1 – Mesure de pression Pour mesurer la pression hydrostatique de l’eau dans laquelle elle est immergée afin d’estimer la profondeur ou la variation du niveau d’eau.
2 – Mesure de température Pour avoir les variations de température précises et stables dans la durée de l’eau
3 – Mesure de conductivité Pour mesurer la conductivité électrique de l’eau, afin de déduire des paramètres physico-chimiques tels que la salinité ou la concentration ionique.
4 – Enregistrement des données Un système de datalogger intégré enregistre sur une carte mémoire SD les données issues des différents capteurs. L’export des données se fait via un système Bluetooth.
5 – Autonomie énergétique La sonde fonctionne pendant plusieurs semaines, voire plusieurs mois, sans intervention extérieure, l’alimentation se fait grâce à deux piles alcalines.
6 – Étanchéité L’ensemble du dispositif, boîtier comme composants internes, doit être étanche afin de résister à une immersion prolongée.
7 – Coût réduit Le coût de fabrication unitaire ne doit pas dépasser 300€.
8 – Facilité de déploiement L’installation sur site doit être simple, rapide et ne nécessiter que peu d'outils.

 

Montage et protocole
  • Montage et protocole

Nous voulons réaliser le montage suivant à l’aide des matériaux commandés : 

Photo dessin Figure 1 : 

Cependant nous ne pouvons pas réaliser le montage entièrement car il nous manque des composantes importantes pour pouvoir le faire. 

Nous avons pu ci-dessous comparer nos mesures de température et de pression prises à l’aide de nos capteurs par rapport à ceux de notre professeur utilisés sur le terrain. 

Température

L'une de nos contraintes est que l'on mesure des petites variations de température. Il nous faut donc un capteur de précision ; nous avons choisi le capteur Tsic 716 TO92. De plus nous voulons que sur le terrain nous puissions accéder au graphique des mesures afin de pouvoir s'assurer directement que les données ne soient pas incohérentes.

Nous avons donc réalisé ce montage, présenté ci-dessous en figure 2, pour prendre les mesures de notre capteur de température Tsic et les comparer à celles prises par le capteur de référence, celui de notre professeur Danièle Valdés :

IMG_1635.jpeg
Figure 2 : Photo du montage pour la mesure de la
température.

Ci-dessous les étapes pour faire fonctionner le code Arduino pour le capteur de température Tsic 716 :

    • Télécharger l'application Arduino IDE
    • Brancher la carte à l’ordinateur -> carte utilisée : Arduino Nano
    • Vérifier dans Tools -> Ports que l’ordinateur et l’application Arduino reconnaissent le port auquel est branché la carte. Ici le nom du port en figure 3 à droite est : /dev/cu.usbserial-A9O6OQ4E 
    • Télécharger le board Arduino Nano dans l’onglet Board Manager (figure 5)
    • Sélectionner le bon board spécifique. Les étapes sont présentées en figure 3 à droite, ou sinon :
      Tools -> Board -> Boards Manager sélectionner Ardunio AVR Boards -> cliquer sur Ardunio Nano 
    • Télécharger la bibliothèque TsicSensor dans l’onglet Library Manager (figure 5)
    • Brancher le capteur de température Tsic 716 TO92 directement à la carte Arduino comme présenté sur la figure 3, en référence à la figure 4
      Fil noir = GND -> pin 1     ;     Fil jaune = signal (ici D2) -> pin 2    ;     Fil rouge = voltage (ici 5V) -> pin 3
  1.  image.jpegimage.jpegimage.jpeg
    Figure 3 : Photo du branchement de la carte Arduino au capteur de température (gauche) ainsi qu'une capture d'écran des étapes pour choisir le board (droite).
  2. y
  3. image9.pngFigure 4  : Schéma des signaux assignés aux différents pins du capteur TSIC via la fiche technique []. 
  4.  
    • Copier-coller le code suivant dans la zone de code (figure 5) de l’application Arduino : 
Code du capteur de température
/*
 Tip: Open the "SerialPlotter" tool of the Arduino IDE and see the temperature as graph...
*/

#include <TsicSensor.h>

TsicSensor* sensor1;

float temperature;

void setup() 
{
   Serial.begin(115200);

   
   sensor1 = TsicSensor::create(02, TsicExternalVcc, TsicType::TSIC_716);
}


void loop() 
{
	// we are now waiting for new (changed) temperature values ...
	if(sensor1->newValueAvailable())
    {      
	  // Get the temperature in °Celsius.
      temperature = sensor1->getTempCelsius();
    }

    // output the temperature value to the serial port...
    Serial.println(temperature);
    delay(1000);
}
  1.  
    • Pour vérifier si le code est correct, cliquer sur le bouton Verify en haut à gauche (figure 5)
    • Téléverser le code sur la carte via le bouton Upload en haut à gauche à côté du bouton Verify (figure 5)
    • Pour visualiser les mesures lancées automatiquement, cliquer sur Serial Monitor en haut à droite (figure 5)
    • Pour visualiser les données sous forme de graphe, cliquer sur Serial Plotter en haut à droite à côté de Serial Monitor (figure 5)

Cap13.12.13.png
F
igure 5 : Capture écran de l’interface de l’application Arduino. En légende, les logos associés à leur nom.

 

Résultat
  • Résultats

Voici ci-dessous les résultats obtenus pour la comparaison de nos capteurs de température

img14.jpg
Figure : Graphique de comparaison de la température de refroidissement de l’eau entre notre capteur TSIC et celui de notre professeur par rapport au temps.

Nous pouvons remarquer 

Conclusion et remerciement
  • Conclusion


  • Remerciements

Nous remercions Pierre Thery et Loïc Labrousse pour nous avoir donné accès au Fablab ainsi que le matériel nécessaire pour faire les manipulations. 
Nous remercions également Danièle Valdés pour le projet 

Journal de bord
  • Journal de bord

31/01/2025 —— Schématisation et réflexion 

Nous avons schématisé ci-dessous la sonde que nous allons essayer de monter dans ce projet. 

image_2.png
Figure 1 : Schéma du prototype imaginé

Puis nous avons fait nos recherches sur les capteurs de température en prenant en compte : le prix (le moins cher possible), la haute précision attendue et la gamme de température. Nous n’avons rien trouvé de concluant, seulement que les capteurs Pt100 de classe A pourraient correspondre à nos conditions, bien que la précision varient selon les modèles. 

Nous avons également commencé à réfléchir sur la question du système Bluetooth ou RFID. Nous nous sommes ainsi imaginés que si nous partions sur le système Bluetooth, il faudrait prévoir un mécanisme activant et désactivant le Bluetooth lorsque celui-ci n’est pas utilisé pour éviter une perte trop importante de la batterie. L’idée nous est venu d’utiliser un bouton relié à une LED pour montrer l’activation du système. A cause du problème d’étanchéité de notre datalogger nous avons pensé à utiliser un bouton poussoir relié à un ressort plutôt qu’un interrupteur qui risquerait de laisser passer l’eau au sein du compartiment.

02/02/2025 —— Carte mentale de nos conditions

En réfléchissant à notre cahier des charges, nous obtenons ci-dessous le diagramme des différentes conditions qu’il nous faudra remplir. 

image.png
Figure 2 : Diagramme des conditions du projet et des idées pour y répondre en plus de leurs problématiques.

07/02/2025 —— Recherche des composantes du capteur

Après avoir fait nos recherches, nous sommes tombés d'accord pour utiliser pour le datalogger une boîte de dérivation, présentée ci-dessous figure 3. Cette boîte est déjà étanche tout en ayant un prix raisonnable (entre 5 et 10€). En revanche les entrées des câbles auront besoin d’être étanchéifiées à l’aide d’un presse-étoupe adapté. 
Une autre possibilité d’assurer l’étanchéité du système serait d’utiliser du gel d’étanchéité et de le mettre dans la boîte de dérivation. Cependant un problème apparaît. Comme nous aurons des petites pièces (pile et Arduino), lorsque nous retirerons le gel pour changer la pile nous risquerons de perdre les petites pièces. 
Enfin, afin d'éviter la condensation lors de changements brusques de température nous mettrons un sachet de dessiccateur dans le datalogger.

image3.jpgFigure 3 : Référence potentielle de la boîte étanche pour le data logger.[1,2]

Nous avons également réfléchi aux types de capteurs que nous allons utiliser. Notre choix c’est porté sur les capteurs de température de type semi-conducteurs (ils coûtent environ entre 10-20€), et pour ceux de pression nous utiliserons les capteurs de type piézo-électrique (qui coûtent environ une soixantaine d’euros). 

 

14/02/2025 —— Recherche des composantes du capteur

Nous avons trouvé un capteur de température qui respecte nos contraintes. 

  • Référence du capteur de température : TSic 716 TO92 [3]

Nous allons envoyer un mail au fabriquant afin d’avoir une gamme de température qui correspond à celle dans la carrière (5-25°C). Pour l’instant le capteur est vendu avec une gamme de 25-45°C mais il est possible de la changer sur demande auprès du fabriquant.

De même, nous commençons à avoir une bonne idée du capteur de pression que nous allons utiliser, le problème principale restant le prix, supérieur à 100 € bien souvent, ainsi que le précision. Nous souhaiterions pouvoir évaluer des variations de hauteur de la colonne d'eau inférieures à 3 cm.

  • Référence du capteur de pression :  MS583730BA01-50 [4]

Nous avons choisi le capteur de pression MS5837-30BA, car il est capable de mesurer des variations de la colonne d'eau d'environ 2 mm. Nous n'espérons pas atteindre une telle précision sur le terrain, mais pouvoir souligner des variations de l'ordre du demi-centimètre remplirait nos attentes. La difficulté avec ce capteur est sa très petite taille de 3.3 x 3.3 x 2.75 mm. Il faudra parvenir à correctement isoler sa jonction sans exercer de contraintes sur la cellule du capteur, sans quoi les mesures de pression absolue seront toutes faussées.

07/03/2025 —— Comptabilité des matériaux

Nous avons trouvé tous les matériaux principaux pour le capteur et le datalogger. Nous avons ainsi essayé de choisir nos références présentées ci-dessous : 

image4.png
Figure 4 : Tableau non exhaustif des coûts envisagés.

image7.pngFigure 5 : Schéma du dispositif sonde, datalogger et alimentation indépendante.

21/03/2025 —— Commande reçus

Une partie de la commande que nous avions faite la semaine dernière a été reçus : capteur de température et capteur de pression qui est vraiment petit. Nous attendons encore les boîtes de dérivation qui devraient arriver d’ici la semaine prochaine.

IMG_1268.jpegFigure 6 : Photo des deux capteurs de pression à gauche et du capteur de température à droite.

Nous avons commencé à envoyer des mails à des laboratoires car nous cherchons à calibrer le capteur de température. Malheureusement les laboratoires que nous avons contacté n’en possèdent pas d’aussi précis que 0,07°K. 
Nous voudrions la semaine prochaine avoir une esquisse de notre futur capteur de température afin de pouvoir prochainement le calibrer. Pour cela nous avons d'abord besoin de l'étanchéifier et de faire le code Arduino afin de récupérer les données. 

28/03/2025 —— Soudage du fil au capteur

Les trois boîtes de dérivation ont été reçus et nous avons trouvé dans le Fablab géoscience un câble constitué de trois fils mis à nu. Nous sommes ensuite allés au prototypage pour souder l’ensemble capteur-fils (figure 6) pour pouvoir dans les semaines qui suivent calibrer notre capteur de température. 

image1.jpeg
Figure 7 : Photo du câble électrique soudé aux pins de notre capteur de température.

04/04/2025 —— Code Arduino, calibration du capteur

Avant de commencer le code Arduino, il faut déterminer quel pin correspond à quel signal. Via la fiche technique nous obtenons ceci, figure 8 ci-dessous : 

image9.pngFigure 8 : Schéma des signaux assignés aux différents pins.

Association des pins aux fils du câble électrique à l'aide des figures 7 et 8.
Pin 1 = GND -> fil noir     ;     Pin 2 = signal -> fil jaune    ;     Pin 3 = voltage -> fil rouge

Voici ci-dessous, un code créé sensé nous donner la température. Nous avons téléchargé la bibliothèque TSIC.h sur Arduino avant ensuite de lancer le code. 

Faire attention si la bibliothèque fait bien appel au capteur utilisé ! 
Le capteur TSIC716-TO92 n'est pas référencé dans la bibliothèque => suppression de la ligne de code qui y faisait appel. 

#include <TSIC.h>

// Capteur connecté sur la pin D3
TSIC myTSIC(3); // Pin DATA

void setup() {
  Serial.begin(9600);
  // Pas de setType() ici — ta version de la lib n’en a pas besoin
}

void loop() {
  uint16_t rawTemp;

  if (myTSIC.getTemperature(&rawTemp) == 0) { // 0 = pas d'erreur
    Serial.print("Valeur brute : ");
    Serial.println(rawTemp);  // <- DEBUG ici

    float temperature = rawTemp / 10.0; // Conversion : 0.1°C par unité
    Serial.print("Température : ");
    Serial.print(temperature);
    Serial.println(" °C");
  } else {
    Serial.println("Erreur de lecture !");
  }

  delay(1000);
}

Le code a l'air de fonctionner mais nous obtenons dans le serial monitor 0.00°C de température. Problème donc. Nous avons revérifié les branchements ainsi que le voltage des pins de la carte Arduino. Tout était ok, le problème est donc autre part. Peut-être que le code n'est pas complètement correct malgré la vérification utilisé sur Arduino. 

Le montage était le suivant, présenté en figure 9 :

image.jpeg
Figure 9 : Photo du montage du capteur de température  pour le code ci-dessus, en présence d'une résistance.

11/04/2025 —— Code Arduino, calibration du capteur

Nous avons repris le problème du début et réfléchit quel pouvait être le problème sur le code. 

Nous avons d’abord axé nos recherches sur la résistance ; celle utilisée précédemment était une résistance de 10kΩ. Nous nous sommes rendus compte que la résistance n’était pas obligatoire, nous l’avons donc enlevé. 

Nous avons ensuite décidé de nous pencher sur la bibliothèque utilisé et nous nous sommes rendus compte que celle utilisée précédemment, la TSIC.h, n’avait pas été mise à jour depuis quelques années.

Nous avons décidé de télécharger et d’incorporer dans le code une nouvelle bibliothèque : TsicSensor.h

Puis nous avons revérifié si le capteur était un analogique, un numérique ou les deux. Nous pensions initialement qu’il faisait les deux et que donc nous pourrons l’étalonner sans problème. Cependant nous avons remarqué qu’il n’était finalement que numérique et que donc nous ne pouvons pas l’étalonner. 

Nous obtenons tout de même le code suivant :

/*
   This is a very basic example how to use the TsicSensor library
   to read temperature values from a TSIC sensor.
   
   Tip: Open the "SerialPlotter" tool of the Arduino IDE and see the temperature as graph...
*/

#include <TsicSensor.h>

TsicSensor* sensor1;

float temperature;

void setup() 
{
   Serial.begin(115200);

   // This creates/initializes a TSIC_506 sensor connected to GPIO 16.
   // -----------------------------------------------------------------------------------
   // The sensor is configured with "TsicExternalVcc", so it has a permanent external 
   // power source. The sensor values are then read in the background. 
   // (we can check for new values with the "newValueAvailable()" function...)
   
   sensor1 = TsicSensor::create(02, TsicExternalVcc, TsicType::TSIC_716);
}


void loop() 
{
	// we are now waiting for new (changed) temperature values ...
	if(sensor1->newValueAvailable())
    {      
	  // Get the temperature in °Celsius.
      temperature = sensor1->getTempCelsius();
    }

    // output the temperature value to the serial port...
    Serial.println(temperature);
    delay(1000);
}

Le code fonctionne désormais.

Cependant, le capteur que nous avons utilisé fait appel à un protocole particulier : le protocole le protocole numérique ZACWire. C’est le seul capteur que l'on utilise qui y fait appel, ce qui n'est pas très pratique, et nous aurions préférer un protocole analogique. Même si le programme est robuste grâce à se protocole, il n’est pas simple à exploiter et est assez compliqué. Ainsi nous avons décidé de prendre un autre capteur. 

De plus, même si nous avions réussi l’étalonnage du capteur TSIC nous aurions eu une précision de 0,1°C soit moins précis que sans étalonnage. Nous privilégierions l’autre capteur possédant -3°C de précision mais qui sera étalonné sur toute la gamme de température. 

Changement de capteur !

02/05/2025 —— Mesure de la température

Nous pouvons désormais utiliser le code pour mesurer la température : pour ce faire nous avons réalisé le branchement suivant (figure 10) et avons donc branché la carte Arduino Nano au capteur de température. Le capteur étant numérique nous avons fait les branchements sur les pins numériques de l'Arduino, ici nous l'avons mis sur D2.

Il faut prêter attention à bien choisir le bon board, téléchargé à l'amont, à savoir le board AVR puis choisir Nano. Le chemin suivi est en figure 10. 

image.jpegimage.jpegFigure 10 : Photo du branchement de l'arduino au capteur de température (gauche) ainsi qu'une capture d'écran du board à choisir (droite).

Pour vérifier le bon fonctionnement du code, nous avons fait varier la température en plaçant le capteur de température à l'air puis dans l'eau, visible en figure 11 ci-dessous. 
Sur Arduino nous pouvons afficher le graphique de température en fonction du temps réalisé en temps réel. Grâce à ce graphique sur le terrain nous pourrons voir les variations instantanées et ainsi savoir s'il y a des incohérences dans les données.

IMG_1515.jpeg
Figure 11 : Photo du montage pour la mesure de la
température.

 

16/05/2025 —— Mesure et comparaison des capteurs de température

Nous avons cherché à comparer la différence de mesure de température de notre capteur et celui de référence utilisé par notre professeure Danièle Valdes. Pour cela, nous avons mis en place un protocole afin de mesurer le refroidissement d’une eau pour vérifier que nos mesures sont bien celles que nous voulions obtenir par rapport au capteur de référence.
Ci-dessous figure 12, notre montage réalisé pour mettre en place notre protocole :

IMG_1635.jpeg
Figure 12 : Photo du montage pour comparer les mesures de température entre notre capteur et celui de notre professeur.

Lors de la phase de refroidissement, graphique figure 13, nous pouvons remarquer que les deux capteurs suivent sensiblement la même décroissance de température 

La tendance générale des courbes présente une diminution régulière de la température, ce qui est attendu lors d’un refroidissement. La forme des courbes montre un refroidissement progressif sans sauts anormaux, suggérant une bonne stabilité des deux capteurs. 
Plus précisément si l’on compare les deux capteurs, le TSIC mesure une température légèrement supérieure à celle du capteur de notre professeur. L’écart moyen entre les deux semble être d’environ 0,5°C. 
Le parallélisme des courbes indique que le TSIC suit correctement la tendance du capteur de référence. De plus, il n’y a pas de décalage temporel donc les mesures semblent bien synchronisées. 

Ainsi le capteur TSIC semble fiable pour suivre une évolution thermique car il reproduit assez fidèlement la tendance du capteur de référence. Cependant une erreur positive est présente peut-être dû à un étalonnage différent les capteurs ne provenant pas du même constructeur, une position légèrement différente dans le récipient ou bien une sensibilité différente. 

img14.jpg
Figure 13 : Graphique de comparaison de la température de refroidissement de l’eau entre notre capteur TSIC et celui de notre professeur en fonction du temps.

Les mesures du TSIC716-O92 correspondent à 0,5°C près à celles du capteur de référence.

Cependant lorsqu’ils sont en réchaud -> 2°C de différence
Celui est plus long à se réchauffer que le TSIC qui prend les variations très facilement Attention plateau atteint à 59,7°C

 

 

21/05/2025 —— Mesure et comparaison des capteurs de pression

Nous avons cherché à comparer la différence de mesure de pression de notre capteur et celui utilisé par notre professeure Danièle Valdes.

Liste de commande et bibliographie

Liste de commande actualisée :


Déjà achetés :

  • 1 x Grande boîte de dérivation PEBA IP68 Ø4mm-14mm 5 voies - https://ipeba.com/fr/products/peba®-wasserdicht-abzweigdose-erdkabel-kabelverbinder-ip68-verteilerdose-steckdose-aussen-verteiler-o4mm-14mm-kabel-fur-garten-outdoor-verbinder-box-5-wege-schwarz

  • 2 x Petite boîte de dérivation PEBA IP68 Ø4mm-12mm 2 voies - https://ipeba.com/fr/products/peba®-abzweigdose-erdkabel-klemmdose-verbindungsdose-2-wege-junction-box-ip68-wasserdichte-verteilerdose-kabelverbinder-aussen-elektrischer-aussenverteilerdose-kabeldurchmesser-o-4mm-12mm-schwarz
  • Bibliographie

  1. « LEGRAND Plexo Boite de dérivation étanche IP55 105x105x55 650°C gris - 092022 ». 123elec, 19 juillet 2024, https://www.123elec.com/legrand-plexo-boite-de-derivation-etanche-ip55-105x105x55-gris-092022.html
  2. « Fiche technique FA340A, boîtes de dérivation PLEXO ». Legrand, 08 juin 2012, https://assets.legrand.com/general/mediagrp/np-ft-gt/f01039fr-01.pdf
  3. « Temperature Sensor IC | Innovative Sensor Technology », Farnelle, https://www.ist-ag.com/en/tsic-semiconductor-temperatures-sensors.
  4. « Pressure Sensor | TE Connectivity (TE) », Mouser, https://mou.sr/4hugY4.