View a markdown version of this page

Aplicaciones de demostración de Bluetooth de bajo consumo - FreeRTOS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aplicaciones de demostración de Bluetooth de bajo consumo

importante

Esta demostración está alojada en el Amazon-FreeRTOS repositorio, que está en desuso. Recomendamos empezar por aquí al crear un nuevo proyecto. Si ya tiene un proyecto de Freertos existente basado en el Amazon-FreeRTOS repositorio ahora obsoleto, consulte la. Amazon-FreeRTOS Guía de migración del repositorio de Github

Descripción general de

Bluetooth de bajo consumo de FreeRTOS incluye tres aplicaciones de demostración:

nota

Para configurar y ejecutar las demostraciones de FreeRTOS, siga los pasos que se indican en Introducción a FreeRTOS.

Requisitos previos

Para seguir estas demostraciones, necesita un microcontrolador con capacidades Bluetooth de bajo consumo. También necesita el SDK para iOS para dispositivos Bluetooth de FreeRTOS o el SDK para Android para dispositivos Bluetooth de FreeRTOS.

Configuración AWS IoT y Amazon Cognito para Freertos Bluetooth de bajo consumo

Para conectar sus dispositivos a AWS IoT través de MQTT, debe configurar Amazon AWS IoT Cognito.

Para configurar AWS IoT
  1. Configure una AWS cuenta en. https://aws.amazon.com/

  2. Abra la consola de AWS IoT y en el panel de navegación, elija Manage (Administrar) y después Things (Objetos).

  3. Elija Create (Crear) y después Create a single thing (Crear un solo objeto).

  4. Escriba un nombre para el dispositivo y después elija Next (Siguiente).

  5. Si va a conectar su microcontrolador a la nube a través de un dispositivo móvil, elija Create thing without certificate (Crear objeto sin certificado). Debido a que los SDK para móviles utilizan Amazon Cognito para autenticar los dispositivos, no es necesario crear un certificado de dispositivo para las demostraciones que utilizan Bluetooth de bajo consumo.

    Si va a conectar el microcontrolador directamente a la nube Wi-Fi, seleccione Crear certificado, Activar y, a continuación, descargue el certificado, la clave pública y la clave privada del dispositivo.

  6. Elija el objeto que acaba de crear en la lista de objetos registrados y, a continuación, elija Interact (Interactuar) en la página del objeto. Anote el punto final de la API AWS IoT REST.

Para obtener más información sobre la configuración, consulta la sección Cómo empezar con AWS IoT.

Creación de un grupo de usuarios de Amazon Cognito
  1. Abra la consola de Amazon Cognito y elija Administrar los grupos de usuarios.

  2. Elija Crear un grupo de usuarios.

  3. Asigne un nombre al grupo de usuarios y, a continuación, elija Review defaults (Revisar opciones predeterminadas).

  4. En el panel de navegación, elija App clients (Clientes de aplicación) y después elija Add an app client (Añadir un cliente de aplicación).

  5. Escriba un nombre para el cliente de aplicación y, a continuación, seleccione Create app client (Crear cliente de aplicación).

  6. En el panel de navegación, seleccione Review (Revisar) y, a continuación, seleccione Create pool (Crear grupo).

    Anote el ID de grupo que aparece en la página General Settings (Configuración general) del grupo de usuarios.

  7. En el panel de navegación, elija App clients (Clientes de aplicación) y después elija Show details (Mostrar detalles). Anote el ID y el secreto del cliente de aplicación.

Creación de un grupo de identidades de Amazon Cognito
  1. Abra la consola de Amazon Cognito y elija Administrar los grupos de identidades.

  2. Escriba un nombre para el grupo de identidades.

  3. Expanda Authentication providers (Proveedores de autenticación), elija la pestaña Cognito y después escriba el ID del grupo de usuarios y el ID del cliente de aplicación.

  4. Elija Crear grupo.

  5. Expanda View Details (Ver detalles) y anote los dos nombres de roles de IAM. Elija Permitir para crear los roles de IAM para que las identidades autenticadas y no autenticadas tengan acceso a Amazon Cognito.

  6. Elija Edit identity pool (Editar grupo de identidades). Anote el ID del grupo de identidades. Debe tener el formato us-west-2:12345678-1234-1234-1234-123456789012.

