Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Recipiente com temperatura controlada para transporte de amostra

Componentes e suprimentos

Sensor de temperatura PT 100
× 1
Arduino UNO
× 1
Bateria de íon de lítio
10400 mAh
× 1
Caixa de poliestireno
Reciclado da entrega convencional de amostras / produtos químicos
× 1
Blocos de cobre
Dois blocos de cobre aprox. 80x50x10mm, para ser usinado para dissipador de calor e fixação Peltier, com orifícios para tubos de calor.
× 1
Módulo ULS de placa de fonte de alimentação de reforço ajustável
× 1
Heatpipe cooler
× 1
Potenciômetro digital
× 1
Magic Gel
Para melhorar a transferência de calor, poderíamos inserir hastes de metal entre as amostras
× 1
Conversor DC
× 1
Módulo Peltier
× 1
Capacitor 3,3 uF
× 1
Tubos de calor
× 1
Fonte de alimentação para rede elétrica
× 1
Divisor DC para fonte de alimentação
× 1
Tela LCD Adafruit Adafruit
× 1
Tapete do aquecedor
Para amostras de aquecimento
× 1
Bloco terminal
× 1
Caixa de plástico
× 1
Plugue DC de montagem em painel
× 1
Chave dupla de quatro pólos
× 1
Chave dupla de polo único
× 1
Caixa de plástico
Caixa de plástico externa para eletrônicos
× 1
Conector de bloco de terminal, 3 vias
× 1
Conector do bloco de terminais, 5 vias
× 1
Fita DualLock Hook and Loop
× 1
Adafruit Proto-screwshield
Para conexões de fio de terminal de parafuso mais firmes para Arduino
× 1
Carregador de bateria USB de íon de lítio Adafruit
× 1
Adafruit PT100 Amplificador do sensor de temperatura
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Dremel 4000
Vise
Drill
Ferramenta de decapagem de cabos, alicates, cortadores
Fresa manual
Para usinagem de peças de cobre

Aplicativos e serviços online

GitHub
Usamos a biblioteca de sleemanj para o Potenciômetro Digital MCP41100 (obrigado sleemanj!). Também usamos as bibliotecas do Adafruit para cada um dos módulos do Adafruit que usamos; aqueles estão disponíveis na página do produto.
Arduino IDE

Sobre este projeto





Sr. ThermoParcel:recipiente com temperatura controlada para transporte de amostras


O objetivo é desenvolver um contêiner de temperatura controlada que possa ser usado para transportar com segurança amostras sensíveis com um serviço de correio convencional. Nosso protótipo, chamado Mr ThermoParcel, funciona na faixa de temperatura de 4 a 37 ° C e pode ser alimentado por um adaptador de rede, bateria interna ou outras fontes de 12 V, como um acendedor de cigarros de carro ou carregador de laptop.





A gênese do nosso projeto


Nossa ideia origina-se de um problema real que enfrentamos em nossas pesquisas acadêmicas:a troca segura de amostras biológicas termossensíveis com colaboradores. Viola atua na doença da malária e muitas vezes é necessário enviar ou receber amostras de sangue. No entanto, se as amostras não forem mantidas na temperatura correta durante o armazenamento e transporte, elas podem se degradar facilmente e se tornar inúteis. Isso é ainda mais frustrante quando as amostras contêm tipos preciosos de sangue que têm uma resposta especial à malária e vêm de pacientes raros.

O método comum para enviar amostras de sangue desse tipo é congelá-las completamente antes do envio, usar um correio padrão para produtos congelados e, em seguida, descongelá-los cuidadosamente após a entrega. Além de ainda ser caro, tal sistema está longe do ideal, pois o congelamento / degelo sempre altera ou danifica partes das amostras, e o próprio processo de degelo segue um protocolo específico que requer produtos químicos adicionais. Além disso, os itens muitas vezes são entregues à Universidade no depósito de pacotes do campus, onde condições de armazenamento inadequadas e atrasos na notificação de entrega são causas frequentes de degradação da amostra.





Conceito de design


Integramos um sistema de controle de temperatura em um recipiente convencional de poliestireno do tamanho de uma pequena embalagem, reaproveitado em uma entrega de produtos químicos. Nós o otimizamos e testamos com amostras de sangue, mas o mesmo sistema pode ser usado para uma vasta gama de outros materiais biológicos, como células, meios de cultura, produtos químicos sensíveis à temperatura, emulsões e enzimas, ou mesmo adaptado para itens sólidos.

