Pular para o conteúdo principal

Xadow - BLE (Dual Model) v1.0

some_text

Xadow - BLE (dual model) v1.0 usa o chip Bluetooth de modo duplo CSR, com o microcontrolador de arquitetura ARM que suporta instruções AT. Os usuários podem desenvolver de forma flexível de acordo com a taxa de baud serial, nome do dispositivo e senha de pareamento.

Recursos


  • Versão BT: Especificação Bluetooth V4.0 e BLE
  • O número máximo de bytes enviados e recebidos por UART é 512
  • Outro dispositivo para o módulo no modo SPP: 90 bytes por pacote
  • Outro dispositivo para o módulo no modo BLE: 20 bytes por pacote
  • Dois modos de transmissão de dados, modo balanceado e modo de alta velocidade
  • Frequência de trabalho: banda ISM de 2,4GHz
  • Método de modulação: GFSK (Gaussian Frequency Shift Keying)
  • Potência de RF: -23dbm, -6dbm, 0dbm, 6dbm.
  • Velocidade: Assíncrona: 3K Bytes
  • Síncrona: 3K Bytes
  • Segurança: Autenticação e criptografia
  • Serviço: Escravo SPP, Periférico BLE, UUID FFE0, FFE1
  • Alimentação: +3,3VDC 50mA
  • Longo alcance: SPP 30 metros, BLE 60 metros
  • Consumo: SPP 13,5mA, BLE 9,5mA
  • Temperatura de trabalho: –5 ~ +65 graus Celsius

Especificação


some_text
  • K2: Durante o estado conectado, será desconectado ao pressionar K2 por mais de 100ms. Durante o modo de suspensão, é possível restaurar as configurações de fábrica pressionando K2.
  • D1: O LED exibe dois modos de trabalho: em modo de suspensão ele pisca lentamente; em estado conectado ele permanece aceso continuamente.
  • J1&J2: O conector Xadow padrão.
cuidado

A tensão de alimentação deste módulo é 2,5V ~ 3,7V, maior que isso pode causar danos permanentes ao dispositivo. A velocidade de transmissão BLE é mais lenta do que a transmissão SPP, então selecionamos a menor na concepção, de acordo com o planejamento de velocidade de um produto BLE de modo duplo.

Instalação de Hardware


Conectando o Bluetooth ao PC através do Uart Bee

O Xadow - BLE possui uma interface Xadow padrão com passo de derivação; usamos um Xadow - Breakout para convertê-la em soquete Grove.

Como a interface Xadow é uma porta de simetria axial, é necessário obedecer à direção de montagem. Consulte a imagem abaixo.

some_text some_text

Conectando o Bluetooth à Xadow - Main Board

Conecte o Xadow BLE Slave à Xadow - Main Board e conecte a Main Board ao PC com um cabo USB.

Nota: ao conectar Xadow - BLE à Xadow Main Board, você deve se atentar à direção da conexão. O método de conexão é que o canto chanfrado de um módulo Xadow precisa se conectar ao ângulo reto de outro módulo (veja os quatro cantos de cada módulo Xadow).

some_text

Instruções de Software


Convenções

  • No modo EDR, apenas o escravo pode ser configurado, enquanto no modo BLE tanto o mestre quanto o escravo podem ser configurados.
  • Configuração padrão de fábrica:
    • Nome EDR HMSoft, papel de escravo, PinCode 1234
    • Nome BLE HMSoft, papel de escravo, PinCode 000000
    • Baud: 115200, N, 8, 1;
  • Formato de comando AT:
    • Formato de comando AT em maiúsculas, formato de string, sem qualquer outro símbolo (por exemplo, \r ou \n).
    • Qualquer comando incorreto não terá resposta.

Comandos AT

1. Comando de teste

SendReceiveParameter
ATOK/ER/Disconnect linkNone
  • Se o módulo não estiver conectado a um dispositivo remoto, receberá: “OK”
  • Se o módulo tiver um erro, receberá: “ER”
  • Se o módulo estiver conectado, o módulo será desconectado do dispositivo remoto; se “AT + NOTI” estiver configurado como 1, receberá uma string de informação.

2. Consultar endereço EDR do módulo

SendReceiveParameter
AT+ADDE?OK+ Get: MACNone

3. Consultar endereço BLE do módulo

SendReceiveParameter
AT+ADDB?OK+ Get: MACNone

4. Consultar/Definir modo de autenticação