Para obtener más información sobre cómo configurar Amazon Cognito, consulte Introducción a Amazon Cognito.

Creación y asociación de una política de IAM a la identidad autenticada
  1. Abra la consola de IAM y, en el panel de navegación, elija Roles.

  2. Busque y seleccione el rol de la identidad autenticada, elija Attach policies (Asociar políticas) y, a continuación, elija Add inline policy (Añadir política insertada).

  3. Elija la pestaña JSON y pegue el siguiente código JSON:

    JSON
    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:AttachPolicy", "iot:AttachPrincipalPolicy", "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource":[ "*" ] } ] }
  4. Elija Review policy (Revisar política), escriba un nombre para la política y después elija Create policy (Crear política).

Tenga a mano su información AWS IoT y la de Amazon Cognito. Necesita el punto de conexión y los identificadores para autenticar su aplicación móvil en la AWS nube.

Configuración del entorno de FreeRTOS para Bluetooth de bajo consumo

Para configurar su entorno, necesita descargar FreeRTOS con la Biblioteca de Bluetooth de bajo consumo en su microcontrolador y descargar y configurar el SDK para móviles para dispositivos Bluetooth de FreeRTOS en su dispositivo móvil.

Configuración del entorno del microcontrolador con Bluetooth de bajo consumo de FreeRTOS
  1. Descarga o clona Freertos desde. GitHub Consulte las instrucciones en README.mdel archivo.

  2. Configure FreeRTOS en su microcontrolador.

    Para obtener información sobre cómo empezar a usar FreeRTOS en un FreeRTOS-qualified microcontrolador, consulta la guía de tu placa en Cómo empezar a usar FreeRTOS.

    nota

    Puede ejecutar las demostraciones en cualquier Energy-enabled microcontrolador Bluetooth Low con las bibliotecas FreeRTOS y FreeRTOS Bluetooth Low Energy portadas. Actualmente, el proyecto de MQTT a través de Bluetooth de bajo consumo demostración de FreeRTOS está completamente adaptado a los siguientes dispositivos Bluetooth Low Energy-enabled :

Componentes comunes

Las aplicaciones de demostración de FreeRTOS tienen dos componentes comunes:

  • Administrador de red

  • Aplicación de demostración de SDK para móviles de Bluetooth de bajo consumo

Administrador de red

El Administrador de red administra la conexión de red del microcontrolador. Se encuentra en su directorio de FreeRTOS en demos/network_manager/aws_iot_network_manager.c. Si el administrador de red está activado tanto Wi-Fi para Bluetooth Low Energy como para Bluetooth Low Energy, las demostraciones comienzan con Bluetooth Low Energy de forma predeterminada. Si la conexión Bluetooth de bajo consumo se interrumpe y tu placa está interrumpida Wi-Fi-enabled, el administrador de red cambiará a una Wi-Fi conexión disponible para evitar que te desconectes de la red.

Para habilitar un tipo de conexión de red con el administrador de red, añada el tipo de conexión de red al configENABLED_NETWORKS parámetro en vendors/vendor/boards/board/aws_demos/config_files/aws_iot_network_config.h (donde vendor es el nombre del proveedor y el board nombre de la placa que va a utilizar para ejecutar las demostraciones).

Por ejemplo, si tienes Bluetooth de bajo consumo y Wi-Fi activado, la línea que comienza con #define configENABLED_NETWORKS in aws_iot_network_config.h será la siguiente:

#define configENABLED_NETWORKS ( AWSIOT_NETWORK_TYPE_BLE | AWSIOT_NETWORK_TYPE_WIFI )

