Projetos

Monitoramento de Temperatura via Bluetooth

Eletrogate 8 de junho de 2021

Introdução

Uma das coisas que mais é explorada na automação residencial é o monitoramento da temperatura. Muitas pessoas compram termômetros para medí-la, porém, de um ponto de vista Maker, eles são bem limitados.

Por isso, se aproveitando de uma das vastas oportunidades que o Arduino nos proporciona, vamos criar um sistema que além de medir a temperatura, nos permitirá verificar os dados coletados via Bluetooth de outro cômodo de nossa casa.

Para isso, no sistema, os dados serão coletados por um sensor de umidade e temperatura, DHT11. Para transmitir os dados, utilizaremos um módulo Bluetooth HC-06. Toda esta parte do hardware do sistema será controlada por um Arduino Nano, mantendo um aspecto compacto no projeto, permitindo a sua montagem em apenas uma protoboard de 400 pontos.

Para transmitir os dados, utilizaremos um módulo Bluetooth HC-06. Iremos receber nossos dados pelo app “Bluetooth SPP”, ótimo aplicativo para testes. Mas, se você quiser, poderá desenvolver um aplicativo bem simples no MIT App Inventor para aprimorar o seu projeto, já que na parte do sistema e do código do Arduino nada será alterado.


Características

Sensor DHT11

Sensor de temperatura DHT11

Este é um dos melhores sensores para se trabalhar com o Arduino. Isso decorre do fato de ser bastante simples e de baixo custo. Os dados são processados por um microcontrolador em seu interior e são transmitidos no formato digital através de um pino de saída. Se quiser saber mais sobre este sensor, leia este artigo.

Especificações:

  • Faixa de umidade relativa: de 20 a 80 %
  • Precisão na umidade: ± 5 % RH
  • Resolução de umidade: 5 % RH
  • Faixa de temperatura: 0 a 50 °C
  • Precisão na temperatura: ± 2 % °C
  • Resolução na temperatura: 2 °C
  • Tempo de resposta: 2 segundos
  • Alimentação: de 3,5 V a 5 V
  • Consumo máximo de corrente: 2,5 mA

Pinout do sensor:

  • VCC: 3,5V a 5V
  • DATA: Comunicação (conectaremos ao pino 2 do Arduino)
  • NC: Sem conexão
  • GND: Terra

Módulo Bluetooth HC-06

Módulo Bluetooth HC-06

Dentro da automação residencial, a necessidade de módulos que possam se comunicar via wireless é grande, por isso, este é um dos módulos mais utilizados. Ele é versátil e bem simples, podendo ser utilizado sem ao menos alterar o código, já que, conectados aos pinos RX e TX do Arduino, funciona como um Monitor Serial.

Ao trabalhar com este módulo deve-se ter cuidado ao energizar o pino RX do módulo. Este pino necessita de cerca de 3,3V para funcionar, e não os 5V das portas digitais do Arduino. Por isso, devemos utilizar um divisor de tensão com dois resistores de 330Ω para resolver o problema.

Se quiser saber mais, leia este artigo.

Pinagem do módulo:

  • RXD: Pino TX do Arduino
  • TXD: Pino RX do Arduino
  • GND: Terra
  • VCC: 3,6V a 6V

Bluetooth SPP

Ícone do Bluetooth SPP

O “Bluetooth SPP” é um ótimo aplicativo para testes de projetos que envolvem Bluetooth, já que além de um terminal, com linhas e um teclado, ainda existe, dentro do app, um modo de controle remoto e um modo de interruptor, muito bom para aplicações da automação residencial.

Como teremos que ver as informações impressas no Monitor Serial, iremos utilizar o modo do terminal. O aplicativo apenas possui a língua espanhola, mas isso não atrapalhará o nosso projeto. Infelizmente o aplicativo só está disponível para o sistema Android, e seu download pode ser realizado neste link.


Desenvolvimento do Projeto

Para desenvolvermos o projeto, iremos dividir o processo em três partes. Primeiramente, iremos desenvolver a parte do circuito, depois, iremos desenvolver o código, e por último, vamos configurar nosso dispositivo móvel para o correto funcionamento do app com o módulo Bluetooth.


Circuito

Vamos seguir o esquemático abaixo para montarmos o nosso circuito. Fique atento ao divisor de tensão para o pino RXD do módulo Bluetooth.

Pinos a serem conectados no Arduino Nano:

  • Pino DATA do DHT11: Porta digital 2
  • Pino RXD do módulo Bluetooth: Pino TX do Arduino
  • Pino TXD do módulo Bluetooth: Pino RX do Arduino

    Esquemático do circuito


Código

O código foi desenvolvido com base no próprio exemplo da biblioteca utilizada, a DHT.h, da Adafruit. Esta é uma versão bem simples, porém atende a necessidade. 