SendReceiveParameter
Q: AT+AUTH?OK+ Get:[P1]P1: 0, 1, (Default: 0) / 0 – Sem autenticação / 1 – Deve ter autenticação
S: AT+AUTH[P1]OK+ Set:[P1]P1: 0, 1, (Default: 0)/ 0 – Sem autenticação / 1 – Deve ter autenticação
  • AT+AUTH0: permite fazer uma conexão insegura.
  • AT+AUTH1: toda conexão deve ter autenticação.

5. Consultar/Definir modo A para B

SendReceiveParameter
Q: AT+ATOB?OK+ Get:[P1]P1: 0, 1, (Default: 0)/ 0 – Não abrir ATOB/ 1 – Abrir modo ATOB
S: AT+ATOB[P1]OK+ Set:[P1]P1: 0, 1, (Default: 0)/ 0 – Não abrir ATOB/ 1 – Abrir modo ATOB

Este comando deve funcionar com o comando AT+MODE0. Quando o dispositivo A (modo SPP) se conecta ao módulo e o dispositivo B (modo BLE) também se conecta ao módulo, a string de dados do dispositivo A enviada ao módulo será enviada ao dispositivo B. A string de dados do dispositivo B enviada ao módulo também será enviada ao dispositivo A.

6. Consultar/Definir taxa de baud

SendReceiveParameter
Q: AT+BAUD?OK+ Get:[P1]P1: 1~7, (Default: 6)./ 1 - 4800 / 2 – 9600 / 3 – 19200 / 4 – 38400 / 5 – 57600 / 6 – 115200 / 7 - 230400
S: AT+BAUD[P1]OK+ Set:[P1]P1: 1~7, (Default: 6). / 1 - 4800 / 2 – 9600 / 3 – 19200 / 4 – 38400 / 5 – 57600 / 6 – 115200 / 7 - 230400

7. Limpar informações de pareamento

SendReceiveParameter
AT+BONDEOK+BONDELimpar informações de pareamento EDR
AT+BONDBOK+BONDBLimpar informações de pareamento BLE

O modo BLE ainda não oferece suporte a isso.

8. Limpar endereço do último dispositivo EDR conectado

SendReceiveParameter
AT+CLEAEOK+CLEAENone

9. Limpar endereço do último dispositivo BLE conectado

SendReceiveParameter
AT+CLEABOK+CLEABNone

10. Consultar/Definir modo de trabalho DUAL do módulo

SendReceiveParameter
Q: AT+DUAL?OK+ Get:[P1]P1: 0, 1, (Default: 0) / 0 – Permitir conexão dupla. / 1 – Permitir uma conexão.
S: AT+DUAL[P1]OK+ Set:[P1]P1: 0, 1, (Default: 0) / 0 – Permitir conexão dupla. / 1 – Permitir uma conexão.
  • AT+DUAL0: permite duas conexões ao mesmo tempo (SPP e BLE).
  • AT+DUAL1: permite apenas uma conexão ao mesmo tempo (SPP ou BLE)

11. Consultar/Definir chave de controle de fluxo por hardware

SendReceiveParameter
AT+FIOW?OK+ Get:[P1]P1: 0, 1,(Default: 0) / 0: Controle de fluxo por hardware desligado / 1: Controle de fluxo por hardware ligado
AT+FIOW[P1]OK+ Set:[P1]P1: 0, 1,(Default: 0) / 0: Controle de fluxo por hardware desligado / 1: Controle de fluxo por hardware ligado

12. Consultar/Definir modo de velocidade de transmissão de dados do módulo

SendReceiveParameter
AT+HIGH?OK+ Get:[P1]P1: 0, 1,(Default: 0)/ 0: Modo balanceado / 1: Modo de alta velocidade
AT+HIGH[P1]OK+ Set:[P1]P1: 0, 1,(Default: 0) / 0: Modo balanceado / 1: Modo de alta velocidade
  • No modo balanceado, equilibramos SPP e BLE com uma velocidade estável.
  • No modo de alta velocidade, não controlamos a velocidade, portanto o modo SPP terá alta velocidade.
  • No modo de alta velocidade, o módulo perde a função do pino RESETB, mas você ainda pode usar
  • o comando “AT+RESET” para reiniciar o módulo.

13. Informações de ajuda do sistema

SendReceiveParameter
AT+HELP?Help InformationNone

14. Consultar/Definir notificação de carregamento do módulo

SendReceiveParameter
AT+INIT?OK+ Get:[P1]P1: 0, 1,?, (Default: 0) / 0: Notificação de carregamento desligada / 1: Notificação de carregamento ligada
AT+INIT[P1]OK+ Set:[P1]P1: 0, 1,?, (Default: 0) / 0: Notificação de carregamento desligada / 1: Notificação de carregamento ligada

