Tabla de contenido:

Puente simple de WiFi a BLE (Bluetooth de baja energía): 9 pasos (con imágenes)
Puente simple de WiFi a BLE (Bluetooth de baja energía): 9 pasos (con imágenes)

Video: Puente simple de WiFi a BLE (Bluetooth de baja energía): 9 pasos (con imágenes)

Video: Puente simple de WiFi a BLE (Bluetooth de baja energía): 9 pasos (con imágenes)
Video: Modifique un PARLANTE portatil y ES INCREIBLE 2024, Mes de julio
Anonim
Puente simple de WiFi a BLE (Bluetooth de baja energía)
Puente simple de WiFi a BLE (Bluetooth de baja energía)
Puente simple de WiFi a BLE (Bluetooth de baja energía)
Puente simple de WiFi a BLE (Bluetooth de baja energía)
Puente simple de WiFi a BLE (Bluetooth de baja energía)
Puente simple de WiFi a BLE (Bluetooth de baja energía)

Actualización 4 de diciembre de 2017: bocetos revisados de Feather nRF52 y consejos de depuración. Se agregaron imágenes del puente montado en la caja

Este sencillo proyecto proporciona acceso WiFi a cualquier módulo Bluetooth Low Energy (BLE) que implemente el UART de Nordic con TX Notify. El puente Wifi2BLE es completamente transparente. Simplemente pasa los datos WiFi al dispositivo BLE y devuelve los datos del dispositivo BLE a la conexión WiFi.

El pfodDesignerV3 gratuito genera código para implementar un servicio UART nórdico en muchos módulos BLE, incluidos Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 y V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend y Flora Boards, Adafruit Bluefruit LE SPI (es decir, Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE o Bluefruit LE SPI Friend) y cualquier otra placa que le permita programar su propio servicio.

Este puente Wifi2BLE es adecuado para constructores sin experiencia que pueden soldar. Utiliza solo dos placas, un cable plano y dos resistencias

Además de las pruebas detalladas para cada placa, este instructivo incluye un paso de Ayuda: no funciona con más consejos para encontrar fallas.

Estas instrucciones también están disponibles en línea.

¿Por qué este proyecto?

Este proyecto resuelve una serie de problemas que tiene BLE (Bluetooth Low Energy).

  • Solo los teléfonos móviles y las computadoras recientes son compatibles con BLE. El puente Wifi2BLE permite que cualquier móvil o computadora con una conexión WiFi se conecte y controle el dispositivo BLE.
  • BLE tiene un alcance limitado. El puente Wifi2BLE permite acceder al dispositivo BLE desde cualquier lugar de la casa (donde haya conexión WiFi) y desde el exterior a través de Internet.
  • La creación de aplicaciones BLE requiere que aprenda Android o iOS. El puente Wifi2BLE proporciona una conexión telnet universal a través de cualquier programa de terminal. Además, puede agregar fácilmente una página web al módulo WiFi para crear su propia interfaz personalizada.
  • BLE V5 promete redes de malla para conectar todos sus dispositivos BLE domésticos, una vez que el software se ponga al día con la última especificación de Bluetooth. El puente Wifi2BLE utiliza un dispositivo BLE V5 y, por lo tanto, proporcionará acceso a Internet a esta red doméstica cuando llegue.

Mi uso inmediato para este proyecto es agregar el control de luz BLE de la sala de estar a la red WiFi para permitir que se controle desde cualquier lugar de la casa. Aunque este tutorial usa pfodApp como ejemplo de control de las placas BLE a través de WiFi, no necesita comprar pfodApp para completar este proyecto.

Paso 1: Lista de piezas

Costo ~ US $ 60 al 30 de noviembre de 2017, excluyendo el envío + una pequeña caja de plástico

Pluma de Adafruit nRF52 Bluefruit LE - nRF52832 - ~ US $ 25

Adafruit HUZZAH ESP8266 Breakout - ~ US $ 10

