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
- Ferro de solda (opcional)
- Impressora 3D (opcional, para gabinete)
Aplicativos e Serviços Online
- MIT App Inventor 2
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
- Arduino Nano
- Termistor NTC — verifique a resistência a 25°C, necessária no código para calcular a temperatura pela fórmula beta
- Resistores: 2k, 1k e um da mesma magnitude do termistor
- Módulo Bluetooth HC-06
- Jumpers diversos
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.

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.

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.

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.

Figura 7 Interface do usuário feita com AppInventor2.

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.

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

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