Go Down

Topic: Capteur de température Arduino sous l'eau (Read 186 times) previous topic - next topic

Tprog

Jul 01, 2020, 02:32 pm Last Edit: Jul 01, 2020, 02:39 pm by Tprog
Bonjour,

Existe-t-il un capteur de température Arduino capable de prendre ses mesures sous l'eau ?
Si oui, le fonctionnement au niveau du branchement et de la programmation est-il identique que pour un capteur "classique"  ?


Merci

J-M-L

#1
Jul 01, 2020, 03:05 pm Last Edit: Jul 01, 2020, 03:06 pm by J-M-L
il existe des DS18B20 qui sont soi disant étanches.



ça ne change rien à la programmation
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Tprog

#2
Jul 01, 2020, 03:14 pm Last Edit: Jul 01, 2020, 03:19 pm by Tprog
Pourquoi "soi disant" ?

J'ai trouvé ce code pour ce capteur :

Code: [Select]
/**
 * Exemple de code pour lire un unique capteur DS18B20 sur un bus 1-Wire.
 */
 
/* Dépendance pour le bus 1-Wire */
#include <OneWire.h>
 
 
/* Broche du bus 1-Wire */
const byte BROCHE_ONEWIRE = 7;

/* Code de retour de la fonction getTemperature() */
enum DS18B20_RCODES {
  READ_OK,  // Lecture ok
  NO_SENSOR_FOUND,  // Pas de capteur
  INVALID_ADDRESS,  // Adresse reçue invalide
  INVALID_SENSOR  // Capteur invalide (pas un DS18B20)
};


/* Création de l'objet OneWire pour manipuler le bus 1-Wire */
OneWire ds(BROCHE_ONEWIRE);
 
 
/**
 * Fonction de lecture de la température via un capteur DS18B20.
 */
byte getTemperature(float *temperature, byte reset_search) {
  byte data[9], addr[8];
  // data[] : Données lues depuis le scratchpad
  // addr[] : Adresse du module 1-Wire détecté
  
  /* Reset le bus 1-Wire ci nécessaire (requis pour la lecture du premier capteur) */
  if (reset_search) {
    ds.reset_search();
  }
 
  /* Recherche le prochain capteur 1-Wire disponible */
  if (!ds.search(addr)) {
    // Pas de capteur
    return NO_SENSOR_FOUND;
  }
  
  /* Vérifie que l'adresse a été correctement reçue */
  if (OneWire::crc8(addr, 7) != addr[7]) {
    // Adresse invalide
    return INVALID_ADDRESS;
  }
 
  /* Vérifie qu'il s'agit bien d'un DS18B20 */
  if (addr[0] != 0x28) {
    // Mauvais type de capteur
    return INVALID_SENSOR;
  }
 
  /* Reset le bus 1-Wire et sélectionne le capteur */
  ds.reset();
  ds.select(addr);
  
  /* Lance une prise de mesure de température et attend la fin de la mesure */
  ds.write(0x44, 1);
  delay(800);
  
  /* Reset le bus 1-Wire, sélectionne le capteur et envoie une demande de lecture du scratchpad */
  ds.reset();
  ds.select(addr);
  ds.write(0xBE);
 
 /* Lecture du scratchpad */
  for (byte i = 0; i < 9; i++) {
    data[i] = ds.read();
  }
  
  /* Calcul de la température en degré Celsius */
  *temperature = (int16_t) ((data[1] << 8) | data[0]) * 0.0625;
  
  // Pas d'erreur
  return READ_OK;
}
 
 
/** Fonction setup() **/
void setup() {

  /* Initialisation du port série */
  Serial.begin(115200);
}
 
 
/** Fonction loop() **/
void loop() {
  float temperature;
  
  /* Lit la température ambiante à ~1Hz */
  if (getTemperature(&temperature, true) != READ_OK) {
    Serial.println(F("Erreur de lecture du capteur"));
    return;
  }

  /* Affiche la température */
  Serial.print(F("Temperature : "));
  Serial.print(temperature, 2);
  Serial.write(176); // Caractère degré
  Serial.write('C');
  Serial.println();
}

 

