Sonde tépérature étanche

Bonjour, j'ai acheté une sonde étanche pour mesurer la température de mon aquarium
https://fr.aliexpress.com/item/1-m-100-cm-Num-rique-Capteur-10-k-1-3950-tanche-Sonde-NTC-Thermistance-Pr/32956973162.html?spm=a2g0s.9042311.0.0.4b666c37sIM1vG

J'aurais aimé connaître la façon de récupérer une température (le code du sketch). J'en ai vu plusieurs sur le Net, mais ne sait pas trop laquelle choisir.

Par exmple
http://www.circuitbasics.com/arduino-thermistor-temperature-sensor-tutorial/
https://playground.arduino.cc/ComponentLib/Thermistor

D'avance merci

hello

le terme étanche me surprend

regarde ICI

edit: oups excuses moi, je n'avais pas vu la sonde encapsulée qui est "cachée" dans l'enroulement de fils.

Oups
Tu penses que la soude achetée ne peut pas être mise dans un aquarium ?

Si l'encapsulage est correct elle est étanche (par contre elle n'est pas numérique mais analogique !)
sonde.jpg

Pour ce qui est de la méthode , étant donné que tu connais :
-A, la résistance à 25°C = 10K Ohm
-le coefficient B = 3950

Tu pourrais appliquer la relation de Steinhart-Hart (LA méthode !) avec ces deux coefficients A et B et négliger le coefficient C. Quand on ne connait pas B on se rabat sur d'autres méthodes plus approximatives mais là, avec une thermistance à 1% et la valeur de B il serait dommage de passer à côté de la bonne formule.

Içi un exemple d'application avec un code ou tu introduis :la valeur de la thermistance (résistance à 25°C) , le coefficient B, et la valeur de la résistance mise en série

NTC.ino (1.63 KB)

OK merci beaucoup pour ces précisions
Je débute alors je tâtonne, mais c'est très intéressant
Je reviens vers à réception si je rencontre des problèmes :slight_smile:

Un petit up...
Je rencontre quelques problèmes pour faire fonctionner cette sonde

Déjà dans tous les articles, il n'y a que 2 fils, le + et la masse.

Personnellement, j'en ai 3 la masse, le PLUS et le SIGNAL

Secondement, les articles sont en 3.3V , personnellement, j'aurais la mettre en 5 Volt.

Un petit coupe de pouce serait appréciable. Toujours l'air simple avant achat, puis toujours un peu casse tête !

D'avance merci !

En plus, la carte qui dispatche les 2 fils arrivant de la sonde en 3 fils possède déjà une résistance non ? Donc je n'ai pas besoin de R de 10K, ou est ce que je me trompe ?

Non , tu ne te trompes pas

tu as acheté une thermistance + un boitier d'adaptation qui contient une résistance (1 K Ohm sur la photo)
Il suffit de relier le boitier d'adaptation (côté 3 fils) au 5V , à la masse , et une entrée analogique

le vendeur donne quelques informations sur la thermistance
thermistance.jpg

Valeur à 25°C : 10 kOhm (R25)
Coefficient B (ou beta) permet de calculer la résistance à une valeurs différente de 25°C
Tension ; jusqu'à 12V , donc pas de souci pour +5V

Il existe plusieurs méthodes pour exploiter une thermistance et déduire la température de sa valeur

Vu qu'il s'agit d'une température d'aquarium pas besoin de se prendre la tête avec la 'Relation de Steinhart-Hart' et ses 3 coefficients inconnus.

Cette méthode serait à utiliser s'il s'agissait de mesurer des températures sur une grande plage , -50°C à +50°C par exemple.... Avec un aquarium les températures resteront dans une plage réduite

Tu devrais avoir, dans ton cas, de bons résultats avec la méthode plus simple utilisant :
R25 : 10 kOhm
B (ou Beta) = 3950 Kelvin

Cool, je ne me suis pas trompé pour la résistance
Enfin un bon point.
J'ai plongé la sonde dans un verre d'eau (environ 15/18 degrés)
Branché le + sur le +, la masse à la masse et le signal sur A0

