Índice:

Ponte de WiFi simples para BLE (Bluetooth de baixa energia): 9 etapas (com imagens)
Ponte de WiFi simples para BLE (Bluetooth de baixa energia): 9 etapas (com imagens)

Vídeo: Ponte de WiFi simples para BLE (Bluetooth de baixa energia): 9 etapas (com imagens)

Vídeo: Ponte de WiFi simples para BLE (Bluetooth de baixa energia): 9 etapas (com imagens)
Vídeo: Como instalar configurar câmera ip Wi-fi lâmpada Yoosee 2022 2024, Julho
Anonim
WiFi simples para ponte BLE (Bluetooth de baixa energia)
WiFi simples para ponte BLE (Bluetooth de baixa energia)
WiFi simples para ponte BLE (Bluetooth de baixa energia)
WiFi simples para ponte BLE (Bluetooth de baixa energia)
WiFi simples para ponte BLE (Bluetooth de baixa energia)
WiFi simples para ponte BLE (Bluetooth de baixa energia)

Atualização de 4 de dezembro de 2017 - esboços revisados do Feather nRF52 e dicas de depuração. Adicionadas imagens da ponte montada na caixa

Este projeto simples fornece acesso WiFi a qualquer módulo Bluetooth Low Energy (BLE) que implemente UART Nordic com TX Notify. A ponte Wifi2BLE é totalmente transparente. Ele apenas passa os dados WiFi para o dispositivo BLE e passa os dados do dispositivo BLE de volta para a conexão WiFi.

O pfodDesignerV3 gratuito gera código para implementar um Serviço Nordic UART em muitos módulos BLE, incluindo Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 e V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend and Flora Boards, Adafruit Bluefruit LE SPI (ou seja, Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE ou Bluefruit LE SPI Friend) e quaisquer outras placas que permitem programar seu próprio serviço.

Esta ponte Wifi2BLE é adequada para construtores inexperientes que podem soldar. Ele usa apenas duas placas, um cabo de fita e dois resistores

Além de testes detalhados para cada placa, este instrutível inclui uma etapa Ajuda - não funciona com mais dicas de localização de falhas.

Essas instruções também estão disponíveis online

Por que este projeto?

Este projeto resolve uma série de problemas que o BLE (Bluetooth Low Energy) possui.

  • Apenas celulares e computadores recentes suportam BLE. A ponte Wifi2BLE permite que qualquer celular ou computador com uma conexão WiFi se conecte e controle o dispositivo BLE.
  • BLE tem alcance limitado. A ponte Wifi2BLE permite que você acesse o dispositivo BLE de qualquer lugar da casa (onde haja uma conexão WiFi) e de fora através da Internet.
  • A criação de aplicativos BLE requer que você aprenda Android ou iOS. A ponte Wifi2BLE fornece uma conexão telnet universal por meio de qualquer programa de terminal. Além disso, você pode adicionar prontamente uma página da web ao módulo WiFi para criar sua própria interface personalizada.
  • O BLE V5 promete uma rede mesh para conectar todos os seus dispositivos BLE domésticos, uma vez que o software esteja atualizado com as especificações Bluetooth mais recentes. A ponte Wifi2BLE usa um dispositivo BLE V5 e, portanto, fornecerá acesso à Internet a esta rede doméstica quando ela chegar.

Meu uso imediato para este projeto é adicionar o controle de luz BLE da sala de estar à rede WiFi para permitir que ela seja controlada de qualquer lugar da casa. Embora este tutorial use o pfodApp como exemplo de controle das placas BLE via WiFi, você não precisa comprar o pfodApp para concluir este projeto.

Etapa 1: Lista de peças

Custo ~ US $ 60 em 30 de novembro de 2017, sem frete + uma pequena caixa de plástico

Adafruit Feather nRF52 Bluefruit LE - nRF52832 - ~ US $ 25

Adafruit HUZZAH ESP8266 Breakout - ~ US $ 10

Cabo de fita com extremidades fêmeas separadas - Cabo Bus Pirate ~ US $ 5 https://www.sparkfun.com/products/9556 OU Cabo de fuga do arco-íris com soquete IDC de 10 pinos ~ US $ 4 https://www.sparkfun.com/products/ 9556 OU semelhante

