arduino - módulo bluetooth jy-mcu

16
Arduino Módulo Bluetooth JY-MCU Bernardo Amaral

Upload: bernardo-amaral

Post on 14-May-2015

6.787 views

Category:

Technology


7 download

DESCRIPTION

Tutorial sobre como enviar comandos via Bluetooth (Windows), e como realizar uma comunicação com o módulo Bluetooth JY-MCU.

TRANSCRIPT

Page 1: Arduino - Módulo Bluetooth JY-MCU

ArduinoMódulo Bluetooth JY-MCU

Bernardo Amaral

Page 2: Arduino - Módulo Bluetooth JY-MCU

Tópicos:- Introdução;- Comunicação Bluetooth no Windows;- Desenvolvendo nossa aplicação exemplo;- Conclusões;

Page 3: Arduino - Módulo Bluetooth JY-MCU

IntroduçãoBluetooth é um protocolo padrão de comunicação primariamente projetado para baixo consumo de energia com baixo alcance, (dependendo da potência: 1 metro, 10 metros, 100 metros) baseado em microchips transmissores de baixo custo em cada dispositivo.O Bluetooth possibilita a comunicação desses dispositivos uns com os outros quando estão dentro do raio de alcance. Os dispositivos usam um sistema de comunicação via rádio, por isso não necessitam estar na linha de visão um do outro, e podem estar até em outros ambientes, contanto que a transmissão recebida seja suficientemente potente.

Classe Potência máxima permitida (mW/dBm)

Alcance (Aproximadamente)

Classe 1 100 mW (20 dBm) até 100 metros

Classe 2 2.5 mW (4 dBm) até 10 metros

Classe 3 1 mW (0 dBm) ~ 1 metro

Page 4: Arduino - Módulo Bluetooth JY-MCU

IntroduçãoDeve-se ressaltar que, na maioria dos casos, o alcance efetivo dos dispositivos de classe 2 é estendido se eles se conectam a dispositivos de classe 1, se comparados com redes puras de classe 2. Isso pode ser obtido pela alta sensibilidade e potência de transmissão do dispositivo de classe 1. A alta potência de transmissão do dispositivo de classe 1 permite a recepção da alta potência pelo dispositivo de classe 2. Além disso, a alta sensibilidade do dispositivo de classe 1 permite a recepção da baixa potência de transmissão de força dos dispositivos de classe 2, permitindo assim a operação de dispositivos de classe 2 a grandes distâncias. Dispositivos que possuem um amplificador de potência na transmissão têm uma sensibilidade de recepção melhorada, e existem antenas altamente otimizadas que normalmente alcançam distâncias de 1 km usando o padrão Bluetooth classe 1.

Versão Taxa de Transmissão

Versão 1.2 1 Mbit/s

Versão 2.0 + EDR 3 Mbit/s

Versão 3.0 24 Mbit/s a.m.m. Mudança da Faixa de Transmissão para 802.11

Page 5: Arduino - Módulo Bluetooth JY-MCU

Ligue o vcc no 5v do Arduino, o GND no GND mesmo, no caso do TXD e RXD temos que tomar o seguinte cuidado, o TXD vai ligado na saída 0 (DX) do Arduino, e o RXD vai ligado à saída 1 (TX), deve ser feito dessa forma, se não ela não irá funcionar.Após ligado corretamente, e o Arduino ligado à uma fonte de alimentação ou USB, o módulo Bluetoth deverá ficar piscando um led vermelho, indicando que está aguardando uma conexão.

Comunicação Bluetooth no Windows

Page 6: Arduino - Módulo Bluetooth JY-MCU

O adaptador que estou utilizando, é encontrado no seguinte link do site dealextreme: http://dx.com/p/super-mini-bluetooth-2-0-adapter-dongle-vista-compatible-11866Após realizar a instalação do driver bluetooth, no meu caso o adaptador se instalou com o driver genérico do Windows 8. Surgirá um ícone na bandeja do sistema (próximo ao relógio).

Clique com o botão direito nesse ícone, e então clique em "Ingressar em uma rede pessoal".

Comunicação Bluetooth no Windows

Page 7: Arduino - Módulo Bluetooth JY-MCU

A tela de Dispositivos e impressoras será exibida, então clique em "Adicionar um dispositivo Bluetooth" como mostra o "Passo 1".

A tela de Adicionar Dispositivo será exibida, busque pelo dispositivo chamado "LINVOR", então clique em Avançar, como mostra o Passo 3 na imagem.

Comunicação Bluetooth no Windows

Page 8: Arduino - Módulo Bluetooth JY-MCU

Então sabemos que o nome do dispositivo padrão é LINVOR a senha padrão (PIN) do dispositivo é 1234,clicamos em avançar e deixamos o sistema concluir a instalação.