Para instalar as bibliotecas, vá na sua Arduino IDE, clique em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas. Após isso, digite “dht sensor” na barra de pesquisa. Caso necessário, reinicie a IDE. Você também pode instalar a biblioteca por aqui.

Se quiser, poderá aprimorar o sketch adicionando verificação dos dados, medição da umidade e adicionando outras funções disponíveis na biblioteca, como margem de erro, valores máximo e mínimo, nome e resolução do sensor. Outro aprimoramento pode ser a inclusão da biblioteca SoftwareSerial para simular outras portas RX/TX do Arduino. 

Código:

/*
 * Eletrogate - Monitoramento da Temperatura via Bluetooth 
 * Autor: Miguel Sena
 * Blog da Eletrogate: blog.eletrogate.com
 */

#include <Adafruit_Sensor.h>                              //Inclusão das bibliotecas utilizadas
#include <DHT.h>
#include <DHT_U.h>

#define pin 2                                             //Define do pino em que o sensor está conectado
#define type DHT11                                        //Define o tipo do sensor (se for utilizado o DHT22, devemos trocar o tipo do sensor)

DHT_Unified dht(pin, type);                               //Cria o objeto do sensor

void setup() {
  Serial.begin(9600);                                     //Inicia o Monitor Serial
  dht.begin();                                            //Inicia o sensor
}

void loop() {
 if (Serial.available()) {                                //Checa se tem alguma entrada Serial disponível
    char cmd = Serial.read();                             //Cria uma variável cmd, do tipo char, que receberá os dados enviados no Monitor Serial

    if (cmd == 't') {                                     //Verifica se o comando inserido é igual a 't'
      sensors_event_t event;                              //Cria um objeto event
      dht.temperature().getEvent(&event);                 //Mede os dados do sensor e os atribui ao objeto event
      Serial.println("------------------------------"); 
      Serial.print("Temperatura: ");
      Serial.print(event.temperature);                    //Acessa a temperatura e imprime no Monitor Serial
      Serial.println("*");
      Serial.println("------------------------------");
      Serial.println();
    }
  }
}

Com o estado atual do desenvolvimento do projeto, se você desconectar o módulo Bluetooth do Arduino, vai perceber que o nosso sistema já está funcionando no próprio Monitor Serial da IDE do Arduino, como você pode ver no vídeo abaixo.


Configurando o Bluetooth em seu Celular

Antes de começarmos a configuração, você deve instalar o aplicativo “Bluetooth SPP” nesse link. Após a instalação, o primeiro passo é ir nas configurações do Bluetooth do seu aparelho, já como o módulo conectado a energia (se tudo estiver correto, haverá uma luz vermelha piscando rapidamente).

Passo 1

Se seu Bluetooth não estiver ativado, ative-o.

Passo 2

Após ativado, busque por dispositivos disponíveis e selecione o “HC-06”. Se uma senha for pedida, tente “1234” ou “0000”.

Passo 3

Ao término do processo nas configurações, os seu módulo já estará pronto para uso. Porém, para conectá-lo, precisaremos do aplicativo.

Passo 4

Agora, devemos conectar o nosso módulo ao app, por isso, clique nos três traços do canto superior esquerdo.

Passo 5

Clique em “Buscar dispositivos”.

Passo 6

Feito isso, o aplicativo abrirá uma tela com os dispositivos Bluetooth pareados em seu aparelho, portanto, escolha o HC-06.

Passo 7

O aplicativo, agora,  está configurado. Para se conectar ao módulo basta clicar no ícone do Bluetooth no canto superior direito. Após isso, o modo Terminal já aparecerá ao usuário.

Passo 8

Aplicativo pronto para uso

Agora, com tudo pronto, basta apenas enviar os comandos no terminal para receber os dados de temperatura.


Conclusão

Ao combinar tudo que fizemos até agora, podemos concluir o projeto e iniciar o nosso monitoramento de temperatura via Bluetooth. 

Claro que há limitações, como utilizamos o bluetooth, o alcance não é muito alto, mas, você pode aumentar esse alcance com algum módulo Ethernet ou então com um ESP-32 via Wifi, porém, se feito isso, devemos fazer alterações no circuito e no código. Além disso, podem ser feitos as melhorias já citadas anteriormente. 

Se tiver alguma dúvida, deixe nos comentários!


Sobre o Autor


Miguel Sena
@arduuno

Estudante e hobbista na parte de eletrônica e programação. Gosto de desenvolver projetos no Arduino e ESP-32 voltados á robótica e automação residencial, e de desenvolver projetos em Python, assim como a integração dele com o Arduino.


Eletrogate

8 de junho de 2021

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!