Cable plano con extremos hembra separados - Cable Bus Pirate ~ US $ 5 https://www.sparkfun.com/products/9556 O Cable IDC Socket Rainbow Breakout de 10 pines ~ US $ 4 https://www.sparkfun.com/products/ 9556 O similar

Cabeceras macho Break Away - Ángulo recto - ~ US $ 2

Cable serial USB a TTL 3V3 - ~ US $ 10 https://www.sparkfun.com/products/12977 (Preferido ya que tiene los pines etiquetados) O https://www.sparkfun.com/products/12977 (los pines NO son etiquetado)

Cable USB A a Micro B - ~ US $ 4 https://www.sparkfun.com/products/12977 (3 pies de largo) O ~ US $ 3 https://www.sparkfun.com/products/12977 (6 pulgadas de largo) O ~ US $ 2 https://www.sparkfun.com/products/12977 (6 pulgadas de largo) O ~ US $ 5 https://www.sparkfun.com/products/12977 (6 pies de largo) O similar

2 resistencias de 100 ohmios - ~ US $ 1

Fuente de alimentación USB (500mA o más) - ~ US $ 6 https://www.sparkfun.com/products/12890 O ~ US $ 7 https://www.adafruit.com/product/1994 O similar

Arduino IDE V1.8.5 y una computadora para ejecutarlo.

Para una caja de plástico utilicé una de Jaycar UB5 (azul) 83 mm x 54 mm x 31 mm ~ A $ 4

Paso 2: Circuito Wifi2BLE

Circuito Wifi2BLE
Circuito Wifi2BLE

El circuito Wifi2BLE se muestra arriba. Una versión en pdf está aquí. Como ves el circuito es muy sencillo. Solo 4 cables y dos resistencias de protección de 100 ohmios. Las resistencias de protección son en caso de que no conecte las líneas TX / RX después de programar el HUZZAH ESP8266 o el Feather nRF52.

NOTA: La marca de la placa Feather nRF52 para los pines TX y RX no es correcta. El pin TX es en realidad el que está al lado del pin DFU y el pin RX es el que está al lado del pin MISO

Asegúrese de conectar las líneas TX / RX como se muestra arriba. Afortunadamente, las resistencias de protección hicieron su trabajo y las placas no se dañaron mientras yo averiguaba por qué las placas no se llevaban entre sí.

Paso 3: Construcción de Wifi2BLE

Construcción Wifi2BLE
Construcción Wifi2BLE
Construcción Wifi2BLE
Construcción Wifi2BLE
Construcción Wifi2BLE
Construcción Wifi2BLE

Los pines del cabezal en ángulo recto se soldaron en el HUZZAH ESP8266 para permitir que se desenchufe para la programación. Se utilizan cuatro hilos del cable plano para conectar las dos placas. Mantenga los conectores de clavija hembra y corte el otro extremo del cable plano. Mi cable plano tenía los mismos colores que el cable de programación Sparkfun USB a TTL, así que elegí el cable para que coincidiera. Negro para GND, rojo para 5V +, naranja para TX (se conecta a ESP8266 RX) y marrón para RX (se conecta a ESP8266 TX)

Cableé las resistencias de protección en la parte posterior de la placa Feather nRF52. (Los constructores observadores que conocen sus códigos de resistencia verán que he usado dos resistencias de 68 ohmios que tengo en la mano en lugar de las de 100 ohmios) y luego las aislé con una envoltura retráctil.

El cable rojo está soldado al pin USB Feather nRF52 para recoger el USB 5V para alimentar el módulo HUZZAH ESP8266 y el cable negro está soldado al pin Feather nRF52 GND.

Eso es todo, excepto programar los módulos, como se describe a continuación, ponerlo en una caja de plástico y conectar una fuente de alimentación USB al Feather nRF52.

Paso 4: Programación Wifi2BLE

Programación Wifi2BLE
Programación Wifi2BLE
Programación Wifi2BLE
Programación Wifi2BLE
Programación Wifi2BLE
Programación Wifi2BLE

Programación del HUZZAH ESP8266