Quando “AT+INIT1” está configurado, após o módulo carregar, o módulo irá enviar a string “OK+INIT” pela UART.

15. Consultar/Definir modo de trabalho do módulo

SendReceiveParameter
Q: AT+MODE?OK+ Get:[P1]P1: 0, 1, (Default: 0) / 0 – Transmissão de dados. / 1 – Controle remoto.
S: AT+MODE[P1]OK+ Set:[ P1]P1: 0, 1, (Default: 0) / 0 – Transmissão de dados. / 1 – Controle remoto.
  • AT+MODE0: apenas transfere dados quando a conexão é estabelecida.
  • AT+MODE1: transfere dados e responde a comandos AT.

16. Consultar/Definir informações de notificação

SendReceiveParameter
Q: AT+NOTI?OK+ Get:[P1]P1: 0, 1, (Default: 0) / 0: Não notificar / 1: Notificar
S: AT+NOTI[P1]OK+ Set:[ P1]P1: 0, 1, (Default: 0) / 0: Não notificar / 1: Notificar
  • Após AT+NOTI1, o módulo enviará strings de conexão ou desconexão através da
  • UART quando o estado do módulo mudar:
  • OK+CONE ======== EDR conectado
  • OK+LSTE ========= EDR desconectado
  • OK+CONB========= BLE conectado
  • OK+LSTB ========= BLE desconectado
  • OK+LSTA ========= exceto desconectar, o módulo será reiniciado após 500 ms.

17. Consultar/Definir modo de notificação

SendReceiveParameter
Q: AT+NOTP?OK+ Get:[P1]P1: 0, 1; default: 0 / 0: sem endereço / 1: com endereço
Q: AT+NOTP[P1]OK+ Set:[ P1]P1: 0, 1; default: 0 / 0: sem endereço / 1: com endereço

Este comando deve funcionar com “AT+NOTI1”; se essa chave estiver ligada, quando o módulo conectar ou desconectar, a string de aviso incluirá o endereço remoto.

18. Consultar/Definir nome EDR do módulo

SendReceiveParameter
Q: AT+NAME?OK+ Get:[P1]P1: nome EDR do módulo, / Comprimento máximo é 12. / Padrão: HMSoft
Q: AT+NAME[P1]OK+ Set:[ P1]P1: nome EDR do módulo, / Comprimento máximo é 12. / Padrão: HMSoft

19. Consultar/Definir nome BLE do módulo

SendReceiveParameter
Q: AT+NAMB?OK+ Get:[P1]P1: nome BLE do módulo, / Comprimento máximo é 12. / Padrão: HMSoft
S: AT+NAMB[P1]OK+ Set:[ P1]P1: nome BLE do módulo, / Comprimento máximo é 12. / Padrão: HMSoft

20. Consultar/Definir status de saída de PIO1 (LED do sistema)e

SendReceiveParameter
Q: AT+PIO1?OK+ Get:[P1]P1: 0, 1 / 0: Saída desconectada 500ms High 500ms Low, saída conectada High. / 1: Saída desconectada Low, saída conectada High. / Padrão: 0
S: AT+ PIO1 [P1]OK+ Set:[ P1]P1: 0, 1 / 0: Saída desconectada 500ms High 500ms Low, saída conectada High. / 1: Saída desconectada Low, saída conectada High. / Padrão: 0

21. Consultar/Definir status de saída PIO

EnviarReceberParâmetro
Q: AT+PIO[P1]?OK+ Get:[P1][P2]P1: 2B (HM-12) / P2: 23 (HM-13) / 0: Saída em nível baixo / 1: Saída em nível alto / ?: Consultar
S: AT+ PIO[P1][P2]OK+ Set:[P1][P2]P1: 2B (HM-12) / P2: 23 (HM-13) / 0: Saída em nível baixo / 1: Saída em nível alto / ?: Consultar

22. Consultar/Definir código PIN EDR

EnviarReceberParâmetro
Q: AT+PINE?OK+ Get:[P1]P1: código EDR do módulo / Comprimento máximo: 6 / Padrão: 1234
S: AT+PINE[P1]OK+ Set:[P1]P1: código EDR do módulo / Comprimento máximo: 6 / Padrão: 1234

23. Consultar/Definir código PIN BLE

EnviarReceberParâmetro
Q: AT+PINB?OK+ Get:[P1]P1: código BLE do módulo / 000000~999999 / Padrão: 000000
S: AT+PINB[P1]OK+ Set:[P1]P1: código BLE do módulo / 000000~999999 / Padrão: 000000