Comunicação Bluetooth no Windows

Page 9: Arduino - Módulo Bluetooth JY-MCU

Se tudo foi instalado corretamente, o dispositivo LINVOR será listado na seção de "Dispositivos e Impressoras do Windows, (PS: no meu caso renomeei ele para FG), então clique com o botão direito nele, e então em "Propriedades".

Comunicação Bluetooth no Windows

Page 10: Arduino - Módulo Bluetooth JY-MCU

Então clique na aba "Hardware", e ali podemos ver a porta de comunicação que o dispositivo está usando, no meu caso está conectado usando a COM11.

Comunicação Bluetooth no Windows

Page 11: Arduino - Módulo Bluetooth JY-MCU

Agora precisamos do software PuTTY, que é encontrado no endereço: http://www.putty.org (procure na seção de downloads por putty.exe).Ao executar o programa, a seguinte tela será exibida:

Escolha o tipo de conexão Serial, informe o nome da porta no campo "Serial line", deixe a velocidade (speed) em 9600, e finalmente clique em Open.Então uma tela preta irá aparecer.O módulo JY-MCU deverá parar de piscar, e o LED permanecer ativo, então isto indica que conseguimos uma conexão com o mesmo.

PS: Os comandos digitados nesta tela não serão exibidos como retorno.

Comunicação Bluetooth no Windows

Page 12: Arduino - Módulo Bluetooth JY-MCU

Para nosso exemplo precisaremos:- Arduino;- Protoboard;- Fios de conexão;- LED;- Resistor de 220 ohm;

Função: Fazer o LED acender e apagar com comandos enviados via bluetooth.

Desenvolvendo nossa aplicação exemplo

Page 13: Arduino - Módulo Bluetooth JY-MCU

Ligamos o catodo (lado mais curto do LED) no resistor, que este será ligado ao GND do Arduino.O anodo (lado mais comprido, lado positivo do LED), é ligado diretamente à uma porta digital do Arduino, no exemplo utilizaremos a porta 13.

Desenvolvendo nossa aplicação exemplo

Page 14: Arduino - Módulo Bluetooth JY-MCU

int led = 13; //definimos a variável com o número da porta utilizadovoid setup() { pinMode(led, OUTPUT); //inicializamos a comunicação com o pino Serial.begin(9600); //definimos a velocidade de comunicação com o módulo bluetooth}

void loop() { char c = Serial.read(); //capturamos o caractere inserido pela comunicação bluetooth if (c == 'a') { digitalWrite(led, HIGH); //liga o LED } if (c == 'b') { digitalWrite(led, LOW); //desliga o LED } delay(1000); //timer pro LED permanecer aceso}

Desenvolvendo nossa aplicação exemplo

Page 15: Arduino - Módulo Bluetooth JY-MCU

Testando nossa aplicação:Uma vez compilado e enviado para a placa o nosso código (clicando no ícone com uma seta na barra de ferramentas do IDE), abriremos o monitor serial.Digite os comandos 'a' seguido de ENTER e 'b' seguido de ENTER para ligar e desligar o LED (sem aspas).

Uma dica: caso o compilador dê um erro ao compilar, alegando falha de comunicação, com a força DESLIGADA, remova o cabo VCC (5V) do bluetooth. Ligue o Arduino na USB e tente compilar novamente.

Para utilizar esta aplicação via Bluetooth, o nosso Arduino não poderá estar ligado à entrada USB, ele deve ser alimentado por uma bateria de 9V, ou até mesmo uma de 12V, e o módulo Bluetooth devidamente conectado (lembre-se de religá-lo ao pino 5V do Arduino).Então realizamos a conexão via PuTTY, como foi ensinado anteriormente, e o comandamos remotamente pelo terminal.

Desenvolvendo nossa aplicação exemplo

Page 16: Arduino - Módulo Bluetooth JY-MCU

ConclusõesShields wi-fi pra arduino são bem caros, e o Bluetooth pode ser uma boa alternativa, também é mais fácil de se realizar a conexão, como visto no exemplo desse artigo.

O exemplo que demonstrei é extremamente simples, mas com a idéia passada pelo exemplo, podemos abrir um leque para diversas idéias, como controle de automação residencial, ou até mesmo um sistema que controla outro sistema.

A minha idéia nesse tutorial foi demonstrar como realizar uma conexão efetiva via Bluetooth com Arduino, que no meu caso foi custoso encontrar uma solução correta com base no que havia encontrado de tutoriais na internet. Também percebemos que o módulo JY-MCU utiliza uma simples comunicação via Serial, sem precisar incluir pacotes como eu já havia visto em diversos tutoriais.

謝謝! (xièxie!)