Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Conteneur à température contrôlée pour le transport d'échantillons

Composants et fournitures

Capteur de température PT 100
× 1
Arduino UNO
× 1
Batterie lithium-ion
10400 mAh
× 1
Boîte en polystyrène
Recyclé à partir de la livraison conventionnelle d'échantillons/produits chimiques
× 1
Blocs de cuivre
Deux blocs de cuivre env. 80x50x10mm, à usiner pour dissipateur thermique et fixation Peltier, avec trous pour caloducs.
× 1
Module de carte d'alimentation Boost réglable ULS
× 1
Refroidisseur de caloduc
× 1
Potentiomètre numérique
× 1
Gel Magique
Pour améliorer le transfert de chaleur, nous pourrions insérer des tiges métalliques entre les échantillons
× 1
Convertisseur CC
× 1
Module Peltier
× 1
Condensateur 3.3 uF
× 1
Tuyaux de chaleur
× 1
Alimentation pour secteur
× 1
Répartiteur CC pour alimentation
× 1
Écran LCD Adafruit Adafruit
× 1
Tapis chauffant
Pour chauffer des échantillons
× 1
Borne
× 1
Boîtier en plastique
× 1
Fiche CC à montage sur panneau
× 1
Interrupteur quadripolaire double jet
× 1
Interrupteur unipolaire bidirectionnel
× 1
Boîtier en plastique
Boîtier en plastique externe pour l'électronique
× 1
Connecteur bornier, 3 voies
× 1
Connecteur bornier, 5 voies
× 1
Ruban velcro DualLock
× 1
Adafruit Proto-vis shield
Pour des connexions de fil de borne à vis plus fermes à Arduino
× 1
Chargeur de batterie USB lithium-ion Adafruit
× 1
Amplificateur de capteur de température Adafruit PT100
× 1

Outils et machines nécessaires

Fer à souder (générique)
Dremel 4000
Étau
Perceuse
Outil de dénudage de câbles, pinces, coupeuses
Fraise manuelle
Pour l'usinage de pièces en cuivre

Applications et services en ligne

GitHub
Nous avons utilisé la bibliothèque sleemanj pour le potentiomètre numérique MCP41100 (merci sleemanj !). Nous avons également utilisé les bibliothèques d'Adafruit pour chacun des modules Adafruit que nous avons utilisés ; ceux-ci sont disponibles sur la page du produit.
Arduino IDE

À propos de ce projet

Mr ThermoParcel :Conteneur à température contrôlée pour le transport d'échantillons

L'objectif de est de développer un conteneur à température contrôlée qui peut être utilisé pour transporter en toute sécurité des échantillons sensibles avec un service postal conventionnel. Notre prototype d'appareil, appelé Mr ThermoParcel, fonctionne dans une plage de températures de 4 à 37 °C et peut être alimenté par un adaptateur secteur, une batterie interne ou d'autres sources 12 V telles qu'un allume-cigare de voiture ou un chargeur d'ordinateur portable.

La genèse de notre projet

Notre idée provient d'un problème réel auquel nous avons été confrontés dans nos recherches universitaires :l'échange sécurisé d'échantillons biologiques thermosensibles avec des collaborateurs. Viola travaille sur la maladie du paludisme, et il est souvent nécessaire d'envoyer ou de recevoir des échantillons de sang. Cependant, si les échantillons ne sont pas conservés à la bonne température pendant le stockage et le transport, ils peuvent facilement se dégrader et devenir inutiles. C'est d'autant plus frustrant lorsque les échantillons contiennent des types de sang précieux qui ont une réponse particulière au paludisme et proviennent de patients rares.

La méthode courante pour envoyer des échantillons de sang de ce type consiste à les congeler complètement avant l'expédition, à utiliser un service de messagerie standard pour les produits surgelés, puis à les décongeler soigneusement après la livraison. En plus d'être encore coûteux, un tel système est loin d'être idéal, car la congélation/dégivrage altère ou endommage toujours des parties des échantillons, et le processus de dégivrage lui-même suit un protocole spécifique qui nécessite des produits chimiques supplémentaires. De plus, les articles sont souvent livrés à l'université au dépôt de colis du campus, où des conditions de stockage inappropriées et des retards de notification de livraison sont des causes fréquentes de dégradation des échantillons.

