domingo, 18 de outubro de 2015

Aplicativo para Módulo Bluetooth com PIC - Tutorial


Sistemas de Domótica de baixo custo com o PIC
Que tal conectar seu Smartphone em um microcontrolador para automatizar sua casa? Verifique como fazer uma conexão Bluetooth com um microcontrolador e Smartphone. Aprenda a utilizar o módulo Bluetooth HC-6 e envie comandos através do seu smartphone para ligar e desligar equipamentos.  Deixe sua casa HI-TEC  com o seu Smartphone




 

Introdução ao Projeto - Aplicativo para Módulo Bluetooth com PIC


O telefone celular do tipo Smartphones é considerado por muitas pessoas como uma extensão do corpo.  As aplicações vão além do uso das chamadas telefônicas, pois recursos de interatividade são cada vez mais comuns como redes sociais, e-mail e internet.  Mas que tal deixar seu Smartphone ainda mais interativo através do controle automático de sua residência na palma de sua mão?

Essa ideia de automatizar os ambientes residenciais e comerciais é conhecido como domótica e vem se popularizando em pouco tempo.  Iremos nesse artigo mostrar de forma simples como conectar um microcontrolador ao seu Smartphone para enviar comandos através de uma comunicação Bluetooth.

O Projeto 


O objetivo do projeto é a realização de um aplicativo que gerencie uma comunicação Bluetooth entre um Smartphone e microcontrolador para enviar comando simples de ligar e desligar um LED. Para facilitar a compreensão da maioria dos leitores, o projeto tem como objetivo a simplicidade e fornecer os conceitos básicos para o desenvolvimento da ideia principal que é comandar equipamentos como luminárias, ventiladores entre outros. 

Circuito microcontrolado


O circuito que recebe os comando do Smartphone é constituído basicamente por um microcontrolador PIC 16f876a, Módulo Bluetooth HC-6 e um LED para visualização do comando de Liga/Desliga.  
A Figura 1 apresenta o diagrama elétrico do circuito, as ligações são de baixa complexidade e podem ser montadas facilmente em um Protoboard. A Tabela 1 apresenta a lista de componentes utilizados no circuito.

Como cnectar o Módulo Bluetooth HC-06 com o PIC e Arduino
Figura 1 - Diagrama elétrico do circuito PIC + Bluetooth.


Tabela 1 - Lista de Componentes.
Smartphone e microcontroaldor



A montagem final do protótipo em Protoboard  é ilustrada na Figura 2.

Microcontrolador PIC e Módulo Bluetooth HC-06
Figura 2 - Montagem final do circuito PIC+ Módulo Bluetooth em protoboard.

 Módulo Bluetooth HC-06



O módulo Bluetooth HC-06 é do tipo escravo, o que permite somente receber uma conexão de outro dispositivo. A tensão de alimentação o módulo é entre 3,3V a 6V. Os pinos de comunicação serial funcionam com níveis lógicos de 3,3V e com taxa de transmissão configuráveis via software de 1200, 2400, 4800, 9600, 19200 e 38400. A corrente consumida durante operação de trabalho é de 40mA e de 1mA em stand-by.
Configuração do Módulo Bluetooth HC-06

O módulo Bluetooth HC-06 vem com uma configuração padrão dado por: Modo escravo, taxa de transmissão de 9600, nome HC-06 e Código PIN 1234. Todavia é possível alterar essas configurações de fábrica através de comando de strings (caracteres) enviados via software.  A Tabela 2 apresenta os possíveis comandos para o módulo HC-06.

Tabela 2 - Comando de configuração do Módulo Bluetooth HC-06
PIC + Módulo Bluetooth HC-06

Para alterar a taxa de transmissão, devemos mandar a linha de instrução: AT+BAUD# e o módulo retorna uma mensagem de confirmação.  Onde "#" pode ser um numero de 1 a 6.

                Enviado: “AT+BAUD#”
                Recebido: "OKbaud"
                                                                   
                                                                        1: 1200
                                                                        2: 2400
                                                                        3: 4800
                                                                        4: 9600
                                                                        5: 19200
                                                                        6: 28400