Break Away Male Headers - Right Angle - ~ US $ 2

Cabo USB para TTL 3V3 serial - ~ US $ 10 https://www.sparkfun.com/products/12977 (preferido porque tem os pinos identificados) OU https://www.sparkfun.com/products/12977 (os pinos NÃO são etiquetada)

Cabo USB A para Micro B - ~ US $ 4 https://www.sparkfun.com/products/12977 (3 pés de comprimento) OU ~ US $ 3 https://www.sparkfun.com/products/12977 (6 polegadas de comprimento) OU ~ US $ 2 https://www.sparkfun.com/products/12977 (6 polegadas de comprimento) OU ~ US $ 5 https://www.sparkfun.com/products/12977 (6 pés de comprimento) OU similar

2 x resistores de 100 ohm - ~ US $ 1

Fonte de alimentação USB (500mA ou mais) - ~ US $ 6 https://www.sparkfun.com/products/12890 OU ~ US $ 7 https://www.adafruit.com/product/1994 OU semelhante

Arduino IDE V1.8.5 e um computador para executá-lo.

Para uma caixa de plástico, usei uma da Jaycar UB5 (azul) 83 mm x 54 mm x 31 mm ~ A $ 4

Etapa 2: Circuito Wifi2BLE

Circuito Wifi2BLE
Circuito Wifi2BLE

O circuito Wifi2BLE é mostrado acima. Uma versão em pdf está aqui. Como você pode ver, o circuito é muito simples. Apenas 4 fios e dois resistores de proteção de 100 ohms. Os resistores de proteção são para o caso de você perder as linhas TX / RX após programar o HUZZAH ESP8266 ou o Feather nRF52.

NOTA: A marcação da placa Feather nRF52 para os pinos TX e RX está incorreta. O pino TX é na verdade aquele próximo ao pino DFU e o pino RX é aquele próximo ao pino MISO

Certifique-se de conectar as linhas TX / RX conforme mostrado acima. Felizmente, os resistores de proteção fizeram seu trabalho e as placas não foram danificadas enquanto eu resolvia por que as placas não estavam aderindo umas às outras.

Etapa 3: construção Wifi2BLE

Construção Wifi2BLE
Construção Wifi2BLE
Construção Wifi2BLE
Construção Wifi2BLE
Construção Wifi2BLE
Construção Wifi2BLE

Pinos de cabeçalho em ângulo reto foram soldados no HUZZAH ESP8266 para permitir que ele seja desconectado para programação. Quatro fios do cabo plano são usados para conectar as duas placas. Mantenha os conectores de pino fêmea e corte a outra extremidade do cabo plano. Meu cabo de fita tinha as mesmas cores do Sparkfun USB para cabo de programação TTL, então escolhi o fio que combinava com ele. Preto para GND, Vermelho para 5V +, Laranja para TX (conecta a ESP8266 RX) e Marrom para RX (conecta a ESP8266 TX)

Eu conectei os resistores de proteção na parte traseira da placa Feather nRF52. (Construtores observadores que conhecem seus códigos de resistor verão que usei dois resistores de 68 ohms que tenho em mãos em vez de 100 ohms) e os isolei com algum plástico termoencolhível.

O cabo vermelho é soldado ao pino Feather nRF52 USB para pegar o USB 5V para alimentar o módulo HUZZAH ESP8266 e o cabo preto é soldado ao pino Feather nRF52 GND.

Isso tudo exceto para programar os módulos, conforme descrito abaixo, colocá-lo em uma caixa de plástico e conectar uma fonte de alimentação USB no Feather nRF52.

Etapa 4: Programação Wifi2BLE

Programação Wifi2BLE
Programação Wifi2BLE
Programação Wifi2BLE
Programação Wifi2BLE
Programação Wifi2BLE
Programação Wifi2BLE

Programando o HUZZAH ESP8266

