Page 1 sur 7
Mesure des températures avec courbes
Publié : lun. nov. 23, 2015 10:35 pm
par Jacques
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
Re: Mesure des températures avec courbes
Publié : ven. nov. 27, 2015 7:53 pm
par Tim0th3e
Bonsoir,
Merci pour votre réponse. Je vais y réfléchir...
Re: Mesure des températures avec courbes
Publié : sam. nov. 28, 2015 8:35 pm
par Jacques
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 (31.94 Kio) Consulté 13187 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
Re: Mesure des températures avec courbes
Publié : lun. nov. 30, 2015 4:41 pm
par Jacques
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 (39.12 Kio) Consulté 13178 fois
On remarque des créneaux car il s'agit de mesures digitales dont la précision est de 0,06°
Re: Mesure des températures avec courbes
Publié : sam. déc. 05, 2015 3:26 pm
par Tim0th3e
D'accord mais au niveau du firmware comment cela se passe-t-il?
Re: Mesure des températures avec courbes
Publié : sam. déc. 05, 2015 3:50 pm
par Jacques
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);
}
Re: Mesure des températures avec courbes
Publié : lun. déc. 07, 2015 7:34 pm
par Tim0th3e
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
Re: Mesure des températures avec courbes
Publié : mar. déc. 08, 2015 12:03 am
par Jacques
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€

Re: Mesure des températures avec courbes
Publié : mar. déc. 08, 2015 6:34 am
par Tim0th3e
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
Re: Mesure des températures avec courbes
Publié : mar. déc. 08, 2015 8:14 am
par Jacques
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

Re: Mesure des températures avec courbes
Publié : mar. déc. 08, 2015 1:23 pm
par Tim0th3e
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
Re: Mesure des températures avec courbes
Publié : mar. déc. 08, 2015 4:14 pm
par Jacques
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)
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
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.
Re: Mesure des températures avec courbes
Publié : mer. déc. 09, 2015 6:54 pm
par Tim0th3e
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 (30.09 Kio) Consulté 12997 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
Re: Mesure des températures avec courbes
Publié : mer. déc. 09, 2015 7:05 pm
par Jacques
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
Re: Mesure des températures avec courbes
Publié : mer. déc. 09, 2015 9:04 pm
par Tim0th3e
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)