O conceito do sistema é mostrado na Figura 1 . O resfriamento é obtido com um módulo Peltier, com o lado frio conectado a uma pequena caixa de amostra dentro do recipiente de poliestireno e o lado quente conectado a um dissipador de calor externo. O aquecimento é realizado com um tapete aquecedor colocado dentro da caixa de amostra. A temperatura é constantemente monitorada por meio de um sensor em contato com as amostras, e a intensidade de aquecimento / resfriamento é regulada por um controlador Arduino.








Implementação


Hardware de contêiner design

O contêiner externo é uma caixa de poliestireno com dimensões 250x250x250mm e espessura de parede de 45mm em todos os lados, que é um tipo de caixa comum usado em entregas de laboratório com serviços de correio padrão. Um invólucro de plástico (125x70x40mm) é colocado no interior e contém dois tubos de centrífuga de 50mL. Esses tubos atuam como embalagens secundárias de acordo com os regulamentos para Substâncias Biológicas e Infecciosas, Categoria B UN3373 ( link: http://www.un3373.com/info/regulations/ ) As amostras primárias são seis tubos Eppendorf de 2mL contendo espécimes, separados por tecido absorvente para evitar qualquer vazamento. Mr ThermoParcel é capaz de armazenar até 50mL de amostras líquidas, substituindo a embalagem secundária rígida por bolsas flexíveis que podem conter uma quantidade maior de amostras, por ex. até três dos quatro tubos de 15mL (link:https://www.alphalabs.co.uk/laboratory-products/consumables/sample-handling/sample-transport/95kpa-pouches). Para melhorar a uniformidade de aquecimento / resfriamento dentro da caixa interna e garantir o contato térmico entre a folha de cobre, as amostras e o sensor de temperatura, colocamos um gel de solidificação eletricamente isolante ao redor das amostras. A caixa interna contendo as amostras é mostrada na Figura 2 .



Sistema de refrigeração e aquecimento

A temperatura interna é monitorada com um termômetro de resistência 100Ohm Pt (ou Detector de Temperatura de Resistência, RTD) colocado em contato com as amostras e controlado com um sistema PID usando um módulo Peltier (resfriamento) ou tapete aquecedor (aquecimento). Para dissipar fora da caixa o calor do Peltier, o lado quente do módulo Peltier é colocado em contato térmico com uma peça externa de cobre e um dissipador de calor (cooler da CPU) através de três tubos de cobre. O lado frio é fixado a uma fina folha de cobre que passa pela caixa, resfriando as amostras de maneira uniforme. Os detalhes do acoplamento térmico são mostrados na Figura 3 .

A esteira de aquecimento é colocada dentro do invólucro interno em contato com o sensor de temperatura e as amostras.








Eletrônicos e fiação


Regulação de refrigeração e aquecimento

O módulo Peltier usado pelo Mr ThermoParcel é classificado para 3,9A e 7,6 V na potência máxima de resfriamento. Para controlar a temperatura de forma eficaz, a quantidade de energia fornecida ao módulo Peltier é gerenciada eletronicamente usando o regulador de comutação ajustável abaixador PTN78020W. O regulador aceita uma tensão de entrada na faixa de 7 a 36 V e produz uma saída na faixa de 2,5 a 12,6 V, com a limitação de que a saída não pode exceder a entrada menos 2 V. A tensão de saída é ajustada definindo um determinado valor de resistência entre dois pinos de regulação, de acordo com a tabela na ficha de dados do dispositivo. Mr ThermoParcel emprega o potenciômetro digital MCP41100 100kOhm, controlado por Arduino, para regular eletronicamente a tensão de saída com base na leitura de temperatura. Uma vez que toda a faixa de tensão de saída do PTN78020W requer uma variação de tensão superior a 1MOhm, uma tensão é aplicada ao módulo Peltier mesmo quando o potenciômetro digital está definido para 100kOhm, então o módulo Peltier não pode ser "desligado" usando o potenciômetro digital sozinho. O mesmo conceito de regulação se aplica ao aquecimento realizado com o tapete aquecedor. O tapete é simplesmente um resistor que dissipa a corrente como calor, e regular a tensão é uma forma direta de controlar a potência fornecida.

Fonte de alimentação

Uma fonte de alimentação de 12 Vcc é usada para alimentar diretamente o PTN78020W quando o Sr. ThermoParcel está perto de uma tomada elétrica. Isso permite uma saída de até 10 V, o que é suficiente para acionar o Peltier na potência máxima e o tapete do aquecedor com potência suficiente para os propósitos do projeto. Dada a faixa de entrada de 7 a 36 V do regulador PTN78020W, o Mr ThermoParcel também pode ser acionado com a maioria das fontes de alimentação DC usadas para laptops e outros dispositivos eletrônicos, bem como soquetes de isqueiros encontrados em carros. Quando a alimentação externa não está disponível, o Mr ThermoParcel é alimentado por uma bateria de íon-lítio de 3,7 V, 10400 mAh. A bateria ainda alimenta o regulador PTN78020W, mas para atingir a tensão de entrada necessária para acionar o módulo Peltier (10-12V na entrada PTN78020W), o conversor DC-DC XL6019 step-up é conectado primeiro na saída da bateria.

Fiação do Arduino

A energia é fornecida ao Arduino diretamente da entrada externa de 12 V, se disponível, por meio do conector na placa. Se estiver usando a bateria interna, uma tensão semelhante é definida no soquete usando a saída do conversor XL6019.

O Arduino regula a energia fornecida ao módulo Peltier / tapete aquecedor controlando a resistência do potenciômetro digital. A fiação é feita de acordo com as instruções na biblioteca da série MCP41 de sleemanj, com o potenciômetro em configuração de resistor variável. O Arduino também é conectado ao amplificador Adafruit MAX31865 Pt100 RTD, usado para ler o sensor de temperatura, e ao Adafruit RGB LCD Shield, usado para exibir os dados de temperatura e a operação do sistema. Ambos são conectados de acordo com a documentação completa da Adafruit encontrada nas páginas do produto.

Software

Todos os módulos Adafruit conectados ao Arduino são operados com suas respectivas bibliotecas e o potenciômetro digital com a biblioteca da série MCP41 de sleemanj. As principais funcionalidades do código Arduino no Mr ThermoParcel estão relacionadas ao controle de temperatura, que é implementado com um sistema de malha fechada PID. O ponto de ajuste da temperatura é fornecido pelo usuário por meio dos botões de proteção do display LCD. Cada leitura de temperatura medida é então usada para obter o desvio do ponto de ajuste e, assim, calcular o valor PID que é alimentado para o potenciômetro digital para regular a potência de resfriamento / aquecimento. Uma chave seletora física externa determina se a saída de energia é direcionada para o módulo Peltier (resfriamento) ou o tapete do aquecedor (aquecimento). Como não há interruptores eletrônicos no sistema, é feita uma distinção no código entre um modo de aquecimento e um modo de resfriamento, e o usuário deve selecionar o modo apropriado usando os botões de proteção do display LCD. Esta distinção garante que o valor PID calculado tenha o sinal correto. Durante nossos testes, tentamos uma faixa de valores para os fatores PID e observamos que o termo P sozinho era suficiente na maioria das situações para ficar dentro de ± 0,5 ° C do ponto de ajuste, então, eventualmente, removemos os fatores I e D. Isso provavelmente se deve à capacidade de calor relativamente grande das amostras e da caixa interna preenchida com gel, que tornam as mudanças de temperatura lentas (normalmente uma média de 0,02 ° C / s nos regimes mais rápidos).





Desempenho


Quando ligado à rede elétrica, o Mr ThermoParcel resfria até 4 ° C ao iniciar a partir de uma temperatura ambiente de 21-23 ° C em cerca de 1h. A temperatura de 8-10 ° C é alcançada nos primeiros 20 minutos. Começando novamente a partir da temperatura ambiente e usando o tapete aquecedor, 37 ° C são atingidos em cerca de 10 minutos. Todas as temperaturas são mantidas no ponto de ajuste dentro de ± 0,5 ° C.

Quando alimentado apenas pela bateria interna, aproximadamente 10 ° C é a temperatura mínima que pode ser atingida, em um tempo de 1,5-2h. Com o tapete aquecedor, 37 ° C ainda pode ser obtido, mas em 40-60 minutos. Essas limitações são devidas à taxa de descarga da bateria:a bateria de íon-lítio no Mr ThermoParcel é classificada para corrente de descarga máxima de 7A a 3,7 V, mas dada a conversão de aumento para 10-12 V, a corrente de descarga precisaria ser maior para manter a potência máxima do módulo Peltier. Como a bateria contém circuitos de autoproteção que cortam sua saída em caso de sobrecarga de corrente, o sistema não pode funcionar se o sistema de resfriamento / aquecimento tentar consumir uma corrente maior do que a classificação máxima. Ao operar com bateria, o consumo de energia é limitado pelo software a um nível seguro. Esta limitação é puramente devido à bateria sendo usada aqui, e baterias com maior taxa de descarga estão amplamente disponíveis. Como alternativa, uma bateria de íon-lítio com 3 células em série e uma tensão nominal de 11,1 V resolveria o problema e também eliminaria a necessidade de um conversor CC elevador.






Direções futuras


Em seu atual estágio de desenvolvimento, nosso dispositivo não pode ser despachado, principalmente por causa do tamanho e das partes móveis do cooler do processador e da robustez da construção. No entanto, uma vez que o dissipador de calor é substituído por um sistema de resfriamento passivo e uma embalagem secundária de 95k Pa é empregada, o Sr. ThermoParcel pode ser colocado em um contêiner rígido adequado para transporte seguro, cumprindo todos os requisitos de mensageiros padrão para envio de amostras por avião e todos outros meios de transporte.

Com o objetivo principal do alcançado, outros componentes podem ser adicionados para estender a funcionalidade do dispositivo. O perfil de temperatura durante o transporte pode ser armazenado em uma memória local para verificação posterior ou enviado diretamente para o usuário via SMS em intervalos regulares usando um módulo GSM Arduino. Um receptor GPS também pode ser incluído para rastreamento independente de pacotes e coleta oportuna na entrega.


Código

  • PID_LCD_controller_v03
PID_LCD_controller_v03 Arduino
Código Arduino para conectar aos módulos usados ​​pelo Mr ThermoParcel, executar o controlador PID, exibir informações no painel LCD e receber entrada do usuário.
 #include  // importar biblioteca do sensor de temperatura PT100 # include  // importar biblioteca de potenciômetro digital # include  // importar display LCD e biblioteca de escudo de botões # include  // importar biblioteca de expansão I2C # include  // Configurando potenciômetro digitalMCP41_Simple digitalPotentiometer; // cria potenciômetro digital objectconst uint8_t digitalPotentiometer_CS =10; // Configurando o sensor de temperatura PT100 // Use o software SPI para o sensor de temperatura PT100:CS, DI, DO, CLKAdafruit_MAX31865 PT100amplifier =Adafruit_MAX31865 (2, 3, 4, 5); // Defina o valor do resistor Rref. Use 430.0 para o sensor de temperatura PT100. # Define RREF 430.0 // Resistência nominal de 0 graus C do sensor, 100.0ohm para PT100 # define RNOMINAL 100.0 // Configurando a proteção do display LCD com buttonsAdafruit_RGBLCDShield LCD_shield =Adafruit_RGBLCDShield (); // # definir OFF 0x0 // os estados ON e OFF podem ser usados ​​para ligar / desligar a luz de fundo do LCD // # definir ON 0x1void setup () {Serial.begin (115200); Serial.println ("Sr. ThermoParcel, iniciando operação ..."); PT100amplifier.begin (MAX31865_4WIRE); // configure para 2WIRE ou 4WIRE conforme necessário, RTD de 4 fios neste caso // Inicialize o potenciômetro digital digitalPotentiometer.begin (digitalPotentiometer_CS); // Defina o limpador para um ponto arbitrário entre 0 e 255 digitalPotentiometer.setWiper (200); // Inicializar a proteção do display LCD // configurar o número de colunas e linhas do LCD:LCD_shield.begin (16, 2); // configura o ponto de ajuste e o texto T medido no LCD com os espaçamentos corretos LCD_shield.print ("Tsetpoint:C"); LCD_shield.setCursor (0, 1); LCD_shield.print ("Tsample:C");} // Inicializar constantes PID, variáveis ​​relacionadas à temperatura e botão de proteção valueint powerMode =1; // powerMode =1 para energia da bateria, powerMode =-1 para energia da rede elétrica; usado para evitar a sobrecarga da bateria em operationMode =1; // operationMode =1 para resfriamento, operationMode =-1 para aquecimento; usado para corrigir o sinal dos termos PIDfloat PT100ratio; // Define a variável de relação de resistência para PT100 sensoruint8_t buttonsPressed =0; float kp =500.0; //; int ki =5; int kd =3,9; flutuante PID_p =0,0; // int PID_i =0; int PID_d =0; float Tmedido =-1,0; float Tsetpoint =22,0; // Comece em torno da temperatura ambientefloat PID_error =5; float PID_value =0; // Defina a função print_Tsetpoint para imprimir corretamente o ponto de ajuste de temperatura na tela LCD estático char TsetpointString [3]; void print_Tsetpoint (int T) {// Imprimir Tsetpoint no correto coloque LCD_shield.setCursor (10, 0); dtostrf (T, 3, 0, TsetpointString); LCD_shield.print (TsetpointString);} // Definir a função print_Tmeasured para imprimir corretamente a temperatura medida na tela LCD estática char TmeasuredString [4]; void print_Tmeasured (float T) {// Imprimir Tmeasured no lugar correto LCD_shield.setCursor (8, 1); dtostrf (T, 5, 1, TmeasuredString); LCD_shield.print (TmeasuredString);} // Definir a função print_powerMode para imprimir corretamente o modo de energia (B, bateria; M, rede) void print_powerMode () {LCD_shield.setCursor (15, 0); if (powerMode ==1) {LCD_shield.print ("B"); } else if (powerMode ==-1) {LCD_shield.print ("M"); }} // Defina a função print_operationMode para imprimir corretamente o modo de energia (C, resfriador Peltier; H, tapete de aquecimento) void print_operationMode () {LCD_shield.setCursor (15, 1); if (operationMode ==1) {LCD_shield.print ("C"); } else if (operationMode ==-1) {LCD_shield.print ("H"); }} // *** loop principal *** void loop () {// Leitura da temperatura uint16_t rtd =PT100amplifier.readRTD (); PT100ratio =rtd; PT100ratio / =32768; Tmeasured =PT100amplificador.temperatura (RNOMINAL, RREF); Serial.print ("Setpoint Temperature ="); Serial.println (Tsetpoint); Serial.print ("Temperatura ="); Serial.println (Tmeasured); // Imprime valores e modos de temperatura print_Tsetpoint (Tsetpoint); print_Tmeasured (Tmeasured); print_powerMode (); print_operationMode (); // Calcula o erro entre o setpoint e o valor medido PID_error =Tmeasured - Tsetpoint; // Calcula o valor P PID_p =operationMode * kp * PID_error; // Calcular o valor PID total, se acima do máximo (255) mantenha em 255, se abaixo do mínimo (0) mantenha em 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); // If in battery mode (powerMode=1) limit output to avoid battery overload // If in mains mode (powerMode=-1) allow full power (255) if (powerMode ==1) { if (PID_value <0) { PID_value =0; } if (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("Adjusted PID_value ="); Serial.println(PID_value); // Set digital potentiometer resistance from PID value digitalPotentiometer.setWiper(255 - PID_value); // Detect any buttons pressed, change the setpoint value if needed, and display measured and setpoint T // delay() funcion calls ensure that enough time is given to press buttons and see the values change delay(1000); buttonsPressed =LCD_shield.readButtons(); if (buttonsPressed &BUTTON_SELECT) { // Highlight that system in edit mode by blinking the cursor LCD_shield.setCursor(14, 0); LCD_shield.blink(); atraso (1000); buttonsPressed =0; // Stay in edit mode until SELECT button is pressed again. Buttons UP and DOWN change Tsetpoint. // LEFT toggles operation mode (heating/cooling). RIGHT toggles power mode (battery/mains). while (not (buttonsPressed &BUTTON_SELECT)) { buttonsPressed =LCD_shield.readButtons(); if (buttonsPressed &BUTTON_UP) { Tsetpoint +=1; } if (buttonsPressed &BUTTON_DOWN) { Tsetpoint -=1; } if (buttonsPressed &BUTTON_RIGHT) { powerMode *=-1; print_powerMode(); } if (buttonsPressed &BUTTON_LEFT) { operationMode *=-1; print_operationMode(); } print_Tsetpoint(Tsetpoint); LCD_shield.setCursor(14, 0); atraso (500); } // Exit edit mode and stop blinking cursor LCD_shield.noBlink(); buttonsPressed =0; } Serial.println();}

Esquemas

Schemcatic circuit diagram with all main components of our temperature controlled container. Wiring schematic requested by another user of the community. It's the one we used to assemble the wiring, so it's ugly and was never intended for publication! But maybe can be helpful. Wiring of the potentiometer to other components.

Processo de manufatura

  1. Ventilador com temperatura controlada
  2. DIY:Monitoramento e regulação de temperatura para HomeBrew
  3. Medição de temperatura para projetos de laboratório e ciências
  4. Melhores Metais para Condução de Calor
  5. Como calcular a dissipação de calor para VFDs
  6. Laminados de PCB de alta temperatura
  7. Guia de Temperatura PCB
  8. Tratamento térmico para peças fundidas de alumínio
  9. Liga de Expansão Controlada Liga 36 (Invar®)
  10. Processo de tratamento térmico para peças de metal usinadas CNC