Para programar o escudo, siga as instruções fornecidas em https://github.com/esp8266/Arduino em Instalando com o gerenciador de placas. Ao abrir o Board Manager a partir do menu Tools → Board, selecione Type Contributed e instale a plataforma esp8266. Este projeto foi compilado usando o ESP8266 versão 2.3.0. Outras versões terão seu próprio conjunto de bugs e podem não funcionar com este código.

NOTA: NÃO use a instalação da placa Adafruit, pois o esboço usado aqui não será compilado sob esse código.

Feche e abra novamente o IDE do Arduino e agora você pode selecionar “Adafruit HUZZAH ESP8266” no menu Ferramentas → Placa.

Você também precisa instalar a versão mais recente da biblioteca pfodESP8266WiFiBufferedClient. Esta biblioteca funciona com o plug-in IDE ESP8266.com V2.3. (Se você já instalou a biblioteca pfodESP2866WiFi, exclua o diretório da biblioteca completamente.)

  • a) Baixe este arquivo pfodESP8266WiFiBufferedClient.zip para o seu computador, mova-o para a sua área de trabalho ou alguma outra pasta que você possa encontrar facilmente
  • b) Em seguida, use a opção de menu Arduino 1.8.5 IDE Sketch → Import Library → Add Library para instalá-la. (Se o Arduino não permitir a instalação porque a biblioteca já existe, localize e exclua a pasta pfodESP8266BufferedClient mais antiga e importe esta)
  • c) Pare e reinicie o IDE do Arduino e em Arquivo-> Exemplos você deve ver agora pfodESP8266BufferedClient.

Configurando o SSID e a senha da rede, o IP e a porta

Depois de instalar a biblioteca pfodESP8266BufferedClient, abra o IDE do Arduino e copie este esboço, Wifi_Bridge.ino, para o IDE. Antes de programar o módulo, você precisa definir o SSID e a senha de sua rede e escolher um IP não utilizado.

Edite essas três linhas perto do topo de Wifi_Bridge.ino

char ssid = "**** ***"; senha do char = "**** *****"; char staticIP = "10.1.1.180";

Eu uso o aplicativo Fing (Android ou iOS) para escanear minha rede local e identificar os IPs que já estão sendo usados. Geralmente, é seguro escolher um IP não utilizado na faixa de 0,180 a 0,254

Para começar, você pode deixar a portaNo como 23, a porta padrão para uma conexão telnet.

Depois de fazer essas alterações, você pode programar o ESP8266.

Programando o HUZZAH ESP8266

Para programar o HUZZAH ESP8266, conecte o cabo USB para serial conforme mostrado na foto. Verifique a foto e sua fiação. Consulte também as dicas de programação do ESP8266 (falha no espcomm)

Eu uso o USB Sparkfun para cabo serial TTL 3V3 porque ele tem os terminais TX e RX marcados. Certifique-se de que o cabo TX está conectado ao pino RX e o cabo RX está conectado ao pino TX, conforme mostrado acima. Se você estiver usando o cabo Adafruit, ele não terá os terminais marcados, mas será codificado por cores, vermelho é energia, preto é aterramento, verde é TX e branco é RX.

Conecte o cabo USB para serial em seu computador e selecione a porta COM no menu Ferramentas → Porta. Deixe a frequência da CPU, o tamanho do flash e a velocidade de upload em suas configurações padrão.

Em seguida, coloque o módulo Adafruit HUZZAH ESP2866 no modo de programação, mantendo pressionado o botão GPIO0 e clicando no botão Reset e, em seguida, liberando o botão GPIO0. O led GPIO0 deve permanecer ligeiramente aceso. Em seguida, selecione Arquivo → Fazer upload ou use o botão de seta para a direita para compilar e fazer upload do programa. Se você receber uma mensagem de erro ao fazer o upload, verifique se as conexões do cabo estão conectadas nos pinos corretos e tente novamente.

Depois de concluída a programação, o Led Vermelho do módulo deve acender. Isso indica que ele se conectou com sucesso à sua rede local e iniciou o servidor para aceitar uma conexão.

Testando o HUZZAH ESP2866

