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

Monitor de Temperatura com Bluetooth usando Arduino Nano

Componentes e Materiais

Componente Quantidade
Arduino Nano R3 1
Fios jumpers (genéricos) 1
Módulo Bluetooth HC-06 1
Termistor NTC 1
Resistor 10k ohm 1
Resistor 1k ohm 1
Resistor 2.21k ohm 1

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Neste tutorial, mostro como configurar um controlador de temperatura Arduino que envia valores para um app Android via conexão Bluetooth.

Materiais Necessários

Primeiro, monte o divisor de tensão para o termistor. A Figura 1 mostra as conexões para calcular a resistência desconhecida do termistor em função da temperatura.

Monitor de Temperatura com Bluetooth usando Arduino Nano

Figura 1 Divisor de tensão para avaliação da resistência do termistor.

Este circuito permite ao Arduino determinar a queda de tensão após o resistor desconhecido. Usando o valor do outro resistor, calculamos a resistência desconhecida com o código da Figura 2.

raw = analogRead(analogPin);
if(raw) {
  ratio = raw * Vin;
  Vout = (ratio)/1024.0;
  ratio = (Vin/Vout) - 1;
  R2 = R1 * ratio;
}

Figura 2 Código Arduino para avaliação da resistência do termistor.

A resistência obtida é convertida em temperatura usando a fórmula beta (Figura 3).

NOTA: O valor beta do seu termistor e Ro a 25°C estão no datasheet! Verifique antes de rodar o código!

Temp = Beta / log(R2 / (Ro * exp(-Beta/To)));
Temp = Temp - 273.15;

Figura 3 Código Arduino para conversão de temperatura.

Configure o módulo Bluetooth. A Figura 4 mostra como conectar um módulo HC-06 ao circuito anterior. Um divisor de tensão é necessário para conectar o pino TX1 do Arduino ao RX do módulo, pois este aceita apenas 3.3V.

Monitor de Temperatura com Bluetooth usando Arduino Nano

Figura 4 Esquemático Arduino com módulo HC-06.

Dados podem ser enviados pelo módulo Bluetooth inicializando a porta serial e imprimindo os valores desejados. Neste exemplo, o dispositivo mede temperatura entre 25-75°C, conta ~300 segundos em alta temperatura e depois muda a mensagem (Figura 5).

void setup() {
  Serial.begin(9600);
}
void loop(){
  if(Temp >= 74) {
    for (int i = 0; i <= 30; i++) {
      Serial.print("Temperature >= 74 °C");
      delay(10000);
    }
    Serial.print("Heating Complete");
    delay(10000);
  } else if (Temp <= 26){
    Serial.print("Temperature <= 25 °C");
    delay(10000);
  } else {
    Serial.print("Temperature: ");
    Serial.println(Temp);
    delay(10000);
  }
}

Figura 5 Código Arduino para inicialização serial e impressão de valores.

O dispositivo final montado em protoboard aparece na Figura 6.

Monitor de Temperatura com Bluetooth usando Arduino Nano

Figura 6 Dispositivo completo em protoboard.

O passo final é conectar o módulo Bluetooth a um celular Android para visualização dos dados. Um app simples foi programado no MIT App Inventor 2. Figuras 7 e 8 mostram a interface e os blocos de programação.

Monitor de Temperatura com Bluetooth usando Arduino Nano

Figura 7 Interface do usuário feita com AppInventor2.

Monitor de Temperatura com Bluetooth usando Arduino Nano

Figura 8 Blocos de programação do AppInventor2.

O app proposto está disponível na galeria do App Inventor: link. Usando o sistema intuitivo de blocos, muitos outros apps podem ser criados para qualquer finalidade. Por exemplo, precisei que o app me notificasse com som se a temperatura caísse abaixo de 25°C e avisasse após 5 minutos a 75°C que o ciclo de aquecimento terminou.

Opcional: Um passo final poderia ser soldar os componentes e imprimir uma caixa 3D para manter tudo junto. A Figura 9 mostra o resultado.