Conception graphique

Nous avons intégré un système de contrôle de température dans un conteneur en polystyrène conventionnel de la taille d'un petit colis, réutilisé à partir d'une livraison de produits chimiques. Nous l'avons optimisé et testé avec des échantillons de sang, mais le même système pourrait être utilisé pour une vaste gamme d'autres matériaux biologiques tels que des cellules, des milieux de culture, des produits chimiques sensibles à la température, des émulsions et des enzymes, ou même adapté aux éléments solides.

Le concept du système est illustré dans la Figure 1 . Le refroidissement est réalisé avec un module Peltier, avec le côté froid attaché à une petite boîte à échantillons à l'intérieur du conteneur en polystyrène, et le côté chaud connecté à un dissipateur thermique externe. Le chauffage est effectué avec un tapis chauffant placé à l'intérieur de la boîte à échantillons. La température est constamment surveillée à l'aide d'un capteur en contact avec les échantillons, et l'intensité de chauffage/refroidissement est régulée par un contrôleur Arduino.

Mise en œuvre

Matériel de conteneur conception

Le conteneur externe est une boîte en polystyrène de dimensions 250x250x250 mm et d'une épaisseur de paroi de 45 mm sur tous les côtés, qui est un type de boîte couramment utilisé dans les livraisons en laboratoire avec les services postaux standard. Un boîtier en plastique (125x70x40mm) est placé à l'intérieur et contient deux tubes à centrifuger de 50 ml. Ces tubes servent d'emballage secondaire selon la réglementation des Substances Biologiques et Infectieuses, Catégorie B UN3373 (lien : http://www.un3373.com/info/regulations/ ). Les échantillons primaires sont six tubes Eppendorf de 2 ml contenant des échantillons, séparés par un tissu absorbant pour éviter toute fuite. Mr ThermoParcel est capable de stocker jusqu'à 50 ml d'échantillons liquides en remplaçant les emballages secondaires durs par des sachets souples pouvant contenir une plus grande quantité d'échantillons, par ex. jusqu'à trois ou quatre tubes de 15 ml (lien :https://www.alphalabs.co.uk/laboratory-products/consumables/sample-handling/sample-transport/95kpa-pouches ). Pour améliorer l'uniformité du chauffage/refroidissement à l'intérieur du boîtier interne et assurer le contact thermique entre la feuille de cuivre, les échantillons et le capteur de température, nous avons versé un gel à prise solide et isolant électriquement autour des échantillons. La boîte intérieure contenant des échantillons est illustrée dans la Figure 2 .

Système de refroidissement et de chauffage

La température interne est surveillée à l'aide d'un thermomètre à résistance Pt 100Ohm (ou détecteur de température à résistance, RTD) placé en contact avec les échantillons, et contrôlée avec un système PID utilisant un module Peltier (refroidissement) ou un tapis chauffant (chauffage). Afin de dissiper à l'extérieur du boîtier la chaleur du Peltier, le côté chaud du module Peltier est mis en contact thermique avec une pièce externe en cuivre et un radiateur (refroidisseur CPU) via trois caloducs en cuivre. Le côté froid est attaché à une fine feuille de cuivre qui traverse la boîte, refroidissant uniformément les échantillons. Les détails du couplage thermique sont présentés dans la Figure 3 .

Le tapis chauffant est placé à l'intérieur de l'enceinte intérieure en contact avec le capteur de température et les échantillons.

Electronique &câblage

Régulation de froid et de chauffage