Para testar o HUZZAH ESP2866, deixe o cabo de programação conectado e abra Arduino IDE Tools → Serial Monitor e defina 9600 baud (canto inferior direito). Em seguida, abro um programa de terminal em seu computador, eu uso TeraTerm para Windows e CoolTerm para Mac, e conecto o IP e a portaNo que você definiu no esboço Wifi_Bridge.ino.

Ao conectar o Led Vermelho no módulo deve começar a piscar, indicando que há uma conexão. Agora você deve ser capaz de digitar na janela do terminal do computador e os caracteres devem aparecer na janela do monitor do IDE do Arduino e vice-versa.

Tempo limite de conexão Wifi

O código Wifi_Bridge.ino tem um tempo de conexão.

uint32_t connectionTimeout = 60000; // tempo limite de conexão de 60 segundos

Se não houver dados WiFi recebidos pelo módulo HUZZAH ESP8266 por 60 segundos, os módulos fecham a conexão e aguardam por uma nova. Isso garante que o módulo se recupere de conexões 'meio fechadas' que acontecem quando o cliente simplesmente desaparece devido a uma conexão WiFi ruim, perda de energia no roteador ou desligamento forçado do cliente. Consulte Detecção de conexões de soquete TCP / IP parcialmente abertas (descartadas) para obter mais detalhes.

Este tempo limite de conexão é definido para 60 seg. mas pode diminuir ou aumentar conforme necessário. Defini-lo como 0 significa nunca expirar, o que não é recomendado.

Programando a Pena nRF52

Para programar o Feather nRF52, siga as instruções sobre como baixar e instalar o suporte da placa Arduino para o Feather nRF52. Verifique se você pode conectar e programar a placa por meio do cabo USB.

NOTA: Desconecte o módulo HUZZAH ESP8266 do Feather nRF52 antes de tentar programar o Feather

Conectar o Feather nRF52 a um dispositivo BLE consiste em duas etapas. Primeiro identificando o endereço MAC (e tipo) no dispositivo e verificando se ele suporta o serviço Nordic UART com TX Notify e, em seguida, transferindo esse endereço e tipo para o esboço de ponte.

Etapa 5: conexão a um dispositivo BLE

Conexão a um dispositivo BLE
Conexão a um dispositivo BLE
Conexão a um dispositivo BLE
Conexão a um dispositivo BLE
Conexão a um dispositivo BLE
Conexão a um dispositivo BLE

Uma vez que o HUZZAH ESP8266 é programado, você precisa codificar o endereço BLE e o tipo de dispositivo que você deseja conectar no esboço Feather nRF52. Este é um processo de duas etapas. I) Execute o programa de digitalização para encontrar dispositivos BLE próximos que implementem o Nordic UART Service (TX Notify) e, em seguida, copie a saída do scanner no esboço da ponte Feather para conectá-lo a esse dispositivo.

Procurando periféricos BLE

Para identificar periféricos BLE compatíveis, carregue o programa central_bleuart_scanner.ino em seu Feather nRF52. Este programa verifica continuamente a existência de novos dispositivos e, em seguida, verifica se eles oferecem suporte ao serviço Nordic UART com TX Notify.

Serviço UART nórdico

O Nordic UART Service consiste em três partes, o Service UUID e as características RX e TX. Aqui está algum código de amostra gerado por pfodDesignerV3 para o RedBear NanoV2

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

BLECharacteristic rxCharacteristic = BLECharacteristic ("6E400002B5A3F393E0A9E50E24DCCA9E", BLEWrite, BLE_MAX_LENGTH); BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003B5A3F393E0A9E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH);

pfodDesignerV3 pode gerar código de amostra para vários módulos BLE. No entanto, como não há especificação BLE para uma conexão UART 'padrão', nem todos os módulos usam o serviço UART nórdico. Por exemplo, os módulos HM-10 (blindagem Itead BLE), RFduno e Romeo BLE usam seus próprios serviços uart exclusivos e, portanto, não se conectam ao Feather nRF52.

As seguintes placas se conectarão: - Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 e V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend e Flora, Adafruit Bluefruit LE SPI (ou seja, Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE ou Bluefruit LE SPI Friend) Bem como placas que podem ser codificadas com serviços personalizados ou placas que podem usar a biblioteca BLEPeripheral.

