# Régulation de température d'une cuve (Groupe G)

#### <span style="color: rgb(53, 152, 219);">**Informations**</span>

<div aria-label="Options de section de page" class="pointer-container" id="bkmrk-%C2%A0" refs="pointer@pointer" tabindex="-1"><div class="pointer flex-container-row items-center justify-space-between p-s anim "><div class="flex-container-row items-center gap-s" refs="pointer@mode-section"><button class="text-button icon px-xs" title="Mode Lien Permanent, Cliquer pour afficher la balise d'inclusion"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="input-group"> <button class="button outline icon" title="Copier le lien" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div></div></div></div><span style="text-decoration: underline;">**Membres du groupe :**</span>

- Nassim TIZI OUKDAL (*nassim.tizi\_oukdal@etu.sorbonne-universite.fr*) ;
- Maria BELHADEF (*maria.belhadef@etu.sorbonne-universite.fr*) ;
- Rayane OUBAZIZ (*rayane.oubaziz@etu.sorbonne-universite.fr*) ;
- Yanis Zakaria LAKEHAL (*yanis.zakaria.lakehal@etu.sorbonne-universite.fr*).

<span style="text-decoration: underline;">**Cursus :**</span> **Master 2 Chimie - Parcours : Ingénierie Chimique**

<span style="text-decoration: underline;">**Tuteur :**</span> PULPYTEL Jerome (*jerome.pulpytel@sorbonne-universite.fr*)

**<span style="text-decoration: underline;">Période :</span>** Octobre 2024 - Janvier 2025

#### <span style="color: rgb(53, 152, 219);">**Contexte**</span>

Le présent projet s'inscrit dans le cadre de l'UE803 Optimisation et Contrôle des Procédés, il consiste à la régulation et l'automatisation d'un système de contrôle de la température d'une cuve de liquide en utilisant une carte Arduino avec le matériel et le code nécessaire au fonctionnement du système.

#### <span style="color: rgb(53, 152, 219);">**Mode opératoire**</span>

Le projet consiste à contrôler la température d'une cuve de liquide.

- L'utilisateur défini une température à atteindre dans la cuve.
- Le module Peltier va chauffer l'eau contenue dans la cuve à une température souhaitée.
- Une sonde de température étanche mesurera la température dans la cuve.
- Récupérer l'eau chaude en utilisant une pompe et on le renverser dans la cuve afin d'uniformiser la température de l'eau.
- On arrêt l'opération lors qu'on atteindre la température désirée (consigne définie par un utilisateur).

#### <span style="color: rgb(53, 152, 219);">**Matériels utilisés**</span>

La liste des composants essentiels pour notre configuration comprend les éléments suivants :

<table border="1" id="bkmrk-structure-de-support" style="border-collapse: collapse; width: 70.8642%; height: 540.859px;"><colgroup><col style="width: 77.825%;"></col><col style="width: 22.175%;"></col></colgroup><tbody><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Structure de support

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Bécher

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Petits réservoirs

</td><td class="align-center" style="height: 35.3906px;">2

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Tuyaux de raccordement

</td><td class="align-center" style="height: 35.3906px;">2

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Pompes

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Sonde de température étanche

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Élément Peltier

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Carte Arduino UNO

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Breadboard

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 10px;"><td class="align-center" style="height: 10px;">Transistor TIP 122

</td><td class="align-center" style="height: 10px;"> 1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Résistances

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Câble USB

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Module d’affichage LED

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Fils de connexion

</td><td class="align-center" style="height: 35.3906px;">~ 20

</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">Câbles d'alimentation externe de 12V

</td><td class="align-center" style="height: 35.3906px;">1

</td></tr></tbody></table>


#### <span style="color: rgb(53, 152, 219);">**Étapes de conception**</span>

- ##### <span style="color: rgb(35, 111, 161);">**Étape 01 : Conception et préparation**</span>

La première étape consiste à bien cerner le sujet et à établir une liste complète des composants indispensables. Elle inclut aussi l'organisation des tâches au sein de l'équipe, en assignant à chaque membre des responsabilités définies.

- ##### <span style="color: rgb(35, 111, 161);">**Étape 02 : Modélisation sous Tinkercard**</span>

Dans l'étape de modélisation sous Tinkercad, l'objectif est de concevoir une représentation du système et d'anticiper d’éventuels problèmes et d’optimiser la conception avant de passer à l’assemblage physique.