Para obtener una lista de los tipos de conexión de red que se admiten actualmente, consulte las líneas que comienzan por #define AWSIOT_NETWORK_TYPE en aws_iot_network.h.

Aplicación de demostración de SDK para móviles de Bluetooth de bajo consumo de FreeRTOS

La aplicación de demostración del SDK móvil Bluetooth de bajo consumo de energía de FreeRTOS se encuentra GitHub en Android SDK para dispositivos Bluetooth FreeRTOS y en amazon-freertos-ble-android-sdk/app el SDK iOS para dispositivos Bluetooth FreeRTOS en. amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo En este ejemplo, utilizamos capturas de pantalla de la versión iOS de la aplicación de demostración móvil.

nota

Si está utilizando un dispositivo iOS, necesita Xcode para crear la aplicación móvil de demostración. Si está utilizando un dispositivo Android, puede utilizar Android Studio para crear la aplicación móvil de demostración.

Configuración de la aplicación de demostración del SDK de iOS

Cuando defina las variables de configuración, utilice el formato del los valores de marcador de posición proporcionados en los archivos de configuración.

  1. Confirme que ha instalado el SDK para iOS para dispositivos Bluetooth de FreeRTOS.

  2. Ejecute el siguiente comando desde amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/:

    $ pod install
  3. Abra el proyecto amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/AmazonFreeRTOSDemo.xcworkspace con Xcode y cambie la cuenta del desarrollador de la firma por su cuenta.

  4. Crea una AWS IoT política en tu región (si aún no lo has hecho).

    nota

    Esta política es diferente de la política de IAM creada para la identidad autenticada de Amazon Cognito.

    1. Abra la consola de AWS IoT.

    2. En el panel de navegación, elija Secure (Seguridad), elija Policies (Políticas) y, a continuación, elija Create (Crear). Especifique un nombre que identifique la política. En la sección Añadir declaraciones, elija Modo avanzado. Copie y pegue la siguiente política JSON en la ventana del editor de políticas. Sustituya aws-region y aws-account por su AWS región e ID de cuenta.

    3. Seleccione Crear.

  5. Abra amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/AmazonFreeRTOSDemo/Amazon/AmazonConstants.swift y redefina las siguientes variables:

    • region: Tu AWS región.

    • iotPolicyName: El nombre AWS IoT de su póliza.

    • mqttCustomTopic: el tema de MQTT en el que desea publicar.

  6. Abra amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/AmazonFreeRTOSDemo/Support/awsconfiguration.json.

    En CognitoIdentity, redefina las siguientes variables:

    • PoolId: su ID de grupo de identidades de Amazon Cognito.

    • Region: Su AWS región.

    En CognitoUserPool, redefina las siguientes variables:

    • PoolId: su ID de grupo de usuarios de Amazon Cognito.

    • AppClientId: el ID de cliente de aplicación.

    • AppClientSecret: el secreto del cliente de aplicación.

    • Region: Su AWS región.

Configuración de la aplicación de demostración del SDK de Android