Le module Peltier utilisé par Mr ThermoParcel est conçu pour 3,9 A et 7,6 V à une puissance de refroidissement maximale. Pour contrôler efficacement la température, la quantité d'énergie fournie au module Peltier est gérée électroniquement à l'aide du régulateur à découpage réglable abaisseur PTN78020W. Le régulateur accepte une tension d'entrée dans la plage 7-36V et produit une sortie dans la plage 2,5-12,6V, avec la limitation que la sortie ne peut pas dépasser l'entrée moins 2V. La tension de sortie est ajustée en réglant une certaine valeur de résistance entre deux broches de régulation, selon le tableau de la fiche technique de l'appareil. Mr ThermoParcel utilise le potentiomètre numérique MCP41100 100kOhm, contrôlé par Arduino, pour réguler électroniquement la tension de sortie en fonction de la lecture de la température. Étant donné que toute la plage de tension de sortie du PTN78020W nécessite une variation de tension supérieure à 1 MOhm, une tension est appliquée au module Peltier même lorsque le potentiomètre numérique est réglé sur 100 kOhm, de sorte que le module Peltier ne peut pas être "éteint" à l'aide le potentiomètre numérique seul. Le même concept de régulation s'applique au chauffage réalisé avec le tapis chauffant. Le tapis est simplement une résistance qui dissipe le courant sous forme de chaleur, et la régulation de la tension est un moyen direct de contrôler la puissance délivrée.

Alimentation

Une alimentation 12V DC est utilisée pour alimenter directement le PTN78020W lorsque Mr ThermoParcel est à proximité d'une prise secteur. Cela permet une sortie jusqu'à 10 V, ce qui est suffisant pour entraîner le Peltier à une puissance maximale, et le tapis chauffant à une puissance suffisante pour les besoins du projet. Compte tenu de la plage d'entrée 7-36V du régulateur PTN78020W, Mr ThermoParcel peut également être alimenté avec la plupart des alimentations CC utilisées pour les ordinateurs portables et autres appareils électroniques, ainsi qu'avec les prises allume-cigare trouvées dans les voitures. Lorsque l'alimentation externe n'est pas disponible, Mr ThermoParcel est alimenté par une batterie Li-ion de 3,7 V, 10 400 mAh. La batterie alimente toujours le régulateur PTN78020W, mais pour atteindre la tension d'entrée requise pour piloter le module Peltier (10-12V à l'entrée PTN78020W), le convertisseur DC-DC élévateur XL6019 est d'abord connecté à la sortie de la batterie.

Câblage Arduino

L'alimentation est fournie à Arduino directement à partir de l'entrée externe 12V si disponible, via la prise jack sur la carte. Si vous utilisez la batterie interne, une tension similaire est réglée sur la prise en utilisant la sortie du convertisseur XL6019.

Arduino régule la puissance délivrée au module Peltier/tapis chauffant en contrôlant la résistance du potentiomètre numérique. Le câblage est effectué selon les instructions de la bibliothèque de la série MCP41 de sleemanj, avec le potentiomètre en configuration de résistance variable. Arduino est également connecté à l'amplificateur Adafruit MAX31865 Pt100 RTD, utilisé pour lire le capteur de température, et au Adafruit RGB LCD Shield, utilisé pour afficher les données de température et le fonctionnement du système. Ceux-ci sont tous deux câblés conformément à la documentation complète d'Adafruit trouvée sur les pages des produits.

Logiciel

Tous les modules Adafruit connectés à Arduino fonctionnent avec leurs bibliothèques respectives et le potentiomètre numérique avec la bibliothèque de la série MCP41 de sleemanj. Les fonctionnalités de base du code Arduino dans Mr ThermoParcel sont liées au contrôle de la température, qui est mis en œuvre avec un système en boucle fermée PID. Le point de consigne de température est fourni par l'utilisateur via les boutons de protection de l'écran LCD. Chaque lecture de température mesurée est ensuite utilisée pour obtenir l'écart par rapport au point de consigne, et ainsi calculer la valeur PID qui est transmise au potentiomètre numérique pour réguler la puissance de refroidissement/chauffage. Un interrupteur à bascule physique externe détermine si la puissance de sortie est dirigée vers le module Peltier (refroidissement) ou le tapis chauffant (chauffage). Puisqu'il n'y a pas de commutateurs électroniques dans le système, une distinction est faite entre un mode de chauffage et un mode de refroidissement, et l'utilisateur doit sélectionner le mode approprié à l'aide des boutons de l'écran LCD. Cette distinction garantit que la valeur PID calculée a le bon signe. Au cours de nos tests, nous avons essayé une gamme de valeurs pour les facteurs PID et observé que le terme P seul était suffisant dans la plupart des situations pour rester à ±0,5 °C du point de consigne, nous avons donc finalement supprimé les facteurs I et D. Cela est probablement dû à la capacité thermique relativement importante des échantillons et de la boîte interne remplie de gel, qui ralentissent les changements de température (généralement une moyenne de 0,02 °C/s dans les régimes les plus rapides).