Cette étape permet de réaliser les principales actions suivantes :

*<span style="text-decoration: underline;"><span style="color: rgb(126, 140, 141);">**1. Création des composants**</span></span>*

- - *Modéliser les éléments clés du système.*
    - *Importer des modèles existants si disponibles.*

*<span style="text-decoration: underline;"><span style="color: rgb(126, 140, 141);">**2. Assemblage virtuel**</span></span>*

- - *Positionner les composants pour simuler leur disposition réelle.*
    - *Vérifier l'agencement des composants.*

*<span style="text-decoration: underline;"><span style="color: rgb(126, 140, 141);">**3. Simulation des connexions électroniques**</span></span>*

- - *Concevoir le schéma des connexions entre capteurs, régulateurs, microcontrôleur, etc.*
    - *Tester le fonctionnement théorique des circuits avant l'assemblage réel.*

*<span style="text-decoration: underline;"><span style="color: rgb(126, 140, 141);">**4. Optimisation et validation**</span></span>*

- - *Ajuster les dimensions et la disposition des composants pour éviter les erreurs de fabrication.*
    - *Vérifier que tous les éléments s’emboîtent correctement.*

- ##### <span style="color: rgb(35, 111, 161);">**Étape 03 : Montage et assemblage**</span>

La troisième étape comprend la réception du matériel et l’assemblage des composants selon le prototype établi durant l'étape 3.

- ##### <span style="color: rgb(35, 111, 161);">**Étape 04 : Programmation, test et validation**</span>

La dernière étape concerne le développement du code pour l’Arduino UNO, qui gère le module Peltier et assure la régulation thermique de la cuve et de faire des tests afin d'assurer le bon fonctionnement du système.

*Les deux étapes 03 et 04 sont réalisées en parallèle.*

#### <span style="color: rgb(53, 152, 219);">**Journal du bord**</span>

- ---
    
    **Date 14/10/2024**
    - - Choix du projet.
        - Création de la page Wiki FablabSU du projet.
        - Réflexion sur le schéma de principe de fonctionnement de système à réaliser.
        - Préparation de la liste de matériel préliminaire et l'envoyée à notre tutrice.

- ---
    
    **Date 04/11/2024**

Récupération d'une première partie du matériel.

Début de la simulation du système partie par partie sur Tinkercard pour tester le concept avant la mise en œuvre physique.

- ---
    
    **Date 20/12/2024**

Nous avons pris l'initiative d'utiliser la machine de découpe laser pour réaliser certaines pièces nécessaires à notre projet. Notamment, la découpe de quelques planches en bois et de gravé sur l'une d'eux.

Récupération du matériel manquant notamment l'élément pelteir, un module d'affichage LED et une Breadboard plus grande ainsi que des LED de plusieurs couleurs.

Compléter la simulation du système sur Tinkercard sans inclure l'élément peltier et inclure dans sa place un moteur électrique.