Cuando defina las variables de configuración, utilice el formato del los valores de marcador de posición proporcionados en los archivos de configuración.

  1. Confirme que ha instalado el SDK para Android para dispositivos Bluetooth de FreeRTOS.

  2. Cree una AWS IoT política en su región (si aún no lo ha hecho).

    nota

    Esta política es diferente de la política de IAM creada para la identidad autenticada de Amazon Cognito.

    1. Abra la consola de AWS IoT.

    2. En el panel de navegación, elija Secure (Seguridad), elija Policies (Políticas) y, a continuación, elija Create (Crear). Especifique un nombre que identifique la política. En la sección Añadir declaraciones, elija Modo avanzado. Copie y pegue la siguiente política JSON en la ventana del editor de políticas. Sustituya aws-region y aws-account por su AWS región e ID de cuenta.

    3. Seleccione Crear.

  3. Abre https://github.com/aws/amazon-freertos-ble-android-sdk/blob/master/app/src/main/java/software/amazon/freertos/demo/DemoConstants.javay redefine las siguientes variables:

    • AWS_IOT_POLICY_NAME: el nombre AWS IoT de su póliza.

    • AWS_IOT_REGION: Su AWS región.

  4. Abrir https://github.com/aws/amazon-freertos-ble-android-sdk/blob/master/app/src/main/res/raw/awsconfiguration.json.

    En CognitoIdentity, redefina las siguientes variables:

    • PoolId: su ID de grupo de identidades de Amazon Cognito.

    • Region: Tu AWS región.

    En CognitoUserPool, redefina las siguientes variables:

    • PoolId: su ID de grupo de usuarios de Amazon Cognito.

    • AppClientId: el ID de cliente de aplicación.

    • AppClientSecret: el secreto del cliente de aplicación.

    • Region: Su AWS región.

Detección y establecimiento de conexiones seguras con su microcontrolador a través de Bluetooth de bajo consumo
  1. Para vincular el microcontrolador y el dispositivo móvil de forma segura (paso 6), necesita un emulador de terminal en serie con capacidades de entrada y salida (por ejemplo, TeraTerm). Configure el terminal para que se conecte a la placa mediante una conexión en serie, tal como se indica en Instalación de un emulador de terminal.

  2. Ejecute el proyecto de demostración de Bluetooth de bajo consumo en su microcontrolador.

  3. Ejecute la aplicación de demostración del SDK para móviles de Bluetooth de bajo consumo en su dispositivo móvil.

    Para iniciar la aplicación de demostración en el SDK de Android desde la línea de comandos, ejecute el siguiente comando:

    $ ./gradlew installDebug
  4. Confirme que su microcontrolador aparece en Devices (Dispositivos) en la aplicación de demostración del SDK para móviles de Bluetooth de bajo consumo.

    Página de administración de dispositivos que muestra un dispositivo ESP32 con su identificador único.
    nota

    Todos los dispositivos con FreeRTOS y el servicio de información del dispositivo (freertos/.../device_information) que estén dentro del rango aparecen en la lista.

  5. Elija su microcontrolador en la lista de dispositivos. La aplicación establece una conexión con la placa y una línea verde aparece junto al dispositivo conectado.

    Se muestra el ID del dispositivo ESP32.

    Puede desconectar de su microcontrolador arrastrando la línea a la izquierda.

    Página de dispositivos que muestra un ID de dispositivo ESP32 y otro ID de dispositivo.
  6. Si se le solicita, empareje el microcontrolador y el dispositivo móvil.

    Placa de FreeRTOS

    El resultado de la consola muestra la desconexión del dispositivo BLE, la desconexión del servicio MQTT, el inicio del anuncio, la conexión BLE al dispositivo remoto y una solicitud de comparación numérica.

    Dispositivo móvil

    El cuadro de diálogo de solicitud de emparejamiento Bluetooth para el dispositivo «ESP32» muestra el código «465520» para confirmarlo en el «ESP32».

    Si el código de comparación numérica es el mismo en ambos dispositivos, empareje los dispositivos.

nota

La aplicación de demostración de SDK para móviles de Bluetooth de bajo consumo utiliza Amazon Cognito para la autenticación del usuario. Asegúrese de que ha configurado un usuario y grupos de identidades de Amazon Cognito y que ha asociado políticas de IAM a identidades autenticadas.

MQTT a través de Bluetooth de bajo consumo

En la demostración de MQTT a través de Bluetooth Low Energy, su microcontrolador publica los mensajes en la AWS nube a través de un proxy MQTT.

Suscripción a un tema MQTT de demostración
  1. Inicie sesión en la consola. AWS IoT

  2. En el panel de navegación, seleccione Probar y, a continuación, seleccione el cliente de prueba MQTT para abrir el cliente MQTT.

  3. En Tema de suscripción, escriba thing-name/example/topic1 y, a continuación, elija Suscribirse al tema.