Exemplo: Envio: AT+BAUD1
                 Recebido: OK1200

A configuração do módulo pode ser feita pelo próprio microcontrolador ou através de uma porta serial do PC.
Conexão entre o Microcontrolador e o Módulo Bluetooth HC-06
Para que a comunicação serial RS232 entre o módulo Bluetooth e o microcontrolador funcione corretamente, resistores de 1,5 e 2,2 são necessários para adequar o nível de tensão de 5V para os 3,3V evitando assim a queima do módulo. Esses resistores funcionam como um divisor de tensão, como apresentado na Figura 3.
Conversor de 5V para 3,3V
Figura 3 - Divisor de tensão para compatibilizar níveis de tensão.

Programação do Microcontrolador PIC 16f876a


A programação do microcontrolador PIC foi feita na linguagem C através do ambiente de programação da CCS. O código é apresentado a seguir. O Código fonte pode ser também baixado no link: Codigo_fonte 
O código fonte possui os devidos comentários para o entendimento do programa.
  
Biblioteca do Módulo Bluetooth HC-06 para o PIC


Criando o aplicativo para Android no App Inventor


O App Inventor para Android é uma plataforma desenvolvimento online e originalmente fornecida pelo Google, mas foi descontinuada em agosto de 2011, sendo mantida pela MIT sob o nome de MIT App Inventor. O ambiente de programação do App Inventor permite a criação de aplicativos, mesmo que o usuário  tenha noções mínimas em programação de computadores. A plataforma possui uma interface gráfica que permite os desenvolvedores a utilizarem a técnica drag and drop (arrastar e soltar) para os elementos gráficos e criar  aplicativos para serem utilizados em muitos dispositivos móveis. Para utilizar o MIT App Inventor é necessário ter uma conta Google GMAIL.

As aplicações são desenvolvidas na aba Designer, onde o usuário escolhe quais os componentes serão utilizados em sua aplicação. Na aba Block Editor, o usuário monta os blocos de programa que especificam como os componentes iram se comportar. Quando o aplicativo estiver concluído o desenvolvedor pode compila-lo na opção Build e instala-lo no Smartphone. 

As Figuras 4 e 5 apresenta o diagrama de blocos do programa desenvolvido. A Figura 4 mostra os blocos associados aos eventos de click sobre os botões Liga LED e Desliga LED. Como ilustrado na Figura 4 o botão Liga.click quando acionado, envia a codificação da letra "l" em ASCII por intermédio da chamada da função BluetoothClient1.SendText e fazendo como o LED acenda. O Botão Desliga.click possui a mesma funcionalidade porem para apagar o LED.
Como fazer um App para android
Figura 4 - Botões Liga e Desliga LED.

O componente ListPicker2.BeforePicking quando clicado seleciona  o evento BluetoothClient1.AdresseAndNames e abre uma caixa de seleção para o usuário escolher qual dispositivo Bluetooth pareado utilizar. Em seguida o evento ListPicker1.AfterPicking conecta o Bluetooth do Smartphone ao Bluetooth do módulo. O botão Desconecta.Click desativa as conexões entre os dois aparelhos, chamando a função BluetoothClient1.Disconnect e provoca o encerramento do aplicativo. 


Como fazer um App para android
Figura 5 - Função de conexão e desconexão do bluetooth.

A Figura 6 apresenta a visualização da tela gráfica projetada. O aplicativo para Android desenvolvido pode ser baixado para a instalação no Smartphone pelo Link: App_LIGA_DESLIGA_LED


Como fazer um App para Android
Figura 6 - Tela gráfica projetada.


Confiram o Vídeo do funcionamento !