O exemplo de placa usado aqui é o Arduino / Genuino 101 com código gerado por pfodDesignerV3. O pfodDesignerV3 gratuito permite criar menus pfodApp e, em seguida, gerar o código Arduino necessário para mostrar aquele menu exato em seu celular Android usando pfodApp (pago). O pfodApp também se conecta via Wifi, bem como Bluetooth Classic, BLE e SMS, e assim pode se conectar via esta ponte Wifi2BLE. No entanto, mesmo se você não quiser usar pfodApp como seu aplicativo de controle, você ainda pode usar o pfodDesignerV3 para gerar um código de serviço UART nórdico para sua placa BLE.

Este link de tutorial descreve a configuração do Arduino / Genuino 101 BLE e a criação de um controle liga / desliga de LED simples com pfodDesignerV3. O esboço produzido pelo pfodDesignerV3 é Arduino101_led_control.ino

Programar o Arduino / Genuino 101 com o Arduino101_led_control.ino permitirá que você se conecte ao pfodApp e exiba a tela a seguir em seu celular Android.

No entanto, este é apenas um exemplo e você não precisa comprar o pfodApp para concluir este projeto. O importante é que o aplicativo gratuito pfodDesignerV3 possui código gerado para o Arduino / Genuino 101 que implementa um Nordic UART Service. Então, vamos procurar por isso.

No entanto, este é apenas um exemplo e você não precisa comprar o pfodApp para concluir este projeto. O importante é que o aplicativo gratuito pfodDesignerV3 possui código gerado para o Arduino / Genuino 101 que implementa um Nordic UART Service. Então, vamos procurar por isso.

Procurando um serviço UART nórdico

Com o módulo HUZZAH ESP8266 desconectado do Feather nRF52, programe o Feather nRF52 com o central_bleuart_scanner.ino e abra o Arduino IDE Tools → Serial Monitor e defina a taxa de transmissão para 9600. Ligar o Arduino / Genuino 101 dá a saída mostrada em a primeira captura de tela acima.

Como você pode ver, o scanner encontrou dois dispositivos BLE, um Arduino / Genuino 101 com um serviço Nordic UART encontrado nele, MAS a característica TX não suportava Notify. O scanner também encontrou um módulo RFduino BLE, mas o RFduino não usa o Nordic UART Service, mas usa o seu próprio. O Comitê Bluetooth descobre a culpa por não especificar um serviço UART 'padrão', deixando que cada fabricante faça o seu.

Conforme abordado acima, o código 101 foi gerado por pfodDesignerV3 principalmente para uso com pfodApp. pfodApp não é tão exigente em relação ao TX Notify quanto o código Uart Feather nRF52. pfodApp funciona com o 101 conforme programado, mas o Feather nRF52 insiste no TX Notify, então uma pequena mudança no código é necessária para satisfazer o Feather.

Abra o Arduino101_led_control.ino no IDE do Arduino e próximo ao topo você encontrará essas duas linhas. A segunda linha é apenas uma descrição da característica e não afeta a operação.

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLEIndicate, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901", "TX) - (Indique);

Altere-os para

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901", "TX - (Notificar)");

Em seguida, reprograme o 101 com esta versão editada, Arduino101_Notify_led_control.ino. Então, quando você executa novamente o scanner Feather nRF52 (central_bleuart_scanner.ino), o Monitor serial mostra a segunda captura de tela acima.

Sem erros para o Genuino 101 agora e o scanner imprime o código necessário para o esboço da ponte Feather nRF52 para que ele se conecte ao 101. O scanner verificará todos os dispositivos que encontrar ao alcance. O LED vermelho pisca uma vez para cada dispositivo encontrado no Nordic UART Service (TX Notify).

Etapa 6: Conectando a um periférico BLE

Indicações LED