Si utiliza Bluetooth de bajo consumo para emparejar el microcontrolador con su dispositivo móvil, los mensajes de MQTT se dirigen a través de la aplicación de demostración del SDK para móviles de Bluetooth de bajo consumo en su dispositivo móvil.

Habilitación de la demostración a través de Bluetooth de bajo consumo
  1. Abra vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h y defina CONFIG_MQTT_BLE_TRANSPORT_DEMO_ENABLED.

  2. demos/include/aws_clientcredential.hÁbrala y AWS IoT configúrela clientcredentialMQTT_BROKER_ENDPOINT con el punto final del broker. Configure clientcredentialIOT_THING_NAME con el nombre del objeto del dispositivo microcontrolador BLE. El punto final del AWS IoT broker se puede obtener desde la AWS IoT consola seleccionando Configuración en el panel de navegación izquierdo, o mediante la CLI ejecutando el comando:aws iot describe-endpoint --endpoint-type=iot:Data-ATS.

    nota

    Tanto el AWS IoT punto final como el nombre de la cosa deben estar en la misma región en la que están configurados la identidad cognitiva y el grupo de usuarios.

Ejecución de la demostración
  1. Compile y ejecute el proyecto de demostración en su microcontrolador.

  2. Asegúrese de que ha emparejado la placa y el dispositivo móvil mediante Aplicación de demostración de SDK para móviles de Bluetooth de bajo consumo de FreeRTOS.

  3. En la lista Devices (Dispositivos) en la aplicación de demostración para móviles, elija el microcontrolador y, a continuación, elija MQTT Proxy (Proxy de MQTT) para abrir la configuración del proxy de MQTT.

    Lista de tres ID de dispositivos ESP32, con las opciones MQTT Proxy, Network Config y Custom GATT MQTT a continuación.
  4. Después de habilitar el proxy MQTT, los mensajes de MQTT aparecen en el tema thing-name/example/topic1 y los datos se imprimen en el terminal UART.

Wi-Fi aprovisionamiento

Wi-Fi El aprovisionamiento es un servicio Bluetooth de bajo consumo de FreeRTOS que le permite Wi-Fi enviar de forma segura credenciales de red desde un dispositivo móvil a un microcontrolador a través de Bluetooth de bajo consumo. El código fuente del servicio de Wi-Fi aprovisionamiento se encuentra en. freertos/.../wifi_provisioning

nota

Actualmente, la demostración Wi-Fi de aprovisionamiento es compatible con el Espressif. ESP32-DevKitC

Habilitación de la demostración
  1. Habilite el servicio de aprovisionamiento. Wi-Fi vendors/vendor/boards/board/aws_demos/config_files/iot_ble_config.hÁbralo y #define IOT_BLE_ENABLE_WIFI_PROVISIONING configúrelo en 1 (donde vendor es el nombre del proveedor y el board nombre de la placa que va a utilizar para ejecutar las demostraciones).

    nota

    El servicio de Wi-Fi aprovisionamiento está deshabilitado de forma predeterminada.

  2. Configure el Administrador de red para habilitar Bluetooth de bajo consumo y Wi-Fi.