[![Simulation Tinkercard.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/scaled-1680-/simulation-tinkercard.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/simulation-tinkercard.png)

[![Cartes de circuits.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/scaled-1680-/cartes-de-circuits.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/cartes-de-circuits.png)

- ---
    
    **Date 16/01/2025**

Nous avons récupéré le matériel manquant, notamment le support, afin de poursuivre l'assemblage et d'assurer le bon fonctionnement du système.

- ---
    
    **Date 17/01/2025**

Lors de cette séance, nous avons testé le fonctionnement de l'élément Peltier, en nous concentrant sur le contrôle de la température en fonction de la consigne donnée.

![20250117_175835.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-01/scaled-1680-/20250117-175835.jpg)

- ---
    
    **Date 24/01/2025**

Lors de cette séance, nous avons testé le fonctionnement des électrovannes ainsi que de l'agitateur, en mettant l'accent sur le contrôle de la température en fonction de la consigne définie.

Nous avons identifié certains problèmes liés au branchement des électrovannes avec les relais.

[![20250124_182806.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-01/scaled-1680-/20250124-182806.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-01/20250124-182806.jpg)

Demande d'avis et de l'aide au tuteur sur ce montage et le code.

En suivant les recommandations de notre tuteur, nous avons décidé de remplacer les électrovannes et l'agitateur par une pompe, afin d'assurer une meilleure homogénéisation de la température de l'eau.

Plusieurs problèmes ont été rencontrés lors de cette séance lors du montage :

- - Le module peltier ne fonctionne plus. Pour vérifier si le problème venait du branchement, nous avons testé d'abord avec le voltage aux bornes d'alimentation 12V à l'aide d'un multimètre, et celui-ci a indiqué correctement le voltage. Nous avons tasté par la suite le branchement avec un autre module peltier et celui-là a fonctionné correctement. Nous avons conclus que le module peltier était défectueux. nous avons acheté un autre.
    - Le transistor ne fonctionne plus, nous l'avons donc remplacé par un autre.

- ---
    
    **Date 27 et 30 /01/2025**

Au cours de ces deux séances, nous avons finalisé la conception et le montage du matériel en intégrant les modifications apportées à notre conception initiale.

Nous avons aussi réalisé plusieurs tests pour vérifier que le système fonctionne comme prévu.

<video controls="controls" height="397" style="width: 806px; height: 397px;" width="806"> <source src="https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1249"></source></video>

##### *<span style="text-decoration: underline;"><span style="color: rgb(35, 111, 161);">**Le code final est donc le suivant :**</span></span>*

```c++
#include <OneWire.h>                // Pour la communication avec le capteur DS18B20
#include <DallasTemperature.h>      // Pour lire la température du capteur DS18B20
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define ONE_WIRE_BUS A0             // Broche pour le capteur DS18B20
#define MOTOR_PIN 13                // Broche pour contrôler le module Peltier
#define PUMP_PIN 10                 // Broche pour contrôler la pompe
LiquidCrystal_I2C lcd(0x3e, 16, 2); 
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

int targetTemp = 24;                // Température cible initiale
float currentTemp;

void setup() {
 lcd.init();                        // Initialize the LCD
  lcd.backlight();
  sensors.begin();
  Serial.begin(9600);               // Initialisation de la communication série
  sensors.begin();                  // Initialisation du capteur DS18B20
  pinMode(MOTOR_PIN, OUTPUT);       // Définir la broche du module Peltier comme sortie
  pinMode(PUMP_PIN, OUTPUT);        // Définir la broche de la pompe comme sortie
  digitalWrite(MOTOR_PIN, LOW);     // Désactiver le module Peltier au démarrage
  digitalWrite(PUMP_PIN, LOW);      // Désactiver la pompe au démarrage
}

void loop() {
  sensors.requestTemperatures();    // Demande de mise à jour de la température
  currentTemp = sensors.getTempCByIndex(0); // Obtenir la température en Celsius

  Serial.print("currentTemp: ");   // Afficher la température actuelle
  Serial.println(currentTemp);     // Afficher la température
lcd.setCursor(0, 0);
  lcd.print("La temperature est : ");  
  lcd.print("currentTemp");  
  lcd.setCursor(0, 1);
  
// Contrôler le module Peltier
  if (currentTemp < 24) {
    digitalWrite(MOTOR_PIN, HIGH);  // Active le module Peltier
    Serial.println("Module Peltier activé.");
  } else {
    digitalWrite(MOTOR_PIN, LOW);  // Désactive le module Peltier
    Serial.println("Module Peltier désactivé.");
  }

  // Contrôler la pompe
  if (currentTemp < 24) {
    digitalWrite(PUMP_PIN, HIGH);  // Active la pompe
    Serial.println("Pompe activée.");
  } else {
    digitalWrite(PUMP_PIN, LOW);   // Désactive la pompe
    Serial.println("Pompe désactivée.");
  }

  delay(1000);                     // Attendre 1 seconde avant de refaire la lecture
}
```

#### <span style="color: rgb(53, 152, 219);">**Conclusion**</span>

Ce projet nous a permis de concrétiser nos connaissances théoriques en les transformant en une application pratique fonctionnelle. Malgré les défis rencontrés, tels que le remplacement imprévu du module Peltier et des électrovannes par une pompe, nous avons su faire preuve de flexibilité et de rigueur pour surmonter les obstacles.

Le système final répond aux objectifs définis, assurant un contrôle optimal de la température grâce à l'Arduino et aux composants associés. Ce projet a renforcé nos compétences en électronique, programmation et gestion de projet, constituant ainsi une étape clé de notre apprentissage et ouvrant la voie à de futures améliorations.

![WhatsApp Image 2025-02-01 à 22.05.13_1c9be9f3.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-02/scaled-1680-/whatsapp-image-2025-02-01-a-22-05-13-1c9be9f3.jpg)