Índice:

OldMan e Bluetooth2: 4 etapas
OldMan e Bluetooth2: 4 etapas
Anonim
OldMan e Bluetooth2
OldMan e Bluetooth2

Então, este Lazy Old Geek (L. O. G.) finalmente conseguiu um módulo Bluetooth HC05 da AliExpress.com. Eu pedi um depois de escrever este Instructable:

www.instructables.com/id/OldMan-and-Blueto…

Bem, passei várias horas tentando fazer isso funcionar no modo de comando, sem sucesso. Eu até destruí um módulo HC05 (provavelmente aplicando tensões erradas), então tive que comprar outro.

DICA: O modo de comando está se comunicando com o próprio módulo HC05 ou HC06. O modo de comunicação está falando com outro dispositivo Bluetooth.

O que eu encontrei são muitas diferenças entre o HC05 e o HC06. O HC05 pode ser mestre ou escravo, o HC06 é somente escravo. Basicamente, um mestre pode falar com um escravo, dois escravos não podem falar um com o outro. O HC05 e o HC06 possuem comandos diferentes. O HC05 deve ser configurado por hardware para entrar no modo de comando, ele pode ter diferentes taxas de transmissão para comunicação e modo de comando.

O HC06 está sempre em modo de comunicação e comando. Definir a taxa de transmissão para um mudará o outro.

DICA: Acompanhe isso como eu não fazia e tive alguns problemas.

DICA: Diferentes HC05s e HC06s podem ser diferentes dos que eu tenho.

O HCO6 executará comandos, mas nem sempre mostra resultados alterados, por exemplo Mudança de nome.

Etapa 1: Avaliação / modificação

Avaliação / modificação
Avaliação / modificação
Avaliação / modificação
Avaliação / modificação
Avaliação / modificação
Avaliação / modificação

Em anexo está um esquema HC05 semelhante ao meu. Duas diferenças que eu sei, são que há um resistor de 2,2 K entre PIO11 (34) e o pino EN e o regulador de 3,3 V é um pacote de 3 pinos e não tem um pino CE. A imagem em anexo é um esquema marcado para o que eu acho que tenho.

Para fins de programação, o que é importante é que a chave do pino 34 seja conectada ao pino EN por meio de um resistor de 2,2K. (Também está conectado ao botão de pressão, o outro lado está conectado a 3,3 V)

O estoque HC05 requer energia de 5 V, embora funcione com sinais de 3,3 V, então modifiquei meu HCO5 para usar 3,3 V. Eu removi o regulador de 3,3 V e executei um jumper do pino VCC diretamente para 3,3 V. Isso é mostrado no esquema modificado e na minha imagem HC05 modificada.

A propósito, o HC05 Command Set.pdf anexado contém algumas informações valiosas sobre o uso do HC05. Infelizmente, ele não é muito amigável.

Etapa 2: Programação do HC05

Programando o HC05
Programando o HC05
Programando o HC05
Programando o HC05

Decidi que a maneira mais fácil de usar o HC05 era conectá-lo a um de meus adaptadores seriais CP2102 de 3,3 V como fiz em Old Man And Bluetooth Instructable com um HC06. Veja a imagem e o esquema.

DICA IMPORTANTE: Para ligar o HC05 no modo de comando, o pino PIO11 (34) precisa estar alto antes que 3,3 V seja aplicado. O pino EN no meu HC05 está conectado ao PIO11 por meio de um resistor de 2,2K, então ele só precisa ser conectado a 3,3V. O esquema mostra isso como os pinos do programa, mas apenas coloque um jumper de 3,3 V para o pino EN. Certifique-se de fazer isso antes de ligar a energia. No meu, você pode dizer se está no modo de comando porque o LED HC05 piscará lentamente. Se estiver piscando rápido, você está no modo de pareamento e precisa tentar novamente.

DICA: O HC05 no modo de comando sempre fala a uma taxa de transmissão de 38400. Todos os comandos são capitalizados e precisam ser seguidos por um CR e LF. (Isso é diferente do HC06)

DICA: O formato do comando é muito rígido. Sempre use bonés. Todos eles começam com “AT”. Siga-os exatamente, você não pode adicionar espaços onde eles não são mostrados.