J'ai récupéré le code suivant sur Using a Thermistor | Thermistor | Adafruit Learning System

CODE :

// which analog pin to connect
#define THERMISTORPIN A0         
// resistance at 25 degrees C
#define THERMISTORNOMINAL 10000      
// temp. for nominal resistance (almost always 25 C)
#define TEMPERATURENOMINAL 25   
// how many samples to take and average, more takes longer
// but is more 'smooth'
#define NUMSAMPLES 5
// The beta coefficient of the thermistor (usually 3000-4000)
#define BCOEFFICIENT 3950
// the value of the 'other' resistor
#define SERIESRESISTOR 10000    

uint16_t samples[NUMSAMPLES];

void setup(void) {
 Serial.begin(9600);
 analogReference(EXTERNAL);
}

void loop(void) {
 uint8_t i;
 float average;

 // take N samples in a row, with a slight delay
 for (i=0; i< NUMSAMPLES; i++) {
  samples[i] = analogRead(THERMISTORPIN);
  delay(10);
 }

 // average all the samples out
 average = 0;
 for (i=0; i< NUMSAMPLES; i++) {
    average += samples[i];
 }
 average /= NUMSAMPLES;

 Serial.print("Average analog reading "); 
 Serial.println(average);

 // convert the value to resistance
 average = 1023 / average - 1;
 average = SERIESRESISTOR / average;
 Serial.print("Thermistor resistance "); 
 Serial.println(average);

 float steinhart;
 steinhart = average / THERMISTORNOMINAL;     // (R/Ro)
 steinhart = log(steinhart);                  // ln(R/Ro)
 steinhart /= BCOEFFICIENT;                   // 1/B * ln(R/Ro)
 steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
 steinhart = 1.0 / steinhart;                 // Invert
 steinhart -= 273.15;                         // convert to C

 Serial.print("Temperature "); 
 Serial.print(steinhart);
 Serial.println(" *C");

 delay(1000);
}

Et j'ai en retour une temp de -273 degré !!

Temperature -273.15 *C
Average analog reading 1023.00
Thermistor resistance inf
Temperature -273.15 *C
Average analog reading 1023.00
Thermistor resistance inf
Temperature -273.15 *C
Average analog reading 1023.00
Thermistor resistance inf
Temperature -273.15 *C
Average analog reading 1023.00
Thermistor resistance inf
Temperature -273.15 *C

Donc il y a un hic ....

D'allieurs cette valeur est la même que cet ligne de code

steinhart -= 273.15;

...

avant de dire 'hic' il faut adapter le code à tes valeurs.....