Monitor de Temperatura com Bluetooth usando Arduino Nano

Figura 9 Dispositivo completo pronto para uso.

Um furo foi feito na lateral da caixa para alimentar o Arduino via mini USB. O cabo longo vermelho e preto foi adicionado para aumentar a distância entre o termistor e o resto do dispositivo (precisava do termistor para medir temperatura de soluções, então queria os componentes eletrônicos o mais longe possível).

Espero que este projeto simples ajude a entender os fundamentos da comunicação serial com módulo Bluetooth para aplicar em seus próprios projetos.

Se encontrar erros ou tiver dúvidas, avise-me.

EDIT: Encontrei erro no esquemático do divisor de tensão para o módulo Bluetooth. Corrigido.

EDIT2: Se tiver problemas ao carregar o código, tente desconectar o módulo Bluetooth.

Código

Monitor de Temperatura com Módulo Bluetooth Arduino

Para calcular a resistência do termistor NTC, aplicam-se 5V em série com um resistor conhecido de magnitude similar (neste exemplo 10kohm). Pelo pino analógico A0, lê-se a tensão do divisor e, com o valor conhecido de um resistor, calcula-se a resistência do NTC. Este valor é convertido em temperatura pela equação beta (altere o beta para o seu) e enviado ao app Android via Bluetooth.

O código pode ser alterado para monitorar faixa específica de temperatura; neste exemplo, monitorava entre 25-75°C e aguardava 5 minutos na temperatura alta.

// Monitor de temperatura com módulo bluetooth
int analogPin = 0;
int raw = 0;
int Vin = 5;
float Vout = 0;
float R1 = 10000; // altere para seu sistema
float Ro = 10000; // altere para seu sistema
float R2 = 0;
float ratio = 0;
float Temp = 0;
float Beta = 3694; // altere para seu sistema
float To = 298.15; // termistor vai de 10k a 25°C. Escolha resistência de referência accordingly

void setup() {
  Serial.begin(9600);
}
void loop() {
  raw = analogRead(analogPin);
  if(raw) {
    ratio = raw * Vin;
    Vout = (ratio)/1024.0;
    ratio = (Vin/Vout) - 1;
    R2 = R1 * ratio;
    Temp = Beta / log(R2 / (Ro * exp(-Beta/To)));
    Temp = Temp - 273.15;
    if(Temp >= 74) {
      for (int i = 0; i <= 30; i++) {
        Serial.print("Temperature >= 74 °C"); // altere para seu sistema
        delay(10000);
      }
      Serial.print("Heating Complete");
      delay(10000);
    } else if (Temp <= 26){
      Serial.print("Temperature <= 25 °C"); // altere para seu sistema
      delay(10000);
    } else {
      Serial.print("Temperature: "); // altere para seu sistema
      Serial.println(Temp);
      delay(10000);
    }
  }
}

Esquemáticos

O resistor R2 deve ser alterado conforme a resistência do termistor que você vai usar. O erro na leitura de temperatura aumenta com o viés (Rdesconhecido - R2).

Monitor de Temperatura com Bluetooth usando Arduino Nano

Processo de manufatura

  1. Monitor de Temperatura e Umidade em Rede com Raspberry Pi – Guia DIY de Configuração
  2. Construa um Monitor de Temperatura ThingSpeak com Raspberry Pi e BrickPi
  3. Monitore a Temperatura da Sua Casa com Dashboard no Raspberry Pi
  4. Alerta Inteligente de Sede para Plantas – Sensor DIY para Hidratação Ideal
  5. Relógio de Palavras em Italiano com Arduino Nano, NeoPixel, LCD e RTC
  6. Medidor kWh Confiável com Sigfox e Arduino MKR Fox 1200
  7. Fechadura por Gestos Sem Toque: Acesso Seguro com APDS-9960 e Arduino
  8. Companion IC: Relógio, Ohmímetro, Capacímetro e Testador de Diodos com Arduino Nano
  9. Circuito de Entrada Analógica Isolada para Arduino
  10. Teste de Tempo de Reação Preciso com Arduino UNO