Inicie o Arduino. Vá para “Ferramentas” “Porta” e selecione a porta Com à qual o CP2102 está conectado.

Abra o Monitor Serial. Na parte inferior da janela, selecione “Ambos NL e CR” e “38400 baud”. (NL significa New Line, que é o mesmo que LF, que é Line Feed).

No topo, há uma caixa ao lado do botão Enviar, clique nela.

No seu PC, ative Caps Lock

Digite AT

A janela grande deve exibir “OK”.

Você está se comunicando no modo de comando

Alguns comandos que funcionam no meu

NO

AT + RESET

AT + VERSION?

AT + NAME?

AT + ADDR? ADDR: 98D3: 31: F5CB41

AT + NAME = BT1 Isso muda o nome para BT1

AT + ROLE? 0 = Escravo 1 = Mestre

Etapa 3: HC06 revisitado

HC06 revisitado
HC06 revisitado

Uma das principais diferenças entre o HC05 e o HC06 é que o HC05 pode ser mestre ou escravo, enquanto o HC06 é apenas escravo. Isso significa que você pode conversar entre um HC05 e um HC06. No entanto, existem muitas outras diferenças.

Embora eu pudesse ter usado um Arduino para configurar meu HC06, optei por usar um 3.3v CP2102. Ver foto

Conexões

CP2102 HC06

Gnd Gnd

Vcc Vcc

TXD RXD

RXD TXD

Este é basicamente o mesmo que o HC05, exceto que meu HC06 tem apenas quatro pinos.

Meu CP2102 foi modificado para fornecer 3,3 V

Meu HC06 foi modificado para aceitar 3,3 V

O CP2102 USB está conectado ao meu PC. No meu PC, estou usando o IDE Arduino.

Selecione a “Porta” correta e abra o Monitor Serial.

No meu HC06, o LED vermelho está piscando rapidamente, o que indica que ele está pronto para emparelhar, mas também pode receber comandos.

Algumas dessas informações vieram de Martyn Currey:

www.martyncurrey.com/arduino-and-hc-06-zs-0…

Portanto, cada tipo de HC06 pode ser diferente, o meu retorna a VERSÃO linvorV1.5

Para meu HC06 (e provavelmente todos eles), não há nenhum procedimento especial para colocá-lo no modo de comando. Aparentemente, se não estiver emparelhado, você sempre pode enviar comandos pela porta serial.

DICA: você não pode enviar comandos para nenhum módulo Bluetooth (que eu conheça) via Bluetooth.

Abra o Monitor Serial

Clique na primeira caixa na parte inferior do Monitor serial e defina como "sem fim de linha"

Inicialmente, minha taxa de transmissão era de 9600 baud

No seu PC, ative o Caps Lock

Na caixa superior digite AT

Digite Enter ou toque no botão “Enviar”

A tela deve exibir OK

DICA: Se você não obtiver um OK, pode ser porque a taxa de transmissão foi alterada ou está diferente. Você pode tentar vários, até que, com sorte, encontre o correto.

NOTA: Enviando vários comandos, os dados de resposta não mudam para a próxima linha. Na parte inferior, você pode clicar em Limpar saída.

Comandos que funcionam para mim:

Resposta de Comando

AT + VERSÃO OKlinvorV1.5

AT + NAMEFred retornaOKsetname

(Não informa o nome, mas se estiver conectado por Bluetooth, ele aparecerá.)

NOTA: se você alterar o nome, o nome antigo será exibido em seu smartphone até que você desemparelhe e volte a emparelhar.

AT + PINxxx Ainda não tentei. O padrão é 1234

AT + BAUD8 altera a taxa de transmissão para 115200

A resposta é a taxa de transmissão, por exemplo 115200

