Skip to main content

Régulation de température d'une cuve

Régulation de température d’une cuve

Informations 

Noms et Prénoms :

SEJDI Linda (linda.sejdi@etu.sorbonne-universite.fr)
SOSA VERGAS Luis Angel (la.sosa.vergas@gmail.com)
THAVARAJAH Roshani (roshani.thavarajah@etu.sorbonne-universite.fr)
VASANTHAN Luxcheni (luxcheni.vasanthan@etu.sorbonne-universite.fr)

Période : Lundi 7 octobre 2024 – 

Cursus : Master 2 Chimie parcours Ingénierie Chimique 

Tuteur : PULPYTEL Jerome (jerome.pulpytel@sorbonne-universite.fr)fr)

Contexte 

Ce projet, réalisé dans le cadre de l’UE 803 Optimisation et Contrôle des Procédés, porte sur la régulation et l’automatisation de la température d’une cuve contenant un liquide. Ce projet vise à développer des compétences pratiques en régulation, automatisation et intégration électronique. 

Objectif

L’objectif de ce projet est de concevoir et de réaliser un système automatisé de régulation de température pour une cuve. Il s’appuie sur une carte Arduino, un module de Peltier, une sonde de température et un circuit électronique intégrant un écran LCD, une LED et un buzzer. Ces éléments permettent de mesurer, d’afficher en temps réel et de réguler automatiquement la température pour atteindre une consigne définie par l’utilisateur. Le système devra être capable d’assurer les fonctions suivantes : 

  1. Imposer une température cible 

La température cible est fixée dans le code Arduino au démarrage. Cette consigne initiale sert de référence pour la régulation. 

  1. Afficher en temps réel

La température mesurée par une sonde immergée dans la cuve est affichée en temps réel sur un écran LCD. Cela permet une visualisation claire de l’évolution de la température.

  1. Réguler via le module de Peltier

Le module de Peltier est chargé de chauffer ou de refroidir la cuve pour maintenir la température souhaitée.
Une LED RGB indique visuellement l’état de la régulation. Suivant la couleur on a des informations sur l’état de la régulation/température.

  • Rouge dans le cas où la température est inférieure à la consigne.

  • Bleue dans le cas où la température est supérieure à la consigne.

  • Vert  dans le cas où la température correspond à la consigne.

Dans ce dernier cas, un buzzer retentit comme confirmation sonore. 

L’écran LCD continue d’afficher les variations jusqu’à ce que la consigne soit atteinte. 

  1. Ajuster dynamiquement la température cible 

Deux boutons poussoirs permettent à l’utilisateur de modifier la température cible en l’augmentant ou en la diminuant.

L’écran LCD met immédiatement à jour la nouvelle consigne et le système reprend sa régulation jusqu’à ce que la nouvelle température cible soit atteinte.

Matériels 

  • Cuve en Aluminium

  • Pompe de circulation

  • Support pour la Cuve

  • Pince en C

  • Module Peltier

  • Pâte thermique

  • Sonde DS1 (capteur de température)

  • Transistor NMOS (IRF540N ou similaire)

  • Alimentation externe de 12V (adaptateur secteur ou batterie)

  • Carte Arduino UNO

  • Câble USB pour Arduino

  • LED RGB

  •  Écran LCD 16x2

  • Buzzer

  • Bouton poussoir

  • Platine d’essai

  • Fils de Connexion (10 fils mâle-mâle, 10 fils mâle-femelle, 10 fils femelle-femelle)

  • Multimètre

  • Fer à souder et étain

Connexions  

Module Peltier :

Sonde DS1 :

Transistor NMOS (IRF540N ou similaire) :

LED RGB :

Écran LCD 16x2 :

Buzzer :

Bouton poussoir :

Construction 

(Schéma, étapes clés, code)
Une image contenant texte, écriture manuscrite, nombre

Description générée automatiquement
Figure 1 : Schéma manuel du système de régulation de température avec Arduino et module de Peltier

Etapes clés 

Étape 1 : Conception et préparation
La première étape consiste à bien comprendre le sujet et à établir une liste détaillée des composants nécessaires. Cette phase inclut également l'organisation des tâches au sein de l’équipe, chaque membre se voyant attribuer des responsabilités spécifiques.

Étape 2 : Montage et assemblage
La deuxième étape implique la réception du matériel et l'assemblage des composants. L'équipe installe le kit de refroidissement Peltier sur la cuve et relie tous les éléments électroniques sur une platine d'essai.

Étape 3 : Programmation et test
La troisième étape est dédiée au développement du code pour l’Arduino UNO, qui contrôle le module Peltier et régule la température de la cuve. Le programme inclut l’implémentation d’un régulateur PID pour assurer un contrôle précis de la température.


Programme Arduino 

#include <Wire.h>                // Pour la communication I2C

#include <LiquidCrystal_I2C.h>   // Pour l'écran LCD I2C

#include <OneWire.h>             // Pour la communication avec le capteur DS18B20

#include <DallasTemperature.h>   // Pour lire la température du capteur DS18B20

// Définition des broches

#define ONE_WIRE_BUS 2          // Broche pour le capteur DS18B20

#define BTN_UP_PIN 3            // Bouton poussoir pour augmenter la température de consigne

#define BTN_DOWN_PIN 4          // Bouton poussoir pour diminuer la température de consigne

#define LED_R_PIN 10            // Broche pour la LED RGB rouge

#define LED_G_PIN 9             // Broche pour la LED RGB verte

#define LED_B_PIN 8             // Broche pour la LED RGB bleue

#define MOTOR_PIN 12            // Broche pour contrôler le module Peltier

#define BUZZER_PIN 13           // Broche pour le buzzer

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Initialisation de l'écran LCD I2C (adresse: 0x27)

OneWire oneWire(ONE_WIRE_BUS);       // Initialisation de la communication OneWire

DallasTemperature sensors(&oneWire); // Initialisation du capteur DS18B20

int targetTemp = 27; // Température cible initiale

float currentTemp;

void setup() {

  // Initialisation de l'écran LCD I2C

  lcd.begin();

  lcd.backlight();  // Activer le rétroéclairage

  // Afficher un message d'accueil

  lcd.setCursor(0, 0);

  lcd.print("Regulation Temp");

  delay(2000);

  lcd.clear();

  // Configuration des broches

  pinMode(BTN_UP_PIN, INPUT_PULLUP);

  pinMode(BTN_DOWN_PIN, INPUT_PULLUP);

  pinMode(LED_R_PIN, OUTPUT);

  pinMode(LED_G_PIN, OUTPUT);

  pinMode(LED_B_PIN, OUTPUT);

  pinMode(MOTOR_PIN, OUTPUT);

  pinMode(BUZZER_PIN, OUTPUT);

  // Initialisation du capteur de température

  sensors.begin();

}

void loop() {

  // Lire la température actuelle du DS18B20

  sensors.requestTemperatures(); // Demande de mise à jour de la température

  currentTemp = sensors.getTempCByIndex(0); // Obtenir la température en Celsius

  // Afficher la température actuelle sur l'écran LCD

  lcd.setCursor(0, 0);

  lcd.print("Temp: ");

  lcd.print(currentTemp);

  lcd.print(" C    "); // Espaces pour effacer les caractères restants

  // Gestion des boutons poussoirs pour ajuster la température cible

  if (digitalRead(BTN_UP_PIN) == LOW) {

    targetTemp++;

    delay(200);  // Anti-rebond

  }

  if (digitalRead(BTN_DOWN_PIN) == LOW) {

    targetTemp--;

    delay(200);  // Anti-rebond

  }

  // Afficher la température cible sur la deuxième ligne de l'écran LCD

  lcd.setCursor(0, 1);

  lcd.print("Cible: ");

  lcd.print(targetTemp);

  lcd.print(" C   ");

  // Gestion du module Peltier et des LEDs en fonction de la température

  if (currentTemp < targetTemp) {

    digitalWrite(MOTOR_PIN, HIGH); // Active le module Peltier

    digitalWrite(LED_R_PIN, HIGH); // Allumer la LED rouge

    digitalWrite(LED_G_PIN, LOW);

    digitalWrite(LED_B_PIN, LOW);

    digitalWrite(BUZZER_PIN, LOW); // Ne pas activer le buzzer

  } else if (currentTemp > targetTemp) {

    digitalWrite(MOTOR_PIN, LOW); // Désactive le module Peltier

    digitalWrite(LED_R_PIN, LOW);

    digitalWrite(LED_G_PIN, LOW);

    digitalWrite(LED_B_PIN, HIGH); // Allumer la LED bleue (température dépassée)

    digitalWrite(BUZZER_PIN, LOW); // Ne pas activer le buzzer

  } else {

    digitalWrite(MOTOR_PIN, LOW); // Désactive le module Peltier

    digitalWrite(LED_R_PIN, LOW);

    digitalWrite(LED_G_PIN, HIGH); // Allumer la LED verte (température atteinte)

    digitalWrite(LED_B_PIN, LOW);

    digitalWrite(BUZZER_PIN, HIGH); // Activer le buzzer

    delay(1000); // Sonner une seconde

    digitalWrite(BUZZER_PIN, LOW); // Éteindre le buzzer

  }

  delay(500); // Pause pour stabiliser les lectures et les réactions

}


Journal de Bord

Lundi 7 octobre 2024

  • Attribution du projet de régulation de la température dans une cuve.

  • Réflexion sur la méthode de régulation à utiliser et prise de contact avec le groupe pour organiser la première réunion.

Vendredi 11 octobre 2024

  • Première réunion entre les membres de l’équipe.

  • Comparaison et validation de la liste finale de matériel.

Jeudi 17 octobre 2024

  • Rendez-vous avec la tutrice pour validation de la liste.

  • Récupération du matériel.

  • Commande du module de Peltier (prévue pour mi-novembre).

  • Prochaine étape : Simulation sur Tinkercad.

Dimanche 3 novembre 2024

  • Deuxième réunion entre les membres de l’équipe.

  • Comparaison des simulations réalisées sur Tinkercad.

  • Demande d’avis au tuteur sur le montage et le code.

Lorsque nous avons présenté notre simulation à notre tuteur, nous lui avons expliqué que nous rencontrions un problème avec les boutons poussoirs qui ne semblaient pas fonctionner. Nous lui avons demandé des remarques et suggestions pour nous aider à avancer. En réponse, il nous a précisé que les boutons fonctionnaient correctement. Lorsqu’on appuie sur le bouton, la tension passe bien de 4,17 V à 0 V. Cependant, il a souligné que le problème venait des fonctions « delay » et du temps de simulation non réel. Il est nécessaire de maintenir le bouton enfoncé pendant environ 3 à 4 secondes pour que l’incrément de température soit pris en compte. 

Une image contenant texte, Appareils électroniques, Ingénierie électronique, diagramme

Description générée automatiquement


Figure 2 : 




Jeudi 7 novembre 2024

Récupération du matériel manquant :

Module de Peltier

 


Une image contenant Appareils électroniques, câble, fils électriques, Ingénierie électronique


Module de Peltier

Transistor MOS

Breadboard

Pâte thermique

Écran LCD   


Jeudi 21 novembre 2024

  • Première réunion au FabLab.

  • Mise en place du montage.

  • Problème de port identifié.