Skip to main content

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

Informations

Cursus : Master 2 Chimie - Parcours : Ingénierie Chimique

 

Membres du groupe :

  • 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).

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

Période : Octobre 2024 - Janvier 2025

Contexte

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.

Mode opératoire

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

  • L'utilisateur défini une température à atteindre dans la cuve ;cuve.
  • Le module Peltier va chauffer l'eau contenue dans la cuve à une température souhaitée ;e.
  • Une sonde de température étanche mesurera la température dans la cuve ;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 ;eau.
  • On arrêt l'opération lors qu'on atteindre la température désirée (consigne définie par un utilisateur).

Matériels utilisés

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

Structure de support

1

Bécher

1

Petits réservoirs

2

Tuyaux de raccordement

2

Pompes

1

Sonde de température étanche

1

Élément Peltier

1

Carte Arduino UNO

1

Breadboard

1

Transistor TIP 122

 1

Résistances

1

Câble USB

1

Module d’affichage LED

1

Fils de connexion

~ 20

Multimètre

1

Câbles d'alimentation externe de 12V

1

    Étapes de conception

    • Étape 01 : Conception et préparation

    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.

    • Étape 02 : Modélisation sous Tinkercard

    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 :

    1.  Création des composants

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

    2.  Assemblage virtuel

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

    3.  Simulation des connexions électroniques

      • 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.

    4.  Optimisation et validation

      • 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.
    • Étape 03 : Montage et assemblage

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

    • Étape 04 : Programmation, test et validation

    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éaliser en parallèle.

    Journal du bord

    • Date XX/XX/XX14/10/2024
        • Choix du projet.
        • Création de la page Wiki FablabSU de ce 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 au responsable.
    • Date 04/11/2024

     

    • Date XX/XX/XX20/12/2024

       

    • Date XX/XX/XX

    • Date XX/XX/XX16/01/2025

    Récupération du support ainsi que de matériel manquant

     

     

    • 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

    • 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

    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.

     

     

    • Date 27/01/2025

     

     

    • Date 30/01/2025

     

     

    Le code final est donc le suivant : 

    #include <OneWire.h>
    #include <DallasTemperature.h>
    
    const int phMeterPin = A0;  // Broche analogique pour le pHmetre
    const int acidValveRelayPin = 8;  // Broche pour le relais de l'électrovanne d'acide
    const int baseValveRelayPin = 9;  // Broche pour le relais de l'électrovanne de base
    
    const int tempSensorPin = 2;  // Broche pour le capteur de température DS18B20
    const int heatingElementPin = 3;  // Broche pour la cartouche chauffante
    const int tempThreshold = 25;  // Température cible
    
    OneWire oneWire(tempSensorPin);
    DallasTemperature sensors(&oneWire);
    
    void setup() {
      Serial.begin(9600);
      pinMode(acidValveRelayPin, OUTPUT);
      pinMode(baseValveRelayPin, OUTPUT);
      pinMode(heatingElementPin, OUTPUT);
    }
    
    void loop() {
      // Mesure du pH
      float pHValue = analogRead(phMeterPin) * 0.0049;  // Conversion en pH (ajuster selon le capteur utilisé)
      
      // Régulation du pH
      if (pHValue > 7.0) {
        digitalWrite(acidValveRelayPin, HIGH);  // Ouvrir l'électrovanne d'acide
        digitalWrite(baseValveRelayPin, LOW);   // Fermer l'électrovanne de base
      } else if (pHValue < 6.5) {
        digitalWrite(acidValveRelayPin, LOW);   // Fermer l'électrovanne d'acide
        digitalWrite(baseValveRelayPin, HIGH);  // Ouvrir l'électrovanne de base
      } else {
        digitalWrite(acidValveRelayPin, LOW);   // Fermer l'électrovanne d'acide
        digitalWrite(baseValveRelayPin, LOW);   // Fermer l'électrovanne de base
      }
    
      // Mesure de la température
      sensors.requestTemperatures();
      float tempValue = sensors.getTempCByIndex(0);
    
      // Régulation de la température
      if (tempValue < tempThreshold) {
        digitalWrite(heatingElementPin, HIGH);  // Allumer la cartouche chauffante
      } else {
        digitalWrite(heatingElementPin, LOW);   // Éteindre la cartouche chauffante
      }
    
      // Affichage des valeurs
      Serial.print("pH: ");
      Serial.print(pHValue);
      Serial.print(" | Température: ");
      Serial.print(tempValue);
      Serial.println(" °C");
    
      delay(1000);  // Attendre 1 seconde entre chaque itération
    }

    Conclusion

    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.