Ejecución de la demostración
  1. Compile y ejecute el proyecto de demostración en su microcontrolador.

  2. Asegúrese de que ha emparejado el microcontrolador y el dispositivo móvil mediante Aplicación de demostración de SDK para móviles de Bluetooth de bajo consumo de FreeRTOS.

  3. En la lista Devices (Dispositivos) de la aplicación móvil de demostración, elija su microcontrolador y, a continuación, elija Network Config (Configurar red) para abrir los ajustes de configuración de red.

    Lista de tres ID de dispositivos ESP32, con las opciones MQTT Proxy, Network Config y Custom GATT MQTT a continuación.
  4. Después de elegir Network Config (Config. de red) para la placa, el microcontrolador envía una lista de las redes del entorno al dispositivo móvil. Wi-Fi Las redes disponibles aparecen en una lista en Redes escaneadas.

    La interfaz de administración de dispositivos ESP32 muestra que no hay redes guardadas, dos redes wifi abiertas escaneadas, una con seguridad WPA2 y RSSI de -29, y la otra con seguridad abierta y RSSI de -50.

    En la lista Scanned Networks (Redes analizadas), elija la red y, a continuación, introduzca el SSID y la contraseña, si es necesario.

    Wi-Fi cuadro de diálogo para introducir la contraseña de la red con el campo de contraseña vacío y los botones Cancelar y Guardar.

    El microcontrolador se conecta a la red y la guarda. La red aparece en Saved Networks (Redes guardadas).

    Interfaz de red que muestra WiFi las redes guardadas y escaneadas, una protegida por WPA2 y la otra abierta, con indicadores de intensidad de señal.

Puede guardar varias redes en la aplicación de demostración para móviles. Al reiniciar la aplicación y la demostración, el microcontrolador se conecta a la primera red guardada, empezando por el principio de la lista Saved Networks (Redes guardadas).

Para cambiar el orden de prioridad de red o eliminar redes, en la página Network Configuration (Configuración de red), seleccione Editing Mode (Modo de edición). Para cambiar el orden de prioridad de red, elija el lado derecho de la red a la que desea dar prioridad y arrastre la red hacia arriba o hacia abajo. Para eliminar una red, elija el botón rojo en el lado izquierdo de la red que desea eliminar.

Pantalla de configuración de la red wifi que muestra las redes guardadas, las opciones de edición para eliminar o cambiar la prioridad y las redes escaneadas.

Servidor de atributos genéricos

En este ejemplo, la aplicación del servidor de atributos genéricos (GATT) de su microcontrolador envía un valor de contador simple a Aplicación de demostración de SDK para móviles de Bluetooth de bajo consumo de FreeRTOS.

Con el SDK para móviles de Bluetooth de bajo consumo, puede crear su propio cliente GATT para un dispositivo móvil que se conecta al servidor de GATT en su microcontrolador y se ejecuta en paralelo con la aplicación de demostración para móviles.

Habilitación de la demostración
  1. Habilite la demostración de GATT de Bluetooth de bajo consumo. En vendors/vendor/boards/board/aws_demos/config_files/iot_ble_config.h (donde vendor es el nombre del proveedor y el nombre de la placa que board está utilizando para ejecutar las demostraciones), añada #define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 ) a la lista de instrucciones definidas.

    nota

    La demostración de GATT de Bluetooth de bajo consumo está deshabilitada de forma predeterminada.

  2. Abra freertos/vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h, comente #define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED y defina CONFIG_BLE_GATT_SERVER_DEMO_ENABLED.

Ejecución de la demostración
  1. Compile y ejecute el proyecto de demostración en su microcontrolador.

  2. Asegúrese de que ha emparejado la placa y el dispositivo móvil mediante Aplicación de demostración de SDK para móviles de Bluetooth de bajo consumo de FreeRTOS.

  3. En la lista Devices (Dispositivos) de la aplicación, elija la placa y, a continuación, elija MQTT Proxy (Proxy de MQTT) para abrir la las opciones del proxy de MQTT.

    Lista de tres ID de dispositivos ESP32, con las opciones MQTT Proxy, Network Config y Custom GATT MQTT a continuación.
  4. Vuelva a la lista Devices (Dispositivos), elija la placa y, a continuación, seleccione Custom GATT MQTT (MQTT de GATT personalizado) para abrir las opciones de servicio GATT personalizado.

  5. Elija Start Counter (Iniciar contador) para empezar a publicar datos en el tema de MQTT your-thing-name/example/topic.

    Después de habilitar el proxy de MQTT, Hello World e incrementar el contador, los mensajes aparecen en el tema your-thing-name/example/topic.