O Feather nRF52 tem dois leds, azul e vermelho. Quando a placa está conectada a um dispositivo BLE, o Led Azul fica constante, caso contrário fica piscando. O scanner não permanece conectado ao dispositivo, então seu led azul geralmente está piscando. O LED vermelho pisca uma vez para cada dispositivo Nordic UART Service (TX Notify). Ao operar como um scanner, o Led vermelho conta o número de dispositivos Nordic UART Service (TX Notify) encontrados. Quando funcionando em bridge, o Led Vermelho pisca uma vez quando conectado ao endereço do código BLE.

Conectando-se a um periférico BLE

Agora que o esboço do scanner forneceu os detalhes para o dispositivo BLE ao qual você deseja se conectar, você pode copiar a saída para o esboço central_bleuart_bridge.ino. Perto do topo desse esboço, você encontrará o seguinte código.

// Estas próximas três linhas de código vêm da saída central_bleuart_scanner.ino

const char * BLE_NAME = "GENUINO 101-FC8F"; const char * BLE_ADDRESS = "98: 4F: EE: 0C: FC: 8F"; const uint8_t BLE_ADDRESS_TYPE = 0;

Substitua as três linhas de código pela saída do scanner para o dispositivo BLE ao qual você deseja fazer a ponte. Em seguida, programe o Feather nRF52 com o esboço editado central_bleuart_bridge.ino.

Testando o esboço central_bleuart_bridge

Antes de conectar o HUZZAH ESP8266 de volta ao Feather nRF52, teste a conexão com seu dispositivo BLE. Deixando o Feather nRF52 conectado ao seu Arduino IDE, abra Ferramentas → Serial Monitor a 9600 baud e verifique se o dispositivo BLE de destino está ligado.

Quando a conexão é feita ao seu dispositivo BLE, conforme descrito acima, o LED azul acenderá constantemente e o LED vermelho piscará uma vez a cada 10 segundos ou mais. Isso permite que você não faça e mantenha a conexão.

Em seguida, no Serial Monitor, você pode inserir os comandos que espera enviar para o seu dispositivo BLE e observá-lo operar e monitorar qualquer resposta enviada de volta. Se tudo estiver bem, você pode desligar e conectar o módulo HUZZAH ESP8266.

Etapa 7: Conectando-se ao dispositivo BLE via WiFi - Juntando tudo

Depois de ter programado e testado o módulo HUZZAH ESP8266 com seu código de ponte (Wifi_Bridge.ino) configurado para seu SSID de rede e senha e IP E programado e testado o Feather nRF52 com seu código de ponte (central_bleuart_bridge.ino) configurado com o endereço do dispositivo BLE e digite, então você pode conectá-los e conectar uma fonte USB ao módulo Feather para ligá-los.

O LED vermelho do módulo HUZZAH deve acender continuamente quando se conecta ao roteador de rede local e o LED Feather Blue deve acender continuamente quando se conecta ao seu dispositivo BLE e o LED Feather Red deve piscar uma vez a cada 10 segundos ou assim para indicar apenas em O dispositivo BLE está conectado.

Abra o seu programa telnet e conecte-se ao IP e à porta do HUZZAH. O LED vermelho HUZZAH deve piscar lentamente para indicar que seu programa foi conectado e você deve enviar comandos para seu dispositivo BLE via WiFi e observar o dispositivo BLE operar e ver qualquer resposta em sua janela telnet. Lembre-se de que se o seu dispositivo BLE não enviar nenhum dado de volta por 60seg, o código HUZZAH irá interromper a conexão e desconectar e o LED vermelho HUZZAH ficará sólido novamente.

Etapa 8: Ajuda - não funciona

Primeiro, execute as etapas de teste detalhadas acima, Testando o HUZZAH ESP2866 e Testando o esboço central_bleuart_bridge.

Problemas de digitalização

Se o scanner não conseguir encontrar seu dispositivo BLE, ele está muito longe, não está anunciando ou já está conectado a algo. Tente aproximar o leitor e desligar e ligar o dispositivo e desligue todos os outros dispositivos móveis próximos que possam ter uma conexão com o dispositivo BLE.

Se você obtiver uma saída de scanner como esta.

Conectado a 98: 4F: EE: 0C: FC: 8F Procurando serviço UART nórdico… Nenhum encontrado OU Não detectável !!!!! Não foi possível identificar um serviço UART nórdico !!!!!!!! Se você esperava um serviço UART nórdico, mova o scanner para mais perto do dispositivo BLE !!!!

Pode ser que você esteja perto o suficiente do dispositivo BLE para detectá-lo, mas não o suficiente para fazer uma descoberta de serviço para encontrar o serviço Nordic UART. Tente se aproximar do dispositivo BLE.

Como último recurso, você pode usar o aplicativo gratuito Nordic nRF Connect para Android ou iOS. Esse aplicativo tem melhor alcance e sensibilidade. Ele dirá se o dispositivo BLE tem um serviço UART nórdico. No entanto, você ainda precisará fazer com que o scanner execute, conecte e identifique o Nordic UART Serivice antes de tentar usar a ponte Wifi2BLE, pois ela usa um código semelhante ao do scanner.

Se você quiser ir mais fundo, pode usar o módulo Adafruit Bluefruit LE Sniffer para ver o que está no ar.

Problemas de conexão BLE

Se você conseguiu fazer a varredura do dispositivo BLE, as causas mais prováveis de problemas de conexão são I) o dispositivo BLE está muito longe, II) alguma outra coisa já foi conectada ao dispositivo BLE

Problemas de conexão WiFi

Se o LED vermelho HUZZAH ESP8266 não acender continuamente, não há conexão com a rede através do roteador. Verifique o ssid e a senha que você possui em Wifi_Bridge.ino e use o aplicativo Fing para Android ou iOS para verificar se o IP que você alocou ainda não está sendo usado. Tente desligar todos os seus computadores e dispositivos e religar o roteador (deixe-o desligado por 20 segundos) e, em seguida, faça a varredura com o Fing novamente. Por fim, se a conexão continuar caindo, lembre-se da configuração de tempo limite de conexão no código Wifi_Bridge.ino.

Etapa 9: Extensões e Conclusão

O projeto apresentado aqui é a versão mais simples. Existem várias extensões possíveis, como: -

  • O Feather nRF52 é capaz de conectar até 4 dispositivos BLE ao mesmo tempo, então você pode modificar o código para adicionar mais endereços válidos e controlar até 4 dispositivos de uma conexão sem fio. Veja o código de exemplo que acompanha a instalação da placa Feather nRF52.
  • Você pode fazer um furo em seu roteador para fornecer acesso ao dispositivo BLE de qualquer lugar na Internet. Consulte Conectando dispositivos DIY IoT à Internet com pfodApp.
  • Você pode usar o código do Cheap / Simple Wifi Shield para permitir que você configure os parâmetros da rede WiFi para o HUZZAH através de uma página da web, sem reprogramação. Você precisaria adicionar um botão de configuração ao circuito.
  • Você pode adicionar um botão de configuração (usando o mesmo botão acima) que faz o Feather nRF52 procurar dispositivos BLE com um Nordic UART (TX Notify) e então salvar os detalhes da conexão para aquele com o sinal mais forte. Para salvar o resultado, você precisará usar a biblioteca nffs que vem com a instalação da placa Adafruit nRF52.
  • Você pode adicionar uma página da web ao código HUZZAH ESP8266 para fornecer uma interface personalizada para o seu dispositivo BLE. Você também pode usar pfodDesignerV3 e pfodApp para adicionar uma interface personalizada sem nenhuma alteração neste projeto.

Conclusão

Este projeto simples fornece acesso WiFi a qualquer módulo Bluetooth Low Energy (BLE) que implemente UART do Nordic com TX Notify. A ponte Wifi2BLE é totalmente transparente. Ele apenas passa os dados WiFi para o dispositivo BLE e passa os dados do dispositivo BLE de volta para a conexão WiFi.

A construção simples e as instruções de teste detalhadas tornam este projeto adequado para iniciantes que desejam acessar seu dispositivo BLE de seu computador ou de fora da faixa normal de BLE.

Este projeto se tornará mais importante quando o software do dispositivo BLE alcançar a nova especificação Bluetooth V5 Mesh. Então Wifi2BLE fornecerá acesso à Internet para a automação de toda a sua casa.

Recomendado: