Digispark com módulo bluetooth HC-05

Digispark ATtiny85 com Bluetooth HC-05

A Digispark ATtiny85 é uma placa que vem fazendo muito sucesso pelo seu tamanho reduzido e facilidade de uso, o que a torna ideal para projetos compactos e projetos de IoT. Hoje vamos apresentar mais uma possibilidade de utilização desta placa, que é o uso da Digispark com módulo bluetooth HC-05.

Para isso, vamos emular uma serial nos pinos digitais da Digispark e então realizar a comunicação com o módulo bluetooth e enviar comandos usando um smartphone.

Interface serial na Digispark

Nos outros artigos do Arduino e Cia sobre a Digispark, vimos que a placa não possui interface serial por hardware. Observe a pinagem abaixo, onde temos a interface I2C e SPI, mas não a serial:

O que vamos fazer então é emular uma interface serial nos pinos digitais D0 e D1, e a partir daí realizar a comunicação com o módulo bluetooth HC-05.

O módulo bluetooth RS232 HC-05 é um componente bastante comum nos projetos envolvendo Arduino, e se comunica com o microcontrolador através dos pinos RX e TX. Com ele você pode enviar e receber dados, por exemplo, através de um smartphone.

Vamos então ver como ficam as conexões da Digispark com módulo bluetooth HC-05.

Conectando o módulo bluetooth HC-05 na Digispark

Como mencionamos anteriormente, vamos emular a interface serial nos pinos P0 (Porta digital D0) e P1 (porta digital D1)  da Digispark. Estes pinos serão ligados aos pinos RX e TX do HC-05, respectivamente. 

Utilize o seguinte esquema de conexão para interligar a Digispark e o módulo HC-06. No led conectado à porta digital D2, foi usado um resistor de 330 ohms.

Observe que no pino RX do módulo HC-05 estou usando um divisor de tensão com resistores, já que na Digispark o nível de sinal é de 5V, e no módulo bluetooth o nível de sinal é 3.3V. Esse divisor de tensão vai então evitar que o pino RX do HC-05 trabalhe além da sua capacidade, o que poderia danificar o componente. Utilizei resistores de 68 e 130 ohms, mas você pode adaptar aos resistores que tiver em mãos. Utilize a calculadora deste link para ajustar o circuito de acordo com os componentes que você possuí.

Acionando a Digispark através de bluetooth

As instruções de configuração inicial da Digispark com IDE Arduino você encontra no post Como programar a Digispark ATtiny85 com IDE Arduino. Nesse processo de configuração, serão instaladas, entre outras, as bibliotecas SoftSerial.h e TinyPinChange.h, usadas no programa a seguir.

Carregue o programa na sua Digispark, não esquecendo de primeiro desconectar a Digispark do seu computador ao compilar o programa, reconectando-a quando solicitado pela IDE (Plug in Device Now, ou Conecte o dispositivo agora):

Vamos ao programa:

//Programa: Digispark com modulo bluetooth HC-05
//Autor: Arduino e Cia

#include <SoftSerial.h>
#include <TinyPinChange.h>

//Cria a serial nos pinos digitais 0 e 1
SoftSerial MinhaSerial(0, 1); // RX, TX

//Buffer para armazenamento do caracter
char buf;   

void setup() 
{
  //Inicializa a interface serial
  MinhaSerial.begin(9600);
  //Define o pino digital 2 como saida
  pinMode(2, OUTPUT);
}

void loop()
{
  while(MinhaSerial.available() > 0)
  {
    buf = MinhaSerial.read();
    //Caso seja recebido o caracter L, acende o led
    if (buf == 'L' || buf =='l')
    {
      digitalWrite(2, HIGH);
      //Envia mensagem pela serial
      MinhaSerial.println("Led ligado!");
    }
    //Caso seja recebido o caracter D, apaga o led
     if (buf == 'D' || buf =='d')
    {
      digitalWrite(2, LOW);
      MinhaSerial.println("Led desligado!");
    }
  }
}

Para testar a comunicação, vamos utilizar no smartphone um programa chamado BluetoothSPP (download). Ele faz a comunicação do celular com o HC-05 recebendo e enviando comandos via serial.

Com o módulo bluetooth HC-05 previamente pareado ao smartphone, abra o BluetoothSPP, selecione o módulo na lista de dispositivos e selecione a opção CMD Line Mode.

Envie os comandos L e D para ligar e desligar, respectivamente, o led conectado na porta digital 2.

5/5 - (3 votos)

Related posts

Como usar o display matriz 16×8 TM1640 com Arduino

by Arduino e Cia
5 anos ago

Primeiros passos com Arduino Ethernet shield

by Arduino e Cia
12 anos ago

Contador com display 7 segmentos 3 dígitos

by Arduino e Cia
11 anos ago
Sair da versão mobile