24. Consultar/Definir bit de paridade UART

EnviarReceberParâmetro
Q: AT+PARI?OK+ Get:[P1]P1: 0, 1, 2, (Padrão: 0) / 0: Sem paridade / 1: Paridade par / 2: Paridade ímpar
S: AT+PARI[P1]OK+ Set:[P1]P1: 0, 1, 2, (Padrão: 0) / 0: Sem paridade / 1: Paridade par / 2: Paridade ímpar

25. Restaurar todos os valores de configuração para as configurações de fábrica

EnviarReceberParâmetro
AT+RENEWOK+RENEWNenhum

26. Reiniciar módulo

EnviarReceberParâmetro
AT+RESETOK+RESETNenhum

27. Consultar valor de RSSI BLE

EnviarReceberParâmetro
AT+RSSB?OK+RSSB: [P1]P1: valor de RSSI / 9999: Sem conexão / 9998: Tente mais tarde / 9997: Erro de leitura / Xxxx: valor de RSSI

Este comando deve ser usado depois que “AT+MODE1” estiver configurado. Este comando é usado somente pelo dispositivo Bluetooth remoto.

28. Consultar valor de RSSI EDR

EnviarReceberParâmetro
AT+RSSE?OK+RSSE:[P1] P1: valor de RSSI / 9999: Sem conexão / 9998: Tente mais tarde / 9997: Erro de leitura / Xxxx: valor de RSSI

29. Consultar endereço do último dispositivo EDR conectado

EnviarReceberParâmetro
AT+RADE?OK+Get:MAC AddressNenhum

30. Consultar endereço do último dispositivo BLE conectado

EnviarReceberParâmetro
AT+RADB?OK+Get:MAC AddressNenhum

31. Consultar/Definir função Master e Slave

EnviarReceberParâmetro
AT+ROLB?OK+ Get:[P1]P1: 0, 1 (padrão: 0) /0: Peripheral / 1: Central
AT+ROLB[P1]OK+ Set:[P1]P1: 0, 1 (padrão: 0) / 0: Peripheral /1: Central

Este comando terá efeito após o próximo acionamento de energia do módulo ou reset.

32. Consultar/Definir modo de trabalho EDR

EnviarReceberParâmetro
Q: AT+SCAN?OK+ Get:[P1]P1: 0, 1, (Padrão: 0) / 0: Descoberta e conectável / 1: Somente conectável
S: AT+SCAN[P1]OK+ Set:[P1]1: 0, 1, (Padrão: 0) / 0: Descoberta e conectável / 1: Somente conectável

33. Consultar/Definir bit de parada UART

EnviarReceberParâmetro
Q: AT+STOP?OK+ Get:[P1]P1: 0, 1, (Padrão: 0) / 0: 1 bit de parada / 1: 2 bits de parada
S: AT+STOP[P1]OK+ Set:[P1]P1: 0, 1, (Padrão: 0) / 0: 1 bit de parada / 1: 2 bits de parada

34. Consultar versão do software

EnviarReceberParâmetro
AT+VERR?Informações da versãoNenhum
AT+VERS?Informações da versãoNenhum

Programação


Configurar o módulo Bluetooth com Serial no Windows

Esta seção mostra como configurar o Bluetooth com PC, alguns métodos básicos de configuração podem ser aprendidos. Configure a conexão de hardware consultando a seção “Instalação de Hardware”. Você verá o LED azul no módulo piscar, indicando que nenhuma conexão está configurada.

Abra um terminal serial e configure Baud Rate:115200, Databits: 8, Stopbits: 1 e No Flow Control. Envie “AT” para o Bluetooth com o terminal serial e “OK” será retornado se tudo correr bem. O Bluetooth só responde a comandos AT quando nenhuma conexão foi configurada, caso contrário todos os comandos serão vistos como string e enviados. Você pode distinguir o status pelos LEDs indicadores.

