Mesure des températures avec courbes

Posez ici vos questions techniques avec ou sans rapport à l'impression 3D
Répondre
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

Je répond ici à la question de Timothee
Bonsoir,
Je suis de près votre projet (presque fini d'ailleurs) de préchauffage witbox. J'ai vu que vous pouviez mesurer des températures, et qu'elles pouvaient être consultées sur un graphique.
Avec quel appareil réalisez-vous cela?

Merci et bonne soirée
Tim0th3e
J'utilise une sonde thermique sur un multimètre professionnel relié en USB à un PC avec un logiciel qui enregistre le tout dans un fichier que j'importe sous excel.

Ca, c'est la solution PRO

La solution amateur existe aussi
Carte arduino + sonde DS18B20 + une résistance la mesure et l'heure sur le port com avec enregistrement dans un fichier.
Un exemple ici https://skyduino.wordpress.com/2012/04/ ... e-ds18b20/
C'est facile en utilisant Putty ou l'hyperterminal mais aussi par une commande sous DOS
c:>copy comX: record.txt (comX étant le port com arduino)
Le fichier pourra alors être ouvert par le bloc note ou mieux par Excel pour faire une belle courbe
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Tim0th3e
Contributeur actif
Messages : 240
Inscription : sam. oct. 25, 2014 9:02 am
Imprimante 3D : Hephestos I 2014 + plateau Mk2a, montée quand j'étais assez petit
Localisation : Suisse

Bonsoir,
Merci pour votre réponse. Je vais y réfléchir...
signé Timothée
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

Je vais faire un petit montage à base d'Arduino nano et de trois sondes DS18B20
Avec la console Arduino IDE, il suffira de copier les données et de les coller dans Excel pour avoir une courbe.
Un petit montage à moins de 10€
sondes.JPG
sondes.JPG (31.94 Kio) Consulté 9919 fois
On trouve le temps en secondes et ensuite la température sonde 1 puis 2



Sinon il y a une solution Excel ici https://www.parallax.com/downloads/plx-daq
L'import et la courbe se fait depuis Excel
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

Je viens de faire un essai avec une Arduino et deux sondes
Copier/coller du moniteur série Arduino dans Excel et courbe... (chercher/remplacer. en , avant)
En x le temps en secondes, en Y ta température
Coût du montage 8 € et pas une soudure.
température 2 sondes.JPG
température 2 sondes.JPG (39.12 Kio) Consulté 9910 fois
On remarque des créneaux car il s'agit de mesures digitales dont la précision est de 0,06°
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Tim0th3e
Contributeur actif
Messages : 240
Inscription : sam. oct. 25, 2014 9:02 am
Imprimante 3D : Hephestos I 2014 + plateau Mk2a, montée quand j'étais assez petit
Localisation : Suisse

D'accord mais au niveau du firmware comment cela se passe-t-il?
signé Timothée
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

Ca ressemble à ca

Code : Tout sélectionner

#include <OneWire.h> //importe la librairie OneWire
int broche_OneWire = 2; // Choisit la pin d'entrée digitale de l'arduino
OneWire  capteur(broche_OneWire);;
//---- code des instructions du capteur
const int modeLecture=0xBE;
const int lancerMesure=0x44;
int iteration=0;
 
void setup() {
    Serial.begin(115200);
}
 
void loop() {
  float T_sonde_1=0;
  byte Adresse1[8]={0x28,0xFF,0x49,0x85,0x65,0x15,0x02,0x35}; // doit ressembler à ça : 
  // byte Adresse1[8]={0x28,0x9F,0x9E,0x47,0x05,0x00,0x00,0xCD};
  float T_sonde_2=0;
  byte Adresse2[8]={0x28,0xFF,0xA5,0x92,0x65,0x15,0x02,0x70};
  float T_sonde_3=0;
  byte Adresse3[8]={/*Met ici l'adresse d'une sonde récupérée grâce au programme précédent*/};
 
  iteration=iteration+1;
  T_sonde_1=getTemp(Adresse1); 
  T_sonde_2=getTemp(Adresse2);
  // T_sonde_3=getTemp(Adresse3);
  Serial.println(iteration);
  Serial.println(T_sonde_1);
  Serial.println(T_sonde_2);
  //Serial.println(T_sonde_3);
  Serial.println(" ");
 
 
 
 
}
 
 
float getTemp(byte adressecapteur[8]) { //fonction qui renvoie résultat float et ne reçoit rien
  //-------- variable locale de la fonction ----------
  byte data[12]; // Tableau de 12 octets pour lecture des 9 registres de RAM et des 3 registres d'EEPROM du capteur One Wire
  int tempet=0; // variable pour resultat brute  de la mesure
  float tempetf=0.0; // variable pour resultat à virgule de la mesure
  // XXXXXXXXXXXXXXXXXXXXXX Lancement d'une mesure et lecture du résultat XXXXXXXXXXXXXXXXXXXXXXX
  // Serial.println("**** Acquisition d'une mesure de la temperature **** ");
  // avant chaque nouvelle instruction, il faut :
  //    * initialiser le bus 1-wire
  //    * sélectionner le capteur détecté
  //    * envoyer l'instruction
  //--------- lancer une mesure --------
  capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné
  capteur.select(adressecapteur); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction
  capteur.write(lancerMesure,1); // lance la mesure et alimente le capteur par la broche de donnée
  //-------- pause d'une seconde -----
  delay(1000);     // au moins 750 ms
  // il faudrait mettre une instruction capteur.depower ici, mais le reset va le faire
  //---------- passer en mode LECTURE -------------
  capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné
  capteur.select(adressecapteur); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction
  capteur.write(modeLecture,1); // passe en mode lecture de la RAM du capteur
  // ----------- lire les 9 octets de la RAM (appelé Scratchpad) ----
  for ( int i = 0; i < 9; i++) {           // 9 octets de RAM stockés dans 9 octets
    data[i] = capteur.read();             // lecture de l'octet de rang i stocké dans tableau data
  }
  //----- caclul de la température mesurée (enfin!) ---------
  /*data[1]=data[1] & B10000111; // met à 0 les bits de signes inutiles  <- Le bug était 
  */
  tempet=(data[1]<<8)|data[0]; // a l'arrache style !
  // --- en mode 12 bits, la résolution est de 0.0625°C - cf datasheet DS18B20
  tempetf=float(tempet)*6.25;caché la
  tempet=data[1]; // bits de poids fort
  tempet=tempet<<8;
  tempet=tempet+data[0]; // bits de poids faible
  tempetf=tempetf/100.0;
  return (tempetf);
}
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Tim0th3e
Contributeur actif
Messages : 240
Inscription : sam. oct. 25, 2014 9:02 am
Imprimante 3D : Hephestos I 2014 + plateau Mk2a, montée quand j'étais assez petit
Localisation : Suisse

oula ça a l'air tout de même complexe pour une simple mesure de températures... :? Mais ce n'est pas grave ça me permettra d'apprendre un peut le C :)

Donc pour récapituler il faudrait ceci:

-Une carte arduino nano

-Trois sondes Dallas DS18S20

Vu le prix de cette carte arduino nano, ne serait-il pas plus judicieux d'acheter directement une arduino uno permettant d'aller plus loins?

Deux sondes suffiraient-elles?

Merci
signé Timothée
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

En fait c'est très simple, on utilise des modules tout faits, le programme ne tient finalement que sur quelques lignes très simples à écrire.

Nano ou Uno, peu importe, dans cet exemple je n'utilise qu'un seul port pour 3 sondes...
Sachant que la nano coûte moins cher qu'une Uno et qu'elle est plus petite (plus facile à intégrer), c'est la raison de mon choix.

De 1 à l'infini, le nombre de sondes n'est limité que par la taille du programme et donc de la mémoire programme de l'Arduino.

L'idée d'avoir plusieurs sondes c'est de pouvoir faire des courbes comparatives en simultané.
Par exemple la mesure de la température interne de la Witbox est à mettre en relation avec la température externe qui bouge dans le temps. En mettant une sonde derrière le ventilateur on peut avoir une courbe d'évacuation des calories en fonction de la température interne et de la vitesse des ventilateurs. On peut même visualiser le temps de fonctionnement et déterminer éventuellement les limites du système.
Bref, des tas de mesures qui informent sur l'efficacité d'un système.

Et tout ca pour moins de 10€ :ymapplause:
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Tim0th3e
Contributeur actif
Messages : 240
Inscription : sam. oct. 25, 2014 9:02 am
Imprimante 3D : Hephestos I 2014 + plateau Mk2a, montée quand j'étais assez petit
Localisation : Suisse

Mais le problème est que je trouve les sondes à 8€ pièces et une arduino nano à 30€... Je n'arrive pas du tout à la somme de 10€ :( Parle-t-on vraiment de la même chose?

Pour le montage vous utilisez une plaque d'essai?

Merci
signé Timothée
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

Nano : 3,19€ port inclus
http://www.banggood.com/fr/ATmega328P-A ... AmcC8P8HAQ

DS18B20 6,90 les 10 port inclus
http://www.amazon.fr/10-DS18B20-Capteur ... ds=ds18s20

Ca nous fait 10,09€ pour un enregistreur 10 sondes, il manque le câble des sondes et une résistance que je peux t'offrir

Google est ton ami :D
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Tim0th3e
Contributeur actif
Messages : 240
Inscription : sam. oct. 25, 2014 9:02 am
Imprimante 3D : Hephestos I 2014 + plateau Mk2a, montée quand j'étais assez petit
Localisation : Suisse

Jacques a écrit : Il manque le câble des sondes et une résistance que je peux t'offrir
Je ne comprend pas comment les sondes peuvent être câblées sans une soudure. Vous avez utilisé des connecteurs?
Je suis désolé mais je n'y connaît pas grand chose...

Une résistance de combien? J'en ai peut être une

L'alimentation de la carte arduino se fait par un connecteur micro usb?
Merci
signé Timothée
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

J'utilise un câble de PC avec un connecteur dans lequel je mets les sondes d'un coté et la résistance de l'autre.
Un bricolage juste pour tester.
Les ondes sont connectées en parallèle sur 2 ou trois fils suivant le type d'alimentation, fantôme (masse et signal)ou 3 fils (5V, masse et signal)
Dans le premier cas d'alimentation il faudra attendre au minimum 750ms pour avoir la mesure de chaque sonde (résistance 1K). Dans le second cas la mesure est immédiate (résistance de 4,7K)
Il faudra donc penser à alimenter directement la sonde si l'on veut des mesures cycliques rapides.

Montage avec alimentation fantôme (ou parasite)
Image

Dans le cas d'une alimentation classique on ajoute du 5V au VDD de la sonde et on peut remplacer la résistance par 4,7K
Un schéma pour la connexion de multiples capteurs sur 3 fils
Image

Sinon, le tout est alimenté par le PC via L'USB qui sert aussi pour transférer les mesures à la console Arduino.
C'est franchement un montage extrèmement simple.
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Tim0th3e
Contributeur actif
Messages : 240
Inscription : sam. oct. 25, 2014 9:02 am
Imprimante 3D : Hephestos I 2014 + plateau Mk2a, montée quand j'étais assez petit
Localisation : Suisse

Je commence à comprendre un peut. J'ai fait un petit schéma sur 123d circuits. Il y avait juste pas la sonde DS18B20 du coup j'ai fait avec le capteur de température de chez arduino:

Alors voici comment j'ai fait:
La patte de droite (GND) ----> GND
La patte du milieux (Vout) ----> Vin
La patte de gauche (Vs) ----> 5v avec la résistance 4.7K au milieu
circuit.PNG
circuit.PNG (30.09 Kio) Consulté 9729 fois
----
Jacques a écrit :J'utilise un câble de PC avec un connecteur dans lequel je mets les sondes d'un coté et la résistance de l'autre.
Un bricolage juste pour tester.

Un câble servo avec un connecteur irai bien?
----
Pour les résistances c'est en ordre je vais acheter un lot avec plusieurs types (1K, 4.7K...) ça sera plus simple pour les prochaines fois

Merci et bonne soirée
signé Timothée
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5613
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

ce schéma un peu confus ne ressemble pas à ce qu'il faut faire.
La résistance se met entre le +5V et le signal qui va sur l'Arduino.
Mais avant toute chose il faut savoir si tu veux utiliser 2 fils ou 3 pour relier tes sondes

Un câble de servo pourrait faire l'affaire bien entendu
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Tim0th3e
Contributeur actif
Messages : 240
Inscription : sam. oct. 25, 2014 9:02 am
Imprimante 3D : Hephestos I 2014 + plateau Mk2a, montée quand j'étais assez petit
Localisation : Suisse

Jacques a écrit : La résistance se met entre le +5V et le signal qui va sur l'Arduino.

Donc ça donnerait: Sonde; patte VDD---->résistance 4.7k---->5v

Jacques a écrit : Mais avant toute chose il faut savoir si tu veux utiliser 2 fils ou 3 pour relier tes sondes

Je pense mettre 4 sondes pour commencer donc je pense que deux fils vont suffire (2 sondes par fil)
signé Timothée
Répondre