(Depois de alterar a taxa de bauds, você deve alterar a taxa de bauds do Serial Monitor para 115200 para enviar outros comandos.

Opções de taxa de transmissão

1 1200

2 2400

3 4800

4 9600 (padrão)

5 19200

6 38400

7 57600

8 115200

9 230400

A 460800

B 921600

C 1382400

NOTA: Não tentei mais do que 8 115200. Já ouvi falar de pessoas que tentam taxas mais altas com resultados ruins.

Os outros comandos que deveriam funcionar, mas não foram testados:

AT + PN sem verificação de paridade (padrão)

Verificação de paridade ímpar AT + PO

AT + PE mesmo verificação de paridade

IMPORTANTE: neste ponto, eu sugiro que você escolha um nome exclusivo e o insira. Eu também sugiro que você decida a taxa de transmissão que deseja se comunicar, coloque-o e marque seu HC06 com ele.

Etapa 4: Configurando HC05 para HC06

Ok, este Instructable foi muito útil para mim:

www.instructables.com/id/How-to-Configure-…

Minha configuração:

SLAVE encontrando endereço

HC06 com CP2102 (automaticamente em modo de comando)

Conecte o cabo USB CP2102 para alimentar o HC06.

O LED HC06 deve piscar rápido (modo de emparelhamento).

No smartphone, abra as configurações

Vá para Bluetooth

Procure por um novo dispositivo

Se você vir algo como HC06 ou o nome que você deu, selecione isto.

Você provavelmente verá uma sequência de números como 00: 12: 09: 27: 19: 13, provavelmente é isso.

Anote este endereço. (O número é seu endereço único)

Selecione-o

Quando for solicitado um PIN, digite 1234.

O nome deve ser exibido.

Se você ainda não tiver o endereço, em “Dispositivos conectados anteriormente” selecione o nome.

Clique em Informações, o endereço deve ser exibido. Anotá-la.

Se não aparecer, saia da configuração e abra o aplicativo Bluetooth Terminal HC-05.

Em Dispositivos emparelhados, encontre o nome, o endereço deve estar abaixo dele, anote-o.

Configuração de escravo

Se o LED HC06 não estiver piscando, desligue e ligue a alimentação para colocá-lo de volta no modo de emparelhamento.

Inicie o Arduino

Em “Ferramentas” “Porta” Selecione a porta Com correta

Abrir Serial Monitor

Na parte inferior desta janela

Selecione “Sem fim de linha” e “9600 baud”

MESTRE

HC05 com CP2102 definido em modo de comando (EN com jumpers alto)

Conecte o cabo USB do CP2102 ao PC

Eu descobri que posso abrir dois Arduinos

No segundo Arduino, selecione a porta Com correta para HC05

Abrir Serial Monitor

Na parte inferior da janela

Selecione “Ambos NL&CR” e “38400 baud”

O seguinte é do Instructable acima

Configuração Mestre

Os comandos AT necessários para definir a configuração:

RESPOSTA DE COMANDO O que faz

AT + ROLE = 1 OK Definir HC05 como mestre

AT + CMODE = 1 OK Conecte ao endereço específico

NOTA: O endereço HC06 provavelmente está formatado assim 00: 12: 09: 27: 19: 13

O comando BIND espera este 0012, 09, 27193 (você tira os dois-pontos, pega os primeiros quatro números, depois a vírgula, os próximos dois números, depois a vírgula e os últimos seis números)

AT + BIND = 0012, 09, 271913 OK Conecta / liga com HC06

(A propósito, AT + BIND? Responde com + BIND: 12: 9: 271913)

(Você deseja que a velocidade de comunicação do HC05 seja igual à do HC06) por exemplo:

AT + UART = 115200, 0, 0 OK Baud rate 115200 (1º bit superior, sem paridade)

Para testar as comunicações:

Remova o jumper HC05 EN, desligue e ligue.

Quando os dois estiverem conectados, o LED HC05 piscará duas vezes a cada poucos segundos, o LED HC06 permanecerá aceso continuamente.

Defina ambas as portas de comunicação com a mesma taxa de transmissão (seja qual for a configuração)

Defina ambos como “Ambos NL&CR”

Digite algo em Serial Monitor1, Serial Monitor2 deve exibi-lo.

Digite algo em Serial Monitor2, Serial Monitor1 deve exibi-lo.

Parabéns, você está se comunicando via Bluetooth

Agora, o Instructable acima tem alguns esboços de como usar os módulos com o Arduino. Para este Instructable, não vou me aprofundar nisso.

Recomendado: