Olá pessoal! O que acha da ideia de mostrar sua temperatura através de um display sobre um face shield? Neste artigo vou te ensinar a desenvolver este projeto utilizando um Arduino, um display OLED, um termistor e mais alguns componentes. Assim você poderá executar a medição de temperatura em um face shield.
Vivemos atualmente uma época de quarentena devido ao COVID-19. Devido a sua gravidade e sintomas, tomamos medidas preventivas como evitar aglomerações, se atentar à temperatura do nosso corpo (febre é um dos sintomas desta doença), uso de máscaras faciais e face shields para evitar respingos que podem transmitir o vírus.
Inclusive, houve bastante movimentação entre os makers no começo da pandemia para a produção destes face shields em impressoras 3D para doação aos profissionais de saúde.
A imagem acima mostra um pouco da produção feita aqui em casa pelo Guilherme Razgriz junto com o pessoal do RHMS – Rio Hacker Maker Space.
Neste artigo faremos um upgrade no face shield, baseado no projeto Careta inteligente, do canal BioMakers! (em espanhol).
Materiais necessários
- 1 placa Pro Mini ATmega328P
- 1 conversor serial/TTL CP2102 (ou FTDI)
- Fios flexíveis finos com cores variadas (AWG26 a 30)
- 1 display OLED 0.91” I2C
- 1 bateria de LiPo 3,7V (400 a 600 mAh)
- 1 resistor 10kΩ 1/4W
- 1 termistor NTC 10k
- Tubo termo retrátil
- Chave 3 terminais mini switch
- Alicate de corte
- Fita dupla face
- Ferro de solda (ou estação de solda/retrabalho)
- Solda em fio (estanho) 0,5mm
- Filamento PLA 1,75mm
- Impressora 3D FFF
- Fita isolante colorida (da mesma cor que o filamento)
- 1 folha de acetato A4
- Pedaço de elástico chato para roupa 5mm (cerca de 30 cm)
- Tesoura
Montagem do circuito
Faremos o circuito conforme mostrado na figura abaixo:
Onde:
Arduino | Display OLED | Thermistor e resistor 10kΩ | Bateria |
A0 | Entre terminal e resistor | ||
A4 | SDA | ||
A5 | SCL | ||
GND | GND | Terminal após o resistor | Fio preto |
VCC | VCC | Terminal sem resistor | Fio switch |
Vamos iniciar o projeto com a programação do Arduino Pro Mini.
Código
O termistor faz a leitura da temperatura e envia sinais ao pino A0 (analógico) do Arduino, que converte a tensão lida em temperatura através de uma biblioteca chamada Thermistor.h. O valor desta temperatura é mostrado no display OLED, com atualização de 50 ms entre cada medição.
São necessárias três bibliotecas a serem instaladas para funcionamento do projeto: Adafruit_GFX (funcionamento de sensores em geral formato Adafruit), Adafruit_SSD1306 (funcionamento específico do display OLED) e Thermistor (para facilitar leitura e conversão de valores em graus Celsius do termistor).
Para instalação, abra a IDE Arduino, no menu Sketch => Incluir biblioteca => Gerenciar bibliotecas.
Será aberta uma nova janela com as bibliotecas disponíveis em sua versão IDE Arduino, para uso imediato ou instalação. Digite o nome de cada uma das bibliotecas citadas anteriormente, uma de cada vez, e realize a instalação, clicando em Instalar (canto direito da biblioteca). Aguarde o carregamento dos arquivos, aparecerá a palavra INSTALLED ao lado de cada uma.
Ao término das três instalações, copie o seguinte sketch para a IDE Arduino:
/* Projeto Temperatura em face shield * Autoria: Gedeane Kenshima * 14/09/2020 */ // Bibliotecas para o projeto #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <Thermistor.h> // Definições do tamanho do display #define SCREEN_WIDTH 128 // Largura do display em pixels #define SCREEN_HEIGHT 32 // Altura do display em pixels // Declaração do pino reset do display (o mesmo do Arduino) #define OLED_RESET -1 // Objeto display com configurações Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // Objeto temp para medição de temperatura em A0 Thermistor temp(0); void setup() { // Início da comunicação serial em 9600 bps Serial.begin(9600); // Se display não iniciar (0x3C é o endereço I2C, troque caso utilize outro modelo) if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Exibe mensagem de falha Serial.println(F("Falha de alocação")); for(;;); } } void loop() { // Tipo float chamado temperature // Realiza a leitura do pino A0 e converte em graus Celsius float temperature = temp.getTemp(); display.clearDisplay(); // Tamanho do texto normal (1x) display.setTextSize(1); // Escreve texto preto com fundo branco display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); // Posição para escrever mensagem display.setCursor(0,0); display.print(F("Temperatura:")); // Aumenta tamanho da letra 3x display.setTextSize(3); // Escreve texto branco display.setTextColor(SSD1306_WHITE); // Posição para escrever temperatura display.setCursor(0,12); display.println(temperature); display.display(); // Aguarda 50 ms para próxima leitura delay(50); } // Fim do sketch
Para gravar o código no Arduino, você deve soldar a barra de pinos macho 90° na lateral para ter acesso aos pinos GND-VCC-TXD-RXD-DTR. Use um conversor USB/TTL para realizar a ponte entre Arduino e computador. Você pode realizar a gravação usando um conversor do tipo CP2102.
Desenvolvimento
Para realizar a conexão entre os elementos faremos uso de fios finos coloridos soldados entre as partes. Vamos iniciar pelo termistor e resistor.
Corte o excedente dos terminais do termistor, deixando cerca de 1 cm em cada lado. Com o ferro de solda aquecido, passe solda em fio nos terminais do termistor (“estanhar” as pontas).
Em seguida, corte 3 pedaços com cerca de 15 cm de fio flexível e decape as pontas com cerca de 0,5 cm. Passe solda nas pontas dos fios também, para facilitar a junção com o termistor.
Una um dos lados do termistor com um dos fios (a). Para isso, encoste a ponta do ferro de solda por um ou dois segundos entre o fio e o terminal do termistor.
Corte os terminais excedentes do resistor e repita o processo para “estanhar”. Una o resistor ao lado oposto do fio já soldado no termistor (b).
Use um pedaço de tubo termo retrátil fino para cobrir a solda no termistor e fio (c). Corte um pedaço um pouco maior que o comprimento da solda.
O tubo contrai para cobrir a solda quando aquecido. Fiz o aquecimento usando soprador térmico (d), porém pode ser utilizado isqueiro ou o corpo do ferro de solda quente.
Solde os outros dois fios, um junto ao termistor com resistor e o último ao lado oposto ao resistor (e). Use o termo retrátil para cobrir a solda do fio com resistor, e outro pedaço de tubo com bitola mais larga para cobrir também o resistor (f).
Impressão 3D
Usaremos a impressora 3D para fazermos um face shield e o case para nossos elementos. Neste projeto foi utilizada uma Creality Ender 3 Pro, porém qualquer outra impressora FFF (Fabricação por Filamento Fundido) pode ser utilizada.
O modelo do face shield foi baseado no modelo desenvolvido por Josef Prusa. Pode ser impresso em PLA ou PETG. Neste projeto fizemos uso de filamento PLA 1,75mm na cor vermelha. Para maiores detalhes sobre como trabalhar com PLA, recomendo a leitura do artigo escrito por Guilherme Razgriz sobre PLA.
Os arquivos STL para impressão encontram-se neste link. O arquivo contém um modelo modificado do face shield Prusa e com as peças para o case, desenvolvido por Guilherme Razgriz e disponibilizado em seu perfil no Thingiverse.
Realizei o fatiamento do arquivo STL utilizando o software Ultimaker Cura, disponível neste link para download.
Parâmetros de impressão estão na tabela a seguir:
Configuração | Valor |
Layer Height | 0.2 mm |
Wall Thinckness | 0.8 mm |
Infill Density | 10% |
Initial printing temperature | 200 (PLA) |
Defaut printing temperature | 190 (PLA) |
Build plate temperature | 60 (PLA) |
Print speed | 45 a 55 mm/s |
Build plate adhesion type | Skirt |
Skirt line count | 4 |
São quatro arquivos referentes ao face shield, case, tampa do case e separador de bateria. Você pode imprimí-los de forma individual ou todos durante uma única impressão.
Realize o fatiamento pelo botão Slice após configurar seu software Cura. Após o fatiamento é gerado o arquivo .gcode, que é o que vai em efetivo para a impressora. Deve ser colocado no cartão de memória e inserido na impressora.
Montagem final
Solde quatro fios de cores diferentes (cerca de 12 cm cada) nos pinos do display. Fixe o display sobre a tampa impressa do case, mostrado na Figura (g e h) abaixo. Use um pedaço de fita dupla face para que o display não se mova.
Realize a soldagem dos demais componentes à placa Pro Mini: switch, display e bateria. Abra um buraco na lateral da caixa para colocar o switch (verifique a posição do display, pela orientação coloquei o switch na parte superior do case. Caso haja folga no switch, use um pedaço de fita dupla face na lateral.
Use o buraco quadrado do case para passagem de fios do sensor de temperatura (i) antes de soldá-lo ao Arduino.
Tenha bastante atenção na soldagem dos fios do sensor (VCC, A0 e GND), pois há riscos de danificar o Arduino se trocar o A0 (sinal do sensor) com VCC ou GND.
Coloque a bateria dentro do case (j) e solde o fio vermelho no switch. Tenha bastante cautela, pois a bateria não deve ser exposta ao calor (risco de explosão). Solde outro fio no pino do switch, ao lado do fio vermelho da bateria soldado anteriormente. O outro lado deste último fio vai para o VCC do Arduino.
O case pronto com sensor pode ser visto na figura (k) abaixo.
Realize testes de medição de temperatura usando seu dedo, como visto na figura acima (l).
Verifique o lado do face shield onde será colocado o case, uma lateral é maior que a outra propositalmente para este encaixe. Fixe a parte traseira do case usando fita dupla face e, com fita isolante da cor do face shield, feche o case, deixando os fios do sensor livres para movimentação.
Na parte frontal do face shield, use pedaços de fita dupla face para fixar a folha de acetato. Faça furos correspondentes na folha para encaixe nos pinos frontais, remova a parte verde da fita e fixe o acetato.
Com uma tesoura, corte os cantos da folha de acetato de forma arredondada para não se machucar.
Para finalizar, use o elástico nas pontas do face shield para colocá-lo sobre a cabeça. Você pode amarrar as pontas ou fazer um corte no elástico para acomodá-lo nos pinos próprios no face shield.
O projeto da medição de temperatura em um face shield finalizado pode ser visto na próxima imagem.
Utilizei o sensor por trás da orelha para medição da temperatura. Você pode mudar o comprimento dos fios para colocá-lo no local de sua preferência.
É importante lembrar que o face shield deve ser usado em conjunto com uma máscara facial, para garantir uma proteção mais efetiva.
Gostou de conhecer o projeto de medição de temperatura em um face shield? É bastante interessante o desenvolvimento de diversas práticas, como soldagem, código e impressão 3D, além de ser muito prático para mostrar a temperatura corporal. Deixe seu comentário logo abaixo se gostou do artigo.
Boa Tarde
Não esta funcionando com a biblioteca do gerenciador do Arduino.
Tive que pegar aqui:
https://sites.google.com/site/servidorvisualdicas/arduino/Thermistor.zip?attredirects=0&d=1
Muito legal, informativo e criativo.
Ola Professora;
Fiz o projeto deu tudo certo, so nao usei a mascara.
gostaria de colocar a letra “C” de graus Celsius na frente da variavel temperature.
pode passar por favor.
Oi Cristiano! Muito legal seu feedback. Acrescente a linha:
display.print(F(“*C”));
Após a linha referente à temperatura.
Grande abraço!