20 comentários:
  1. Parabéns pelo projeto e iniciativa !

    Foi o melhor exemplo em PIC18 que vi. Por acaso vc já trabalhou com algum outro módulo Bluetooth, estou estudando atrás de um que tenha um bom modo default pra uma aplicação relativamente simples.

    ResponderExcluir
    Respostas
    1. Boa noite Guilherme,
      Eu acredito que os módulos "bluetooth HC-06" e "bluetooth HC-05" são os melhores, pois eles são bem difundidos na internet e com boa documentação do fabricante além de serem relativamente baratos.

      Obrigado pela sua visita ao blog e pelo seu comentário!

      Excluir
  2. Olá amigo, gostaria de enviar um sinal digital (leitura de um sensor conectado a um PIC) para outro PIC usando dois módulos bluetooth hc-05 rs232. Já configurei um como mestre e o outro como escravo. Gostaria de saber como posso desenvolver essa transmissão em termos de programação usando linguagem C. Abraços.

    ResponderExcluir
  3. Bom dia Artur,
    Você dever usar as funções putc() enviar e getc() para receber no compilador CCS.

    ResponderExcluir
  4. Não consigo entender uma coisa, no pic vc diz q o rx é no 18 e o tx no 17, mas vc liga o tx no 18 e rx no 17. Qual ta certo?

    ResponderExcluir
    Respostas
    1. Bom dia Renata,
      Sim é isso mesmo! O pino Tx transmite e o pino Rx recebe, logo a informação transmitida módulo deve chegar até o pino que recebe no PIC. Ou seja Tx é uma saída e o Rx é uma entrada, por isso devemos cruzar esse pinos.

      Obrigado pela sua visita !

      Excluir
  5. esses primeiros # dão erro ao compilar, pode me explica -los? Uso o MPLAB.

    ResponderExcluir
    Respostas
    1. Bom dia Kauanay,
      Para usar o MPLAB e programar em C você deve instalar um plugin do CCS C Compiler.

      Excluir
    2. Mesmo instalando o plugin do CCS C Compiler da erro, pode me dizer qual programa vc usa?

      Excluir
    3. Eu uso justamente o mplab com o plugin do CCS C. Você pode copilar diretamente pelo CCS C sem problemas normalmente...

      Excluir
    4. Eu uso justamente o mplab com o plugin do CCS C. Você pode copilar diretamente pelo CCS C sem problemas normalmente...

      Excluir
    5. Eu uso justamente o mplab com o plugin do CCS C. Você pode copilar diretamente pelo CCS C sem problemas normalmente...

      Excluir
  6. boa tarde, gostei de ver este projecto, gostaria que me explicasse uma dúvida, como instá-lo o ficheiro APK no meu smartphone?
    só essa parte é que não percebi.

    ResponderExcluir
    Respostas
    1. Oi Sérgio,
      Você deve transferir o arquivo para o seu smartphone, cole-o em uma pasta que você usa frequentemente... Ai depois é só instalar...

      Excluir
  7. Bom dia como poderei aumentar botôes na aplicação de modo a poder aumentar e diminuir o brilho do led? Pois seria bastante interessante

    ResponderExcluir
    Respostas
    1. Sim,
      A variação do brilho do led pode ser feita por uma modulação de largura de pulso (PWM).

      Excluir
  8. Nossa velho, você salvou minha vida, estava precisando de um tutorial desses para terminar um projeto da facul.

    Muito obrigado!
    Abraço!!

    ResponderExcluir
  9. boa noite. tem possibilidade de fazer mais de um liga desliga por esse modulo? se sim no caso teria que fazer no aplicativo?

    ResponderExcluir
    Respostas
    1. Oi,
      Sim! Uma nova função deve ser criada no aplicativo e também no microcontrolador.

      Excluir

Digite seu cometário...
(Seu comentário será visível apos a moderação)

Related Posts Plugin for WordPress, Blogger...
Paginas