Performances

Lorsqu'il est alimenté sur secteur, Mr ThermoParcel refroidit à 4°C en partant d'une température ambiante de 21-23°C en 1h environ. Une température de 8-10°C est atteinte dans les 20 premières minutes. En repartant de la température ambiante et en utilisant le tapis chauffant, les 37°C sont atteints en 10 minutes environ. Toutes les températures sont maintenues au point de consigne à ±0,5°C.

Lorsqu'il est alimenté par la batterie interne uniquement, environ 10°C est la température minimale pouvant être atteinte, en un temps de 1,5 à 2h. Avec le tapis chauffant, 37°C peuvent encore être obtenus mais en 40-60 minutes. Ces limitations sont dues au taux de décharge de la batterie :la batterie Li-ion de Mr ThermoParcel est conçue pour un courant de décharge maximal de 7 A à 3,7 V, mais étant donné la conversion ascendante à 10-12 V, le courant de décharge devrait être plus élevé. pour maintenir la puissance maximale du module Peltier. Étant donné que la batterie contient des circuits d'autoprotection qui coupent sa sortie en cas de surcharge de courant, le système ne peut pas fonctionner si le système de refroidissement/chauffage tente de tirer un courant supérieur à la valeur nominale maximale. Lors du fonctionnement via la batterie, la consommation électrique est limitée par le logiciel à un niveau sûr. Cette limitation est purement due à la batterie utilisée ici, et les batteries avec un taux de décharge plus élevé sont largement disponibles. Alternativement, une batterie Li-ion avec 3 cellules en série et une tension nominale de 11,1 V résoudrait le problème et éliminerait également le besoin d'un convertisseur DC élévateur.

Orientations futures

Dans sa phase de développement actuelle, notre appareil ne peut pas être expédié, principalement en raison de la taille et des pièces mobiles du refroidisseur de processeur, et de la robustesse de la construction. Cependant, une fois que le dissipateur thermique est remplacé par un système de refroidissement passif et qu'un emballage secondaire de 95 kPa est utilisé, Mr ThermoParcel peut être placé dans un conteneur rigide approprié pour un transport sûr, répondant à toutes les exigences des coursiers standard pour l'expédition d'échantillons par avion et tous autres moyens de transport.

Dans le but essentiel d'atteindre, d'autres composants pourraient être ajoutés pour étendre les fonctionnalités de l'appareil. Le profil de température pendant le transport peut être stocké dans une mémoire locale pour une vérification ultérieure, ou envoyé directement à l'utilisateur par SMS à intervalles réguliers à l'aide d'un module GSM Arduino. Un récepteur GPS pourrait également être inclus pour un suivi indépendant des colis et une collecte rapide à la livraison.

Code

  • PID_LCD_controller_v03