Para programar el escudo, siga las instrucciones dadas en https://github.com/esp8266/Arduino en Instalación con Boards Manager. Al abrir el Administrador de tableros desde el menú Herramientas → Tablero, seleccione Tipo Contribuido e instale la plataforma esp8266. Este proyecto fue compilado usando la versión 2.3.0 de ESP8266. Otras versiones tendrán su propio conjunto de errores y es posible que no funcionen con este código.

NOTA: NO use la instalación de Adafruit Board ya que el boceto que se usa aquí no se compilará bajo ese código.

Cierre y vuelva a abrir el IDE de Arduino y ahora puede seleccionar "Adafruit HUZZAH ESP8266" en el menú Herramientas → Tablero.

También debe instalar la última versión de la biblioteca pfodESP8266WiFiBufferedClient. Esta biblioteca funciona con el complemento IDE V2.3 de ESP8266.com. (Si ha instalado previamente la biblioteca pfodESP2866WiFi, elimine ese directorio de biblioteca por completo).

  • a) Descargue este archivo pfodESP8266WiFiBufferedClient.zip a su computadora, muévalo a su escritorio o alguna otra carpeta que pueda encontrar fácilmente
  • b) Luego use la opción de menú Arduino 1.8.5 IDE Sketch → Import Library → Add Library para instalarlo. (Si Arduino no le permite instalarlo porque la biblioteca ya existe, busque y elimine la carpeta pfodESP8266BufferedClient anterior y luego importe esta)
  • c) Detenga y reinicie el IDE de Arduino y en Archivo-> Ejemplos ahora debería ver pfodESP8266BufferedClient.

Configuración del ssid y la contraseña de la red, así como la IP y el puerto

Después de haber instalado la biblioteca pfodESP8266BufferedClient, abra el IDE de Arduino y copie este boceto, Wifi_Bridge.ino, en el IDE. Antes de programar el módulo, debe configurar el ssid y la contraseña de su red y elegir una IP no utilizada.

Edite estas tres líneas cerca de la parte superior de Wifi_Bridge.ino

char ssid = "**** ***"; char contraseña = "**** *****"; char staticIP = "10.1.1.180";

Utilizo la aplicación Fing (Android o iOS) para escanear mi red local e identificar la IP que ya se usa. Por lo general, es seguro elegir una IP no utilizada en el rango.180 a.254

Para empezar, puede dejar el número de puerto como 23, el puerto estándar para una conexión telnet.

Una vez que haya realizado esos cambios, puede programar el ESP8266.

Programación del HUZZAH ESP8266

Para programar el HUZZAH ESP8266, conecte el cable USB a serie como se muestra en la foto. Verifique la foto y su cableado. Consulte también los consejos de programación de ESP8266 (falló el espcomm)

Utilizo el cable serie Sparkfun USB a TTL 3V3 porque tiene marcados los cables TX y RX. Asegúrese de que el cable TX esté conectado al pin RX y el cable RX esté conectado al pin TX como se muestra arriba. Si está utilizando el cable Adafruit, no tiene los terminales marcados pero está codificado por colores, rojo es alimentación, negro es tierra, verde es TX y blanco es RX.

Conecte el cable USB a serie a su computadora y selecciónelo en el puerto COM en el menú Herramientas → Puerto. Deje la frecuencia de la CPU, el tamaño del flash y la velocidad de carga en sus configuraciones predeterminadas.

Luego ponga el módulo Adafruit HUZZAH ESP2866 en modo de programación manteniendo presionado el botón GPIO0 y haciendo clic en el botón Reset y luego soltando el botón GPIO0. El led GPIO0 debe permanecer tenuemente iluminado. Luego seleccione Archivo → Cargar o use el botón de flecha derecha para compilar y cargar el programa. Si recibe un mensaje de error al cargar, verifique que las conexiones de sus cables estén enchufados en los pines correctos y vuelva a intentarlo.

Una vez finalizada la programación, el LED rojo del módulo debería encenderse. Eso indica que se ha conectado con éxito a su red local e inició el servidor para aceptar una conexión.