Si je branche tout correctement, avec le bon capteur... normalement, je peux enlever les parties de vérification d'adresse, de capteur... non ?

J-M-L

Quote
Pourquoi "soi disant" ?
parce que je ne fais pas trop confiance à la pub des produits chinois et j'ai jamais trop essayé la résistance dans le temps ...

pour le code, prenez un des nombreux exemples dispo en ligne. il y a même des bibliothèques
dispos
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Lacuzon

J'utilise des DS18b20 avec sonde encapsulée dans un étui en inox semble-t-il.

Ça  tourne en routine 24h sur 24 depuis deux ans dans une réserve d'eau.

Par précaution, j'ai protégé le capteur avec une gaine thermorétractable du bon diamètre et j'ai recouvert le tout d'un vernis marine. L'eau que j'utilise est une eau de pluie donc plutôt acide.

La zone délicate reste l'entrée du cable dans l'étui inox. Il faut donc que la gaine fasse vraiment corps avec le cable.

Donc oui avec quelques précautions supplémentaires, ce type de capteur peut tenir (pour des gammes de températures allant de 7 degrés à 30 degrés environ).

al1fch

Bonjour

même constat que Lacuzon avec des DS18B20 'encapsulés' dont l'étanchéité a été renforcée avec de la gaine thermorétractée

gui21540

Mois j'utilise celui-ci : https://amzn.to/31AkN4w

Ce qui est vraiment bien en utilisant la bibliothèque OneWire tu peux en brancher plusieurs sur la même broche.

bricoleau

Bonjour

même constat que Lacuzon avec des DS18B20 'encapsulés' dont l'étanchéité a été renforcée avec de la gaine thermorétractée
+1 tant qu'on reste en eau douce.

Pour une immersion en eau chlorée d'une piscine, ou (pire) eau salée d'un aquarium, doubler complètement l'étanchéité est indispensable pour une tenue à long terme.
Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

Tprog

Super merci beaucoup pour toutes vos réponses.

J'ai trouvé une vidéo explicative sur YouTube pour ce capteur (DS18B20).
Je mets le lien si ça peut profiter à quelqu'un : https://youtu.be/8E-yVE--vZw

Merci, si j'ai d'autres questions, je reviendrai :)

EGT59

#9
Jul 02, 2020, 08:41 am Last Edit: Jul 02, 2020, 08:43 am by EGT59
+1 il faut absolument renforcer l'étanchéîté.



Expérience avec sonde DS18b20 sous 10cm d'eau douce Ph7,2 à 25°C pendant quelques mois.

J'ai eu ce cas sur deux sondes vendues pour "étanches".

Je refais donc systématiquement l'étanchéïté des tubes qui contiennent les sondes. Je démonte tout et je refais avec de la résine époxy + gaine thermorétractable.

Artouste

Bonjour
perso je n'ai jamais acheté de sondes "etanches" DS18B20
mais je m'en fais qq unes avec du materiel d'archerie ( tube et pointes creuses ) et araldite en remplissage



J-M-L

tout le monde n'a pas la chance d'habiter près d'un centre de tir à l'arc où les flèches cassées abondent on dirait !!

en tout cas vous réussissez à leur donner souvent une seconde vie :)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Artouste

#12
Jul 02, 2020, 11:57 am Last Edit: Jul 02, 2020, 12:09 pm by Artouste
tout le monde n'a pas la chance d'habiter près d'un centre de tir à l'arc où les flèches cassées abondent on dirait !!

en tout cas vous réussissez à leur donner souvent une seconde vie :)
J'ai des proches "bons archets" :smiley-mr-green:



les chutes de tubes carbones sont aussi bien pratique qq fois avec leur faible resistance ohm relative et leur tenue à la destruction electrolytique


Go Up