R0 = 10000 (c'est le R25), OK
B = 3950 , OK
mais la résistance série (R1 sur l'adaptateur) semble être pour toi 1000 et non 10000 (sur le photo on voir le marquage 101 sur la résistance : 1 0 et 2 zéros (=1000)

Donc il y a un hic ....

Oui parfaitement il y a un hic mais pas forcément ou tu pense.
Que penses tu de cette valeur affichée :

Average analog reading 1023.00

1023 pour une mesure analogique cela correspond à quoi ?

Alors voilà, j'ai modifié les valeurs

// which analog pin to connect
#define THERMISTORPIN A5         
// resistance at 25 degrees C
#define THERMISTORNOMINAL 10000      
// temp. for nominal resistance (almost always 25 C)
#define TEMPERATURENOMINAL 25   
// how many samples to take and average, more takes longer
// but is more 'smooth'
#define NUMSAMPLES 5
// The beta coefficient of the thermistor (usually 3000-4000)
#define BCOEFFICIENT 3950
// the value of the 'other' resistor
#define SERIESRESISTOR 1000

Et surtout j'ai commenté

 // analogReference(EXTERNAL);

Les valeurs semblent mieux adaptées.

Un grand merci pour l'aide, désolé, si ça à l'air simple pour les pros mais pas évident pour un novice

Encore merci :wink:

Pas évident pour un débutant
pourtant j'essaye de faire gaffe avant achat, mais je me fais toujours avoir par un détail.
Cool pour l'aide de ce forum :wink:

1023 pour une mesure analogique cela correspond à quoi ?

Je suis intéressé par la réponse et ce type d'apprentissage par questionnement. Alors je dirais que c'est la valeur la plus haute , non ?

Et là je comprends que j'ai un problème de Résistance ou de facteur de résistance ...

Suite à cela j'ai trouvé cette lecture
https://www.carnetdumaker.net/articles/la-conversion-analogique-numerique-avec-arduino-genuino/

C'est cela qui me manque, les bases pour avoir une vision globale :wink:

Merci pour ce mini cours et réflexion :slight_smile:

Oui , la valeur la plus haute
Elle correspond en binaire à 11 1111 11111 , avec 10 bits on ne peut pas faire plus !

C'est cela qui me manque, les bases pour avoir une vision globale ;)

Elle est excellente cette blague.

Je te signale qui si tu avais lu le message en tête de forum : "Règles du forum francophone" tu y aurai lu qu'on demande aux débutants de lire le tuto d'Eskimon qui explique tout pour bien débuter avec arduino et on donne même le lien vers le tuto.

Tant que j'y suis : en haut à droite de la page écran il y a une icône en forme de loupe et bien c'est le moteur de recherche du forum, et cerise sur le gâteau les premières réponse sont en français.

Bah, voir le bon côté de l'histoire ça t'as faire marrer....

Méa Culpa : je suis désolé , mais j'ai lu la doc (et pas que celle là), le hic c'est de l'assimiler... et y retrouver les infos nécessaires en temps voulu.

Pour ma défense, je découvre ce monde depuis début janvier, j'ai imprimé plein de doc, potassé plein de trucs mais je n'ai jamais fait à la base d'électronique et / ou d'électricité. Je n'ai pas une bourse à mourir et peu de temps libre donc j'achète chez ali, c'est moins cher mais bon la doc , ce n'est pas ça... Mais je passe plein de temps avant l'achat pour être sûr qu'il fonctionnera sans trop de problème pour ne pas embêter le monde comme en ce moment.
Pour ce coup là, la valeur à voir, fallait le savoir !! C'est pas de plus évident.

Donc un grand merci à ceux qui m'ont aiguillé sans me foutre de coups de pieds au cXX et merci également aux autres pour m'indiquer la voix même si c'est pas toujours de la façon la plus sympathique. Je vous comprends, vous devez sans doute répéter souvent les mêmes choses. j'ai donc lu plein de docs, mais mettez vous du coté des débutants : assommés par le nombre de pages web, de docs qui correspondent plus ou moins à notre matériel, de nouveau vocabulaire à acquérir, de nouvelles conceptions, etc... Donc c'est faux de croire que je n'ai pas cherché à comprendre et fais l'effort de faire des recherches. Ce monde étant nouveau, je les ai mal faites, c'est tout. Ou mal comprises...

Pour conclure, vous avez le savoir, et sachez qu'en aidant un peu, comme ici le coup de la valeur sur la photo, vous débloquez des personnes sur des situations qui a vos yeux semblent hyper simples mais aux notres non...

Ensuite rien ne vous oblige à répondre à des posts qui vous semblent trop simplistes... Ou si mes demandes vous semblent réellement être celles d'un faineant demeuré, j'en suis désolé, mais c'est loin d'être le cas.

Sauf que .....

Si on a pris la peine d'écrire ce message et de recommander CE tuto en particulier c'est bien pour faciliter la tache des débutants et leur éviter de se perdre dans de la doc qui n'est pas toujours juste. Et cela nous fait mal de voir des débutants ne pas profiter de ce conseil parce qu'il n'ont pas lu les règles du forum.

Eskimon est un très bon pédagogue, Franchement son tuto est le meilleur qui existe pour débuter, il est en français et donne une très bonne initiation tant en programmation qu'en électronique.

Que demander de plus ?

Bonne lecture et tu verra que cela ira bien mieux après.

OK , merci pour les conseils , je vais suis les recommandations
Bonne journée