Mostre sua temperatura em um display OLED e face-shield

Mostre sua temperatura em um display OLED e face shield 3

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

Montagem do circuito

Faremos o circuito conforme mostrado na figura abaixo:

Onde:

ArduinoDisplay OLEDThermistor e resistor 10kΩBateria
A0Entre terminal e resistor
A4SDA
A5SCL
GNDGNDTerminal após o resistorFio preto
VCCVCCTerminal sem resistorFio 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.

Ender-3 imprimindo o projeto medição de temperatura em um face shield

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çãoValor
Layer Height0.2 mm
Wall Thinckness0.8 mm
Infill Density10%
Initial printing temperature200 (PLA)
Defaut printing temperature190 (PLA)
Build plate temperature60 (PLA)
Print speed45 a 55 mm/s
Build plate adhesion typeSkirt
Skirt line count4

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.

Passando o projeto medição de temperatura em um face shield no slicerp

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.

Imprimindo os faceshield

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.

Encaixando o display oled no projeto medição de temperatura em um face shield

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.

Display OLED no projeto medição de temperatura em um face shield

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.

Colando com dupla face o projeto medição de temperatura em um face shield

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.

Projeto medição de temperatura em um face shield

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.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

3 Comentários

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

    1. Oi Cristiano! Muito legal seu feedback. Acrescente a linha:

      display.print(F(“*C”));

      Após a linha referente à temperatura.

      Grande abraço!

  2. Gedeane, a bateria LiPo de 3,7V é suficiente para alimentar o ATmega de 5,0V ?