Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Tecnologia da Internet das Coisas

Dominando Módulos Bluetooth RN487x da Microchip para Periféricos de Baixa Potência

Aprenda a configurar a família RN487x da Microchip de módulos Bluetooth para seus projetos de periféricos de baixa potência.

Se você está construindo um dispositivo compacto e energeticamente eficiente, Bluetooth é quase sempre a escolha de comunicação padrão. Ao longo dos anos o padrão amadureceu, e hoje uma ampla gama de módulos prontos para uso fornece um system-on-chip (SoC) completo que atende às necessidades de muitos periféricos. Um exemplo popular é o nrf52840 da Nordic, que combina processador de 32 bits, rádio Bluetooth multi-protocolo e complemento completo de interfaces I/O como GPIO, PWM, USB, SPI e I²S.

Embora poderosos, esses SoCs podem ser intimidantes: a curva de aprendizado e tempo de desenvolvimento necessários para integrar o firmware embarcado são significativos. Para muitos casos de uso comuns — sensoriamento ou controle remoto com apenas alguns canais analógicos ou digitais — uma solução mais simples e focada é frequentemente preferível.

Entram a família RN487x da Microchip. Os dois módulos desta família — RN4870 e RN4871 — oferecem múltiplos canais digitais e analógicos bi-direcionais concorrentes enquanto mantêm footprint de design e esforço de firmware mínimos. Cada módulo armazena uma configuração compacta em sua NVRAM, permitindo que você adapte a funcionalidade do periférico aos seus requisitos exatos. Importantemente, os módulos permanecem totalmente compatíveis com o padrão Bluetooth Low Energy (BLE), garantindo pairing seamless com smartphones modernos e outros clientes BLE.

Nesta série de três partes, percorreremos a criação de um periférico Bluetooth-enabled totalmente funcional para quatro tarefas típicas: um sensor digital, um controle digital, um sensor analógico e um controle analógico. Cada exemplo inclui circuito de referência, os passos precisos de configuração RN487x e um script Python simples que demonstra como interagir com o periférico a partir de um host Linux. Os scripts são minuciosamente documentados para que você possa facilmente embutir os periféricos como subsistemas em designs maiores.

Visão Geral do Design

Abaixo está uma ilustração gráfica do exemplo "sensor analógico", destacando as interfaces-chave em vermelho.

 

Dominando Módulos Bluetooth RN487x da Microchip para Periféricos de Baixa Potência

Uma representação de um sistema Linux comunicando com um periférico

 

Construiremos três componentes centrais para este exemplo:

Seleção de Componente

A família RN487x oferece duas variantes: RN4870 e RN4871. Diferem principalmente em contagem de pinos e tipos de I/O disponíveis. Abaixo está uma tabela de pin-budget reorganizada para ajudar você a decidir qual chip melhor serve seu projeto.

Existem três categorias de pinos I/O nos módulos:

Tipo Descrição
ADC Entrada analógica: converte tensão em valor numérico.
PWM Saída analógica: gera onda quadrada cuja frequência e duty cycle são definidas por dois números.
DIO Entrada ou saída digital: nível high ou low representa lógica 1 ou 0.

 

RN4870

Dominando Módulos Bluetooth RN487x da Microchip para Periféricos de Baixa Potência

Imagem do datasheet RN487x

 

Pin Name/Capability P1_0 P1_1 P1_2 P1_3 P2_2 P2_3 P2_4 P2_5
ADC x x x x
PWM x x
DIO x x x x x

 

RN4871

Dominando Módulos Bluetooth RN487x da Microchip para Periféricos de Baixa Potência

Imagem do datasheet RN487x

 

Pin Name/Capability P1_2 P1_3
ADC x
PWM
DIO x x

 

Essas tabelas clarificam que se seu design precisa apenas de uma entrada analógica única e sem saídas PWM, o RN4871 é a escolha mais enxuta. Para projetos requerendo múltiplos sinais ou PWM, o RN4870 é a seleção apropriada. No exemplo de sensor analógico, usamos o RN4871 e conectamos o sensor ao pino P1_2.

Camada de Perfil GATT (Generic Attribute) da Stack de Protocolo BLE

Antes de escrever a aplicação host, é essencial entender a API GATT que mediará comunicação entre host e periférico.

Todos dispositivos BLE expõem um database GATT que o periférico (server) popula. O host (client) usa chamadas GATT para ler ou escrever valores identificados por handles ou nomes. Operações GATT típicas em Python parecem com isto:

gatt_rq.connect() # Write a value to a characteristic handle gatt_rq.write_by_handle(vh_light, str(bytearray([8])))

A primeira chamada estabelece conexão; a segunda escreve dados que são imediatamente refletidos nas saídas do periférico. A API GATT é suportada por iOS, Android, Windows e Linux. Nossos exemplos usam Python no Linux para ampla compatibilidade.