Probando el HUZZAH ESP2866

Para probar el HUZZAH ESP2866, deje el cable de programación conectado y abra Arduino IDE Tools → Serial Monitor y configure 9600 baudios (esquina inferior derecha). Luego abra un programa de terminal en su computadora, uso TeraTerm para Windows y CoolTerm para Mac, y me conecto a la IP y al puerto No que configuró en el boceto Wifi_Bridge.ino.

Cuando conecte, el LED rojo en el módulo debería comenzar a parpadear, lo que indica que hay una conexión. Ahora debería poder escribir en la ventana de la terminal de su computadora y los caracteres deberían aparecer en la ventana del monitor del IDE de Arduino y viceversa.

Tiempo de espera de conexión wifi

El código Wifi_Bridge.ino tiene un tiempo de conexión.

uint32_t connectionTimeout = 60000; // Tiempo de espera de conexión de 60 segundos

Si no hay datos WiFi recibidos por el módulo HUZZAH ESP8266 durante 60 segundos, los módulos cierran la conexión y esperan una nueva. Esto asegura que el módulo se recupere de las conexiones 'medio cerradas' que ocurren cuando el cliente simplemente desaparece debido a una mala conexión WiFi, pérdida de energía en el enrutador o apagado forzado del cliente. Consulte Detección de conexiones de socket TCP / IP semiabiertas (descartadas) para obtener más detalles.

Este tiempo de espera de conexión se establece en 60 segundos. pero puede disminuir o aumentar según sea necesario. Establecerlo en 0 significa que nunca se agota el tiempo de espera, lo cual no se recomienda.

Programación del Feather nRF52

Para programar el Feather nRF52, siga las instrucciones para descargar e instalar el soporte de la placa Arduino para el Feather nRF52. Compruebe que puede conectarse y programar la placa a través del cable USB.

NOTA: Desenchufe el módulo HUZZAH ESP8266 del Feather nRF52 antes de intentar programar el Feather

La conexión del Feather nRF52 a un dispositivo BLE consta de dos pasos. Primero identificando la dirección MAC (y tipo) en el dispositivo y verificando que sea compatible con el servicio Nordic UART con TX Notify y luego transfiriendo esa dirección y tipo al esquema del puente.

Paso 5: Conexión a un dispositivo BLE

Conexión a un dispositivo BLE
Conexión a un dispositivo BLE
Conexión a un dispositivo BLE
Conexión a un dispositivo BLE
Conexión a un dispositivo BLE
Conexión a un dispositivo BLE

Una vez programado el HUZZAH ESP8266, debe codificar la dirección BLE y el tipo de dispositivo al que desea conectarse en el boceto Feather nRF52. Este es un proceso de dos pasos. I) Ejecute el programa de escaneo para encontrar dispositivos BLE cercanos que implementen el servicio Nordic UART (TX Notify) y luego copie la salida de ese escáner en el boceto del puente Feather para que se conecte a ese dispositivo.

Escaneo de periféricos BLE

Para identificar periféricos BLE compatibles, cargue el programa central_bleuart_scanner.ino en su Feather nRF52. Este programa busca continuamente nuevos dispositivos y luego verifica si son compatibles con el servicio Nordic UART con TX Notify.

Servicio UART nórdico

El servicio Nordic UART consta de tres partes, el UUID del servicio y las características RX y TX. Aquí hay un código de muestra generado por pfodDesignerV3 para RedBear NanoV2

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

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

pfodDesignerV3 puede generar código de muestra para varios módulos BLE. Sin embargo, debido a que no existe una especificación BLE para una conexión UART "estándar", no todos los módulos utilizan el servicio Nordic UART. Por ejemplo, los módulos HM-10 (Itead BLE shield), RFduno y Romeo BLE utilizan sus propios servicios uart únicos y, por lo tanto, no se conectarán al Feather nRF52.

Se conectarán las siguientes placas: - Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 y V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend y Flora Boards, Adafruit Bluefruit LE SPI (es decir, Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE o Bluefruit LE SPI Friend) Así como tableros que se pueden codificar con servicios personalizados o tableros que pueden usar la biblioteca BLEPeripheral.