PID_LCD_controller_v03Arduino
Code Arduino pour se connecter aux modules utilisés par M. ThermoParcel, exécuter le contrôleur PID, afficher les informations sur l'écran LCD et recevoir les entrées de l'utilisateur.
#include  // importer la bibliothèque de capteurs de température PT100#include  // importer la bibliothèque de potentiomètres numériques#include  // importer la bibliothèque de boucliers d'écran LCD et de boutons#include  // importer la bibliothèque d'extension I2C#include // Configuration potentiomètre numériqueMCP41_Simple potentiomètre numérique ; // créer un potentiomètre numérique objectconst uint8_t digitalPotentiometer_CS =10 ;// Configuration du capteur de température PT100// Utiliser le logiciel SPI pour le capteur de température PT100 :CS, DI, DO, CLKAdafruit_MAX31865 PT100amplifier =Adafruit_MAX31865(2, 3, 4, 5);// Définir la valeur de la résistance Rref. Utilisez 430.0 pour le capteur de température PT100.#define RREF 430.0// Résistance nominale 0-degrés-C du capteur, 100.0ohm pour PT100#define RNOMINAL 100.0// Configuration de l'écran LCD avec les boutonsAdafruit_RGBLCDShield LCD_shield =Adafruit_RGBLCDShield();//# define OFF 0x0 // Les états ON et OFF peuvent être utilisés pour allumer/éteindre le rétroéclairage LCD//#define ON 0x1void setup() { Serial.begin(115200); Serial.println("Monsieur ThermoParcel, démarrage de l'opération..."); PT100amplifier.begin(MAX31865_4WIRE); // régler sur 2WIRE ou 4WIRE si nécessaire, RTD 4 fils dans ce cas // Initialiser le potentiomètre numérique digitalPotentiometer.begin(digitalPotentiometer_CS); // Placer l'essuie-glace à un point arbitraire entre 0 et 255 digitalPotentiometer.setWiper( 200 ); // Initialise le bouclier d'affichage LCD // configure le nombre de colonnes et de lignes de l'écran LCD :LCD_shield.begin(16, 2); // configurer le point de consigne et le texte T mesuré sur l'écran LCD avec les espacements corrects LCD_shield.print("Tsetpoint:C"); LCD_shield.setCursor(0, 1); LCD_shield.print("Tsample:C");} // Initialiser les constantes PID, les variables liées à la température et la valeur du bouton de protection int powerMode =1; // powerMode=1 pour l'alimentation par batterie, powerMode=-1 pour l'alimentation secteur ; utilisé pour empêcher la surcharge de la batterie en mode de fonctionnement =1 ; // operationMode=1 pour le refroidissement, operationMode=-1 pour le chauffage ; utilisé pour corriger le signe des termes PIDfloat PT100ratio ; // Définir la variable de rapport de résistance pour les boutons PT100 sensoruint8_tPressed =0; float kp =500.0; //; int ki =5; int kd =3.9;float PID_p =0.0; // entier PID_i =0; int PID_d =0;float Tmesuré =-1,0;float Tsetpoint =22,0; // Commencer autour de la température ambiantefloat PID_error =5;float PID_value =0;// Définir la fonction print_Tsetpoint pour imprimer correctement la consigne de température sur l'écran LCDstatic char TsetpointString[3];void print_Tsetpoint(int T) { // Imprimer la consigne dans le bon place LCD_shield.setCursor(10, 0); dtostrf(T, 3, 0, TsetpointString); LCD_shield.print(TsetpointString);}// Définir la fonction print_Tmeasured pour imprimer correctement la température mesurée sur l'écran LCDstatic char TmeasuredString[4];void print_Tmeasured(float T) { // Imprimer Tmeasured au bon endroit LCD_shield.setCursor(8, 1); dtostrf(T, 5, 1, ChaîneTmesurée); LCD_shield.print(TmeasuredString);}// Définir la fonction print_powerMode pour imprimer correctement le mode d'alimentation (B, batterie; M, secteur)void print_powerMode() { LCD_shield.setCursor(15, 0); if (powerMode ==1) { LCD_shield.print("B"); } else if (powerMode ==-1) { LCD_shield.print("M"); }}// Définir la fonction print_operationMode pour imprimer correctement le mode d'alimentation (C, refroidisseur Peltier ; H, tapis chauffant) void print_operationMode() { LCD_shield.setCursor(15, 1); if (operationMode ==1) { LCD_shield.print("C"); } else if (operationMode ==-1) { LCD_shield.print("H"); }}// *** boucle principale ***boucle vide() { // Lecture de la température uint16_t rtd =PT100amplifier.readRTD(); rapport PT100 =rtd ; rapport PT100 /=32768 ; Tmesurée =PT100amplifier.temperature(RNOMINAL, RREF); Serial.print("Consigne Température ="); Serial.println(Tsetpoint); Serial.print("Température ="); Serial.println(Tmesuré); // Imprimer les valeurs et les modes de température print_Tsetpoint(Tsetpoint); print_Tmesuré(Tmesuré); print_powerMode(); print_operationMode(); // Calculer l'erreur entre la consigne et la valeur mesurée PID_error =Tmeasured - Tsetpoint; //Calculer la valeur P PID_p =operationMode * kp * PID_error; // Calculer la valeur PID totale, si au-dessus du maximum (255) garder à 255, si en dessous du minimum (0) garder à 0 PID_value =(int) PID_p; //+ PID_i + PID_d; Serial.print("PID_p ="); Serial.println(PID_p); Serial.print("powerMode ="); Serial.println(powerMode); Serial.print("operationMode ="); Serial.println(operationMode); Serial.print("PID_error ="); Serial.println(PID_error); Serial.print("PID_value ="); Serial.println(PID_value); // Si en mode batterie (powerMode=1) limite la sortie pour éviter la surcharge de la batterie // Si en mode secteur (powerMode=-1) autorise la pleine puissance (255) if (powerMode ==1) { if (PID_value <0) { valeur_PID =0 ; } si (PID_value> 120) { PID_value =120 ; } } else if (powerMode ==-1) { if (PID_value <0) { PID_value =0; } if (PID_value> 255) { PID_value =255 ; } } Serial.print("Valeur_PID ajustée ="); Serial.println(PID_value); // Définir la résistance du potentiomètre numérique à partir de la valeur PID digitalPotentiometer.setWiper(255 - PID_value); // Détecter tous les boutons enfoncés, modifier la valeur du point de consigne si nécessaire et afficher la valeur mesurée et le point de consigne T // Les appels de fonction delay() garantissent que suffisamment de temps est accordé pour appuyer sur les boutons et voir les valeurs changer delay(1000); buttonPressed =LCD_shield.readButtons(); if (buttonsPressed &BUTTON_SELECT) { // Mettez en surbrillance ce système en mode édition en faisant clignoter le curseur LCD_shield.setCursor(14, 0); LCD_shield.blink(); retard(1000); boutonsAppuyés =0 ; // Reste en mode édition jusqu'à ce que le bouton SELECT soit à nouveau enfoncé. Les boutons UP et DOWN modifient le point de consigne. // GAUCHE bascule le mode de fonctionnement (chauffage/refroidissement). À DROITE bascule le mode d'alimentation (batterie/secteur). while (not (buttonsPressed &BUTTON_SELECT)) {buttonsPressed =LCD_shield.readButtons(); if (boutons pressés &BUTTON_UP) { Tsetpoint +=1; } if (boutons pressés &BUTTON_DOWN) { Tsetpoint -=1; } if (boutons pressés &BUTTON_RIGHT) { powerMode *=-1; print_powerMode(); } if (boutons pressés &BUTTON_LEFT) { operationMode *=-1; print_operationMode(); } print_Tsetpoint(Tsetpoint); LCD_shield.setCursor(14, 0); retard (500); } // Quitte le mode édition et arrête le clignotement du curseur LCD_shield.noBlink(); boutonsAppuyés =0 ; } Serial.println();}

Schémas

Schéma de circuit avec tous les composants principaux de notre conteneur à température contrôlée. Schéma de câblage demandé par un autre utilisateur de la communauté. C'est celui que nous avons utilisé pour assembler le câblage, il est donc moche et n'a jamais été destiné à la publication ! Mais peut-être peut être utile. Câblage du potentiomètre à d'autres composants.

Processus de fabrication

  1. Ventilateur à température contrôlée
  2. DIY :surveillance et régulation de la température pour HomeBrew
  3. Mesure de la température pour les projets en laboratoire et scientifiques
  4. Meilleurs métaux pour conduire la chaleur
  5. Comment calculer la dissipation de chaleur pour les VFD
  6. Stratifiés PCB haute température
  7. Guide de température des PCB
  8. Traitement thermique des pièces moulées en aluminium
  9. Alliage 36 (Invar®) Alliage à expansion contrôlée