Então algumas configurações úteis podem ser enviadas. Aqui estão alguns exemplos de comandos e respostas.

  1. Testar conexão serial, enviar “AT”, retornará “OK”.
  2. Restaurar configurações de fábrica, enviar “AT+RENEW”, retornar “OK+RENEW”.
  3. Redefinir baud rate da porta serial, enviar “AT+BAUD2”, retornar “OK+Set:2”.
  4. Habilitar autenticação, enviar “AT+AUTH1”, retornar “OK+Set:1”.
  5. Reiniciar o Bluetooth, enviar “AT+RESET”, retornar ”OK+RESET”.
  6. Consultar versão do firmware, enviar “AT+VERS?”, retornar “OK+Get:HMSoftV217”.
  7. Consultar MAC do EDR, enviar “AT+ADDE?”, retornar “OK+Get:000E0E002074”.
  8. Consultar MAC do BLE, enviar “AT+ADDB?”, retornar “OK+Get:000E0B002074”.
  9. Definir o nome do EDR, enviar “AT+NAMEHM-13-EDR”, retornar “OK+Set:HM-13-EDR”.
  10. Definir o nome do BLE, enviar “AT+NAMEHM-13-BLE”, retornar “OK+Set:HM-13-BLE”.
  11. Definir a senha do EDR, enviar “AT+PINE123451”, retornar “OK+Set:123451”.
  12. Definir a senha do BLE, enviar “AT+PINB123451”, retornar “OK+Set:123451”.
  13. Habilitar descoberta e conectável, enviar “AT+SCAN0”, retornar “OK+Set:0”.
  14. Habilitar informação de notificação de conexão, enviar “AT+NOTI1”, retornar “OK+Set:1”.
  15. Informação de notificação inclui endereço, enviar “AT+NOTP1”, retornar “OK+Set:1”.
  16. Habilitar chave de usuário, enviar “AT+PIO01”, retornar “OK+Set:1”.
  17. Definir para modo Central, enviar “AT+ROLB1”, retornar “AT+ROLB1”. Ou definir para modo Peripheral, enviar “AT+ROLB0”, retornar “AT+ROLB0”.

Usamos dois módulos Bluetooth conectados ao PC, um foi configurado como Central enquanto o outro como Peripheral. Alguns segundos depois eles se encontram e o LED para de piscar, conectados!

Comunicar com iPhone

Este tipo de módulo Bluetooth possui dois protocolos: Bluetooth EDR (Enhanced Data Rate) e Bluetooth Low Energy. Ele pode se comunicar com qualquer dispositivo que tenha um desses protocolos. Alguns celulares Android com SO superior a 4.3 e iPhone4 ou posterior têm capacidade BLE. Usamos um iPhone para demonstrar como usar um celular para interagir com o Bluetooth.

Alimente o Bluetooth e configure-o como função Peripheral. Procure LightBlue na Apple Store e instale-o. Abra o app, você poderá encontrar “HM-13-BLE”, que acabamos de renomear. Toque nele para conectar e depois toque em “Properties” para controlá-lo. A tecla “Hex” no canto superior direito serve para alterar o formato dos dados, talvez String seja mais fácil de visualizar. Toque em “Listen for notifications” para habilitar o recebimento de dados. Então podemos enviar dados ao PC através de BLE, tocando em “Write new value” e escrevendo algumas palavras. Também o PC pode transferir dados para o iPhone com o terminal serial.

Transmissão de dados entre dois Arduinos

Pronto para programar? É hora de fazer algo após a prática. Prepare um par de módulos Bluetooth e Arduino ou outra plataforma para controlá-los. Aqui usamos dois Arduino Uno. Configure a conexão como mencionado na seção “Instalação de Hardware”.

O programa de Central e Peripheral usa o mesmo código, a única diferença é o macro definido no início do programa. Para atribuir o Bluetooth à função Central, basta modificar o texto para “#define MASTER 1”, ou “#define MASTER 1” se a função Peripheral for atribuída.

O fluxo do programa de inicialização, consulte o fluxograma a seguir. Antes de tudo precisamos distinguir o baud rate predefinido do Bluetooth. Depois disso, envie comandos para restaurar as configurações de fábrica e altere o baud rate de 115200 para 9600, já que a serial por software não funcionará bem em baud rate alto. Em seguida, outros parâmetros são configurados no Bluetooth com o comando Reset ao final.

Após a inicialização, o Central e o Peripheral farão coisas diferentes, o Central enviará mensagens para o Peripheral em intervalos e imprimirá o que receber do Peripheral, enquanto o Peripheral apenas responderá ao Central.

Clique aqui para baixar o código de teste e abra HM-13_SW.ino com a IDE do Arduino, compile e faça o download para o Arduino Uno. Lembre-se de configurar o Bluetooth para funções diferentes modificando o macro no início. Se você tiver qualquer problema sobre como começar com Arduino, clique aqui para obter ajuda.

Depois de baixar o programa, abra duas janelas de terminal serial, os LEDs nos módulos Bluetooth piscarão, alguns segundos depois, eles param de piscar e ficam acesos, o que indica que estão conectados um ao outro. De acordo com o programa escrito, o Central envia mensagens continuamente para o Peripheral e obtém resposta toda vez.

Recursos


Suporte Técnico & Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...