La placa de ejemplo utilizada aquí es Arduino / Genuino 101 con código generado por pfodDesignerV3. El pfodDesignerV3 gratuito le permite crear menús de pfodApp y luego genera el código Arduino necesario para mostrar ese menú exacto en su móvil Android usando pfodApp (pagado). pfodApp también se conectará a través de Wifi, así como Bluetooth Classic, BLE y SMS, por lo que puede conectarse a través de este puente Wifi2BLE. Sin embargo, incluso si no desea usar pfodApp como su aplicación de control, aún puede usar pfodDesignerV3 para generar un código de servicio Nordic UART para su placa BLE.

Este enlace tutorial describe la configuración del Arduino / Genuino 101 BLE y la creación de un control LED de encendido / apagado simple con pfodDesignerV3. El boceto producido por pfodDesignerV3 es Arduino101_led_control.ino

Programar el Arduino / Genuino 101 con el Arduino101_led_control.ino le permitirá conectarse con pfodApp y mostrar la siguiente pantalla en su móvil Android.

Sin embargo, esto es solo un ejemplo y no necesita comprar pfodApp para completar este proyecto. La parte importante es que la aplicación gratuita pfodDesignerV3 ha generado código para Arduino / Genuino 101 que implementa un servicio UART nórdico. Así que vamos a buscarlo.

Sin embargo, esto es solo un ejemplo y no necesita comprar pfodApp para completar este proyecto. La parte importante es que la aplicación gratuita pfodDesignerV3 ha generado código para Arduino / Genuino 101 que implementa un servicio UART nórdico. Así que vamos a buscarlo.

Búsqueda de un servicio UART nórdico

Con el módulo HUZZAH ESP8266 desconectado del Feather nRF52, programe el Feather nRF52 con central_bleuart_scanner.ino y luego abra Arduino IDE Tools → Serial Monitor y configure la velocidad en baudios en 9600. la primera captura de pantalla de arriba.

Como puede ver, el escáner encontró dos dispositivos BLE, un Arduino / Genuino 101 que encontró un servicio UART nórdico, PERO la característica TX no admitía Notificar. El escáner también encontró un módulo RFduino BLE, pero RFduino no usa el servicio Nordic UART, sino que usa uno propio. El Comité de Bluetooth tiene la culpa de esto por no especificar un servicio UART 'estándar', en lugar de dejar que cada fabricante invente el suyo.

Como se mencionó anteriormente, el código 101 fue generado por pfodDesignerV3 principalmente para su uso con pfodApp. pfodApp no es tan selectivo con TX Notify como lo es el código uart Feather nRF52. pfodApp funciona con el 101 según lo programado, pero el Feather nRF52 insiste en TX Notify, por lo que se necesita un pequeño cambio en el código para satisfacer al Feather.

Abra Arduino101_led_control.ino en el IDE de Arduino y cerca de la parte superior encontrará estas dos líneas. La segunda línea es solo una descripción de la característica y no afecta la operación.

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

Cámbialos a

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

Luego, vuelva a programar el 101 con esta versión editada, Arduino101_Notify_led_control.ino. Luego, cuando vuelva a ejecutar el escáner Feather nRF52 (central_bleuart_scanner.ino), Serial Monitor muestra la segunda captura de pantalla anterior.

No hay errores para el Genuino 101 ahora y el escáner imprime el código necesario para el boceto del puente Feather nRF52 para que se conecte al 101. El escáner verificará todos los dispositivos que encuentre dentro del alcance. El LED rojo parpadea una vez por cada dispositivo encontrado con Nordic UART Service (TX Notify).

Paso 6: Conexión a un periférico BLE

Indicaciones LED