Configuração do Módulo

Para fazer a ponte do sinal físico ao database GATT, você deve programar a NVRAM do RN487x com dois blocos-chave de configuração:

O RN487x usa uma linguagem de comando leve para configuração. Consulte o apêndice para detalhes sobre estabelecer conexão console e emitir comandos de configuração. Após programação, a NVRAM do módulo pode parecer com isto:

 

Dominando Módulos Bluetooth RN487x da Microchip para Periféricos de Baixa Potência

 

Todos valores de configuração residem dentro de uma hierarquia de dois níveis de services e characteristics — útil ao escalar para designs multi-sensor ou multi-controle.


 

Isso conclui a parte um de nossa série tutorial RN487x de três partes. Partes 2 e 3 cobrirão implementações de entrada digital, controle digital, sensor analógico e controle analógico. Parte 4 discutirá tópicos avançados aplicáveis a todos os exemplos.

Abaixo está um apêndice que descreve como configurar os módulos antes de mergulhar nos projetos detalhados.

Usando Conexão Console para Configurar o RN487x

Alimente o módulo e estabeleça link serial para sua workstation. Cada circuito demo inclui um jumper "prog" de 3 pinos expondo RX, TX e GND. Se precisar orientação, um excelente guia está disponível aqui.

Inicie um terminal emulator. O utilitário miniterm (bundled com muitas distribuições Python) é boa escolha. Em um shell, inicie assim:

python -m serial.tools.miniterm --eol LF /dev/ttyUSB0 115200

A baud rate padrão de 115200 é adequada para o RN487x.

Mude de modo DATA para COMMAND digitando três cifrões ("$$$") — você não verá os caracteres, mas o prompt muda para:

CMD>

Tente pressionar d seguido de Enter; o módulo ecoará seu status:

CMD> BTA=D88039F80080 Name=RN_BLE Connected=no Authen=2 Features=0000 Services=00 CMD>

Habilite echo se quiser ver a tecla digitada: pressione + e Enter:

CMD> ECHO ON CMD>

Criar um novo GATT service é tão simples quanto emitir um único comando PS, por exemplo:

CMD> PS,59c88760536411e7b114b2f933d5fe66 AOK

Configurações de projeto também requerem scripts multi-linha. Inicie um script com WW, insira cada linha e finalize com Esc para commit:

CMD> ww @CONN |O,08,72 AOK CMD>

Inicialização Comum do Módulo

Ao reutilizar um módulo RN487x entre projetos, configuração anterior pode interferir com novos usos. Execute os seguintes passos de limpeza antes de cada exemplo:

Execute a sequência de comandos abaixo:

CMD> WC AOK CMD> SR,0040 AOK CMD> PZ AOK CMD> SW,0A,00 AOK CMD> R,1 Rebooting

Setup Linux Necessário para Rodar Scripts Python de Exemplo

Hardware

Garanta que seu sistema host tenha hardware BLE (Bluetooth 4.0 ou mais novo). Se precisar de adaptador USB, recomendamos um baseado no Qualcomm CSR8510, disponível aqui.

 

Software

Os scripts de exemplo foram testados no Debian 10 e devem funcionar em outras distribuições baseadas em Debian como Ubuntu. Dois pacotes Python são requeridos que não são instalados por padrão:

Instalar gattlib builda uma biblioteca ELF, então você precisará de build tools e libraries. Um script helper que instala todas as dependências está disponível aqui. Após baixar, torne o script executável e rode-o.

Referências

Fique atento para as próximas partes desta série, onde construiremos os exemplos completos de entrada digital e controle digital.

Pule para projetos 1 e 2: construindo uma entrada digital e um controle digital.

Tecnologia da Internet das Coisas

  1. IoT Celular e Bluetooth LE: Abordagem Sinérgica para Conectividade de Próxima Geração
  2. Escolhas de Design Bluetooth Mesh: Módulo vs. Dispositivo Discreto
  3. Contrinex 2020: Sensores Cloud-Ready e Light Curtains Bluetooth para Segurança
  4. ADLINK Implanta IA do Edge à Cloud com Plataforma NVIDIA EGX: Soluções de Edge Computing Aceleradas
  5. Meça Sensores Analógicos no Raspberry Pi sem ADC Nativo
  6. Leitura de Sensores Analógicos com Raspberry Pi e Zabbix: Guia Passo a Passo
  7. Aproveitando Dados na Internet da Confiabilidade: Estratégias para Gestão Eficaz
  8. Da Edge à Cloud: Dominando Pipelines de Dados IoT
  9. Digitalização em Alimentos e Bebidas: Aprimorando Segurança, Rastreabilidade e Eficiência
  10. Insights de Edge Computing e Estratégia de IoT do IoT World 2019