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 repositorio de Amazon-FreeRTOS, que está en desuso. Recomendamos empezar por aquí al crear un nuevo proyecto. Si ya tiene un proyecto FreeRTOS existente basado en el repositorio Amazon FreeRTOS, ahora obsoleto, consulte Guía de migración del repositorio Github de Amazon-FreeRTOS.
Descripción general
Bluetooth de bajo consumo de FreeRTOS incluye tres aplicaciones de demostración:
-
Demostración de MQTT a través de Bluetooth de bajo consumo
Esta aplicación muestra cómo utilizar el servicio MQTT a través de Bluetooth de bajo consumo.
-
Demostración de Aprovisionamiento Wi-Fi
Esta aplicación muestra cómo utilizar el servicio de Aprovisionamiento Wi-FI de Bluetooth de bajo consumo.
-
Demostración de Servidor de atributos genéricos
Esta aplicación muestra cómo utilizar el middleware Bluetooth Low Energy de FreeRTOS APIs para crear un servidor GATT simple.
nota
Para configurar y ejecutar las demostraciones de FreeRTOS, siga los pasos que se indican en Comience con 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 de AWS IoT 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
-
Configurar una AWS cuenta en https://aws.amazon.com/
. -
Abra la consola de AWS IoT
y en el panel de navegación, elija Manage (Administrar) y después Things (Objetos). -
Elija Create (Crear) y después Create a single thing (Crear un solo objeto).
-
Escriba un nombre para el dispositivo y después elija Next (Siguiente).
-
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). Dado que los dispositivos móviles SDKs utilizan Amazon Cognito para la autenticación de dispositivos, no es necesario crear un certificado de dispositivo para las demostraciones que utilizan Bluetooth Low Energy.
Si va a conectar su microcontrolador a la nube directamente a través de Wi-Fi, seleccione Create certificate (Crear certificado), elija Activate (Activar) y, a continuación, descargue el certificado del objeto, una clave pública y una clave privada.
-
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
-
Abra la consola de Amazon Cognito y elija Administrar los grupos de usuarios.
-
Elija Crear un grupo de usuarios.
-
Asigne un nombre al grupo de usuarios y, a continuación, elija Review defaults (Revisar opciones predeterminadas).
-
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).
-
Escriba un nombre para el cliente de aplicación y, a continuación, seleccione Create app client (Crear cliente de aplicación).
-
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.
-
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
-
Abra la consola de Amazon Cognito y elija Administrar los grupos de identidades.
-
Escriba un nombre para el grupo de identidades.
-
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.
-
Elija Crear grupo.
-
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.
-
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
-
Abra la consola de IAM y, en el panel de navegación, elija Roles.
-
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).
-
Elija la pestaña JSON y pegue el siguiente código 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":[ "*" ] } ] }
-
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 IDs 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
-
Descarga o clona Freertos desde. GitHub
Consulte el archivo README.md para obtener instrucciones. -
Configure FreeRTOS en su microcontrolador.
Para obtener información acerca de cómo comenzar a utilizar FreeRTOS en un microcontrolador calificado para FreeRTOS, consulte la guía de su placa en Introducción a FreeRTOS.
nota
Puede ejecutar las demostraciones en cualquier microcontrolador habilitado para Bluetooth de bajo consumo con FreeRTOS y bibliotecas de Bluetooth de bajo consumo de FreeRTOS portadas. En la actualidad, el proyecto de demostración MQTT a través de Bluetooth de bajo consumo de FreeRTOS se transfiere totalmente a los siguientes dispositivos habilitados para Bluetooth de bajo consumo:
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á habilitado para Wi-Fi y Bluetooth de bajo consumo, las demostraciones comienzan con Bluetooth de bajo consumo de forma predeterminada. Si la conexión Bluetooth de bajo consumo se interrumpe y tu placa se interrumpe Wi-Fi-enabled, el administrador de red cambiará a una conexión Wi-Fi 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/
(donde vendor
/boards/board
/aws_demos/config_files/aws_iot_network_config.hvendor
es el nombre del proveedor y el board
nombre de la placa que va a utilizar para ejecutar las demostraciones).
Por ejemplo, si tiene Bluetooth de bajo consumo y Wi-Fi habilitados, la línea que comienza con #define configENABLED_NETWORKS
en aws_iot_network_config.h
lee como se indica a continuación:
#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 Bluetoothamazon-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.
-
Confirme que ha instalado el SDK para iOS para dispositivos Bluetooth de FreeRTOS.
-
Ejecute el siguiente comando desde
amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/
:$ pod install
-
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. -
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.
-
Abra la consola de AWS IoT
. -
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
yaws-account
por su AWS región e ID de cuenta.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource":"arn:aws:iot:
region
:account-id
:*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": "arn:aws:iot:region
:account-id
:*" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region
:account-id
:*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:*" } ] } -
Seleccione Crear.
-
-
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.
-
-
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
: 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.
-
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.
-
Confirme que ha instalado el SDK para Android para dispositivos Bluetooth de FreeRTOS.
-
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.
-
Abra la consola de AWS IoT
. -
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
yaws-account
por su AWS región e ID de cuenta.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource":"arn:aws:iot:
region
:account-id
:*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": "arn:aws:iot:region
:account-id
:*" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region
:account-id
:*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:*" } ] } -
Seleccione Crear.
-
-
Abre https://github.com/aws/amazon-freertos-ble-android- sdk/blob/master/app/src/main/java/software/amazon/freertos/demo/DemoConstants .java
y redefine las siguientes variables: -
AWS_IOT_POLICY_NAME
: el nombre de su AWS IoT póliza. -
AWS_IOT_REGION
: Tu AWS región.
-
-
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
-
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.
-
Ejecute el proyecto de demostración de Bluetooth de bajo consumo en su microcontrolador.
-
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
-
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.
nota
Todos los dispositivos con FreeRTOS y el servicio de información del dispositivo (
) que estén dentro del rango aparecen en la lista.freertos
/.../device_information -
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.
Puede desconectar de su microcontrolador arrastrando la línea a la izquierda.
-
Si se le solicita, empareje el microcontrolador y el dispositivo móvil.
Placa de FreeRTOS
Dispositivo móvil
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
-
Inicie sesión en la consola. AWS IoT
-
En el panel de navegación, seleccione Probar y, a continuación, seleccione el cliente de prueba MQTT para abrir el cliente MQTT.
-
En Tema de suscripción, escriba
y, a continuación, elija Suscribirse al tema.thing-name
/example/topic1
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
-
Abra
vendors/
y definavendor
/boards/board
/aws_demos/config_files/aws_demo_config.hCONFIG_MQTT_BLE_TRANSPORT_DEMO_ENABLED
. -
demos/include/aws_clientcredential.h
Ábrala y AWS IoT configúrelaclientcredentialMQTT_BROKER_ENDPOINT
con el punto final del broker. ConfigureclientcredentialIOT_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
-
Compile y ejecute el proyecto de demostración en su microcontrolador.
-
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.
-
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.
-
Después de habilitar el proxy MQTT, los mensajes de MQTT aparecen en el tema
y los datos se imprimen en el terminal UART.thing-name
/example/topic1
Aprovisionamiento Wi-Fi
El aprovisionamiento Wi-Fi es un servicio de Bluetooth de bajo consumo de FreeRTOS que le permite enviar de forma segura las credenciales de red Wi-Fi desde un dispositivo móvil a un microcontrolador a través de Bluetooth de bajo consumo. El código fuente del servicio de aprovisionamiento wifi se encuentra en
.freertos
/.../wifi_provisioning
nota
La versión de demostración del aprovisionamiento de redes Wi-Fi es compatible actualmente con el Espressif - C. ESP32 DevKit
Habilitación de la demostración
-
Habilite el servicio de aprovisionamiento de Wi-Fi. Abra
vendors/
yvendor
/boards/board
/aws_demos/config_files/iot_ble_config.h#define IOT_BLE_ENABLE_WIFI_PROVISIONING
configúrelo en1
(dondevendor
es el nombre del proveedor y elboard
nombre de la placa que va a utilizar para ejecutar las demostraciones).nota
El servicio de aprovisionamiento de Wi-Fi está deshabilitado de forma predeterminada.
-
Configure el Administrador de red para habilitar Bluetooth de bajo consumo y Wi-Fi.
Ejecución de la demostración
-
Compile y ejecute el proyecto de demostración en su microcontrolador.
-
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.
-
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.
-
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. Las redes Wi-Fi disponibles aparecen en una lista en Scanned Networks (Redes analizadas).
En la lista Scanned Networks (Redes analizadas), elija la red y, a continuación, introduzca el SSID y la contraseña, si es necesario.
El microcontrolador se conecta a la red y la guarda. La red aparece en Saved Networks (Redes guardadas).
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.

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 Bluetooth Low Energy Mobile SDKs, puede crear su propio cliente GATT para un dispositivo móvil que se conecte al servidor GATT de su microcontrolador y funcione en paralelo con la aplicación móvil de demostración.
Habilitación de la demostración
-
Habilite la demostración de GATT de Bluetooth de bajo consumo. En
vendors/
(dondevendor
/boards/board
/aws_demos/config_files/iot_ble_config.hvendor
es el nombre del proveedor yboard
es el nombre de la placa que va a utilizar para realizar las demostraciones), añada#define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 )
a la lista de instrucciones definitivas.nota
La demostración de GATT de Bluetooth de bajo consumo está deshabilitada de forma predeterminada.
-
Abra
, comentefreertos
/vendors/vendor
/boards/board
/aws_demos/config_files/aws_demo_config.h#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED
y definaCONFIG_BLE_GATT_SERVER_DEMO_ENABLED
.
Ejecución de la demostración
-
Compile y ejecute el proyecto de demostración en su microcontrolador.
-
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.
-
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.
-
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.
-
Elija Start Counter (Iniciar contador) para empezar a publicar datos en el tema de MQTT
.your-thing-name
/example/topicDespués de habilitar el proxy de MQTT, Hello World e incrementar el contador, los mensajes aparecen en el tema
.your-thing-name
/example/topic