El Feather nRF52 tiene dos leds, Azul y Rojo. Cuando la placa está conectada a un dispositivo BLE, el LED azul es constante, de lo contrario parpadea. El escáner no permanece conectado al dispositivo, por lo que su led azul suele parpadear. El LED rojo parpadea una vez para cada dispositivo Nordic UART Service (TX Notify). Cuando se ejecuta como un escáner, el LED rojo cuenta la cantidad de dispositivos Nordic UART Service (TX Notify) encontrados. Cuando se ejecuta como puente, el LED rojo parpadea una vez cuando se conecta a la dirección del código BLE.

Conexión a un periférico BLE

Ahora que el boceto del escáner ha proporcionado los detalles del dispositivo BLE al que desea conectarse, puede copiar la salida en el boceto central_bleuart_bridge.ino. Cerca de la parte superior de ese boceto encontrará el siguiente código.

// Estas siguientes tres líneas de código provienen de la salida 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;

Reemplace las tres líneas de código con la salida del escáner para el dispositivo BLE al que desea hacer un puente. Luego programe el Feather nRF52 con el boceto editado de central_bleuart_bridge.ino.

Prueba del boceto central_bleuart_bridge

Antes de volver a conectar el HUZZAH ESP8266 al Feather nRF52, pruebe la conexión a su dispositivo BLE. Dejando el Feather nRF52 conectado a su Arduino IDE, abra Herramientas → Monitor en serie a 9600 baudios y luego verifique que su dispositivo BLE de destino esté encendido.

Cuando se realiza la conexión a su dispositivo BLE, como se describió anteriormente, el LED azul se iluminará constantemente y el LED rojo parpadeará una vez cada 10 segundos aproximadamente. Esto le permite no establecer y mantener la conexión.

Luego, en Serial Monitor, puede ingresar los comandos que espera enviar a su dispositivo BLE y verlo operar y monitorear cualquier respuesta que envíe. Si todo está bien, puede apagar y conectar el módulo HUZZAH ESP8266.

Paso 7: Conexión al dispositivo BLE a través de WiFi - Poniéndolo todo junto

Una vez que haya programado y probado el módulo HUZZAH ESP8266 con su código puente (Wifi_Bridge.ino) configurado para su ssid de red y contraseña e IP Y haya programado y probado el Feather nRF52 con su código puente (central_bleuart_bridge.ino) configurado con la dirección del dispositivo BLE y escriba, luego puede enchufarlos juntos y enchufar un suministro USB al módulo Feather para encenderlos a ambos.

El LED rojo del módulo HUZZAH debe iluminarse de forma sólida mientras se conecta a su enrutador de red local y el LED Feather Blue debe iluminarse de forma fija cuando se conecta a su dispositivo BLE y el LED Feather Red debe parpadear una vez cada 10 segundos aproximadamente para indicar que está encendido El dispositivo BLE está conectado.

A continuación, abra su programa telnet y conéctese a la IP y al puerto de HUZZAH. El LED rojo de HUZZAH debe parpadear lentamente para indicar que su programa se ha conectado y debe enviar comandos a su dispositivo BLE a través de WiFi y ver cómo funciona el dispositivo BLE y ver cualquier respuesta en su ventana de telnet. Recuerde que si su dispositivo BLE no devuelve ningún dato durante 60 segundos, el código HUZZAH agotará el tiempo de conexión y se desconectará y el LED rojo de HUZZAH se volverá fijo nuevamente.

Paso 8: Ayuda: no funciona

Primero, realice los pasos de prueba detallados anteriormente, Probar el HUZZAH ESP2866 y Probar el boceto central_bleuart_bridge.

Problemas de escaneo

Si el escáner no puede encontrar su dispositivo BLE, está demasiado lejos o no tiene publicidad o ya está conectado a algo. Intente acercar el escáner y apague y encienda el dispositivo y apague todos los demás dispositivos móviles cercanos que puedan tener una conexión con el dispositivo BLE.

Si obtiene una salida de escáner como esta.

Conectado a 98: 4F: EE: 0C: FC: 8F Buscando servicio de UART nórdico… No se encontró ninguno O ¡¡¡¡¡No detectable !!!!! No se pudo identificar un servicio UART nórdico !!!!!!!! ¡Si esperaba un servicio UART nórdico, acerque el escáner al dispositivo BLE!

Es posible que esté lo suficientemente cerca del dispositivo BLE para detectarlo, pero no lo suficiente para hacer con éxito un descubrimiento de servicio para encontrar el servicio Nordic UART. Intente acercarse al dispositivo BLE.

Como último recurso, puede utilizar la aplicación gratuita Nordic nRF Connect para Android o iOS. Esa aplicación tiene mejor alcance y sensibilidad. Le dirá si el dispositivo BLE tiene un servicio UART nórdico. Sin embargo, aún necesitará hacer que el escáner funcione y se conecte e identifique el servicio Nordic UART antes de intentar usar el puente Wifi2BLE, ya que usa un código similar al del escáner.

Si desea profundizar, puede usar el módulo Adafruit Bluefruit LE Sniffer para ver qué hay en el aire.

Problemas de conexión BLE

Si logró escanear el dispositivo BLE, las causas más probables de problemas de conexión son I) el dispositivo BLE está demasiado lejos, II) algo más ya se ha conectado al dispositivo BLE

Problemas de conexión WiFi

Si el LED rojo HUZZAH ESP8266 no se enciende fijo, entonces no tiene conexión a su red a través de su enrutador. Verifique el ssid y la contraseña que tiene en Wifi_Bridge.ino y use la aplicación Fing para Android o iOS para verificar que la IP que asignó no se esté utilizando. Intente apagar todas sus computadoras y dispositivos y apague y encienda el enrutador (déjelo apagado durante 20 segundos) y luego escanee con Fing nuevamente. Finalmente, si la conexión sigue cayendo, recuerde la configuración de tiempo de espera de conexión en el código Wifi_Bridge.ino.

Paso 9: Extensiones y Conclusión

El proyecto que se presenta aquí es la versión más simple. Hay una serie de posibles extensiones como: -

  • El Feather nRF52 es capaz de conectarse a hasta 4 dispositivos BLE a la vez, por lo que puede modificar el código para agregar más direcciones válidas y controlar hasta 4 dispositivos desde una sola conexión WiFi. Vea el código de ejemplo que viene con la instalación de la placa Feather nRF52.
  • Puede hacer un agujero en su enrutador para proporcionar acceso al dispositivo BLE desde cualquier lugar de Internet. Consulte Conexión de dispositivos DIY IoT a Internet con pfodApp.
  • Puede usar el código de Cheap / Simple Wifi Shield para permitirle configurar los parámetros de la red WiFi para el HUZZAH a través de una página web, sin reprogramar. Debería agregar un botón de configuración al circuito.
  • Puede agregar un botón de configuración (usando el mismo botón que el anterior) que hace que el Feather nRF52 busque dispositivos BLE con un UART nórdico (Notificación de TX) y luego guarde los detalles de conexión para el que tiene la señal más fuerte. Para guardar el resultado, deberá usar la biblioteca nffs que viene con la instalación de la placa Adafruit nRF52.
  • Puede agregar una página web al código HUZZAH ESP8266 para proporcionar una interfaz personalizada para su dispositivo BLE. También puede usar pfodDesignerV3 y pfodApp agregar una interfaz personalizada sin cambios en este proyecto.

Conclusión

Este sencillo proyecto proporciona acceso WiFi a cualquier módulo Bluetooth Low Energy (BLE) que implemente el UART de Nordic con TX Notify. El puente Wifi2BLE es completamente transparente. Simplemente pasa los datos WiFi al dispositivo BLE y devuelve los datos del dispositivo BLE a la conexión WiFi.

La construcción simple y las instrucciones de prueba detalladas hacen de este un proyecto adecuado para principiantes que desean acceder a su dispositivo BLE desde su computadora o desde fuera del rango normal de BLE.

Este proyecto será más importante una vez que el software del dispositivo BLE se ponga al día con la nueva especificación Bluetooth V5 Mesh. Entonces Wifi2BLE proporcionará acceso a Internet para la automatización de toda su casa.

Recomendado: