Implemente rápidamente un dispositivo de IoT a batería con varios sensores certificado con Bluetooth 5.

Por Stephen Evanczuk

Colaboración de Editores de DigiKey de América del Norte

Los desarrolladores se enfrentan a una creciente demanda de diseños portátiles de varios sensores con Bluetooth en diversos mercados, pero encontrar soluciones eficaces ha sido un desafío. Además del requisito fundamental de un rendimiento de potencia ultra baja, la capacidad para crear prototipos, evaluar y personalizar rápidamente estos diseños en aplicaciones de Internet de las Cosas (IoT) de dispositivo a nube, se ha vuelto esencial para aprovechar las oportunidades que se van presentando.

En este artículo se describe el sistema en chip (SoC) de un procesador Bluetooth de potencia ultra baja de ON Semiconductor y se muestra cómo el SoC, o su versión asociada de sistema en paquete (SiP), cumple con los requisitos fundamentales de los diseños a batería. Una placa de evaluación asociada y un entorno de desarrollo de IoT simplifican aún más y en gran medida el proceso de creación de aplicaciones de dispositivos a la nube de varios sensores.

Aplicaciones Bluetooth de baja potencia

Los dispositivos a batería con Bluetooth proporcionan la conectividad y la capacidad de procesamiento necesarias en aplicaciones de productos inteligentes que van desde dispositivos portátiles de estado físico, monitores médicos, iluminación, cerraduras, artefactos, automóviles y muchos más. Las expectativas de los usuarios y las presiones de la competencia continúan impulsando la necesidad de aplicaciones más completas alimentadas con datos más precisos de un mayor número de sensores. En algunas áreas, como las aplicaciones industriales, las capacidades de varios sensores son esenciales para detectar el movimiento, la vibración o el choque, la temperatura, el nivel de humedad u otros datos necesarios para garantizar la seguridad de los trabajadores, el estado del equipo o la gestión básica de activos.

En las actividades cotidianas de los usuarios, estos dispositivos no solo deben ofrecer datos de manera confiable desde varios sensores, sino que también deben reducir la necesidad de reemplazar o recargar las baterías con frecuencia. Esto es fundamental para una experiencia del usuario satisfactoria. Al mismo tiempo, las soluciones subyacentes deben reducir el costo y la complejidad generalmente asociados con el diseño de productos Bluetooth a batería.

Una de las soluciones, el SoC NCH-RSL10-101WC51-ABG RSL10 de ON Semiconductor cumple con los requisitos de una operación de potencia ultra baja, mientras que a la vez proporciona la base de hardware para SiP y placas de evaluación que ayudan a acelerar el desarrollo de productos finales. Utilizadas con el software de ON Semiconductor para el desarrollo personalizado o con DK IoT Studio de DigiKey para un desarrollo rápido, las soluciones integradas basadas en RSL10 permiten a los desarrolladores implementar y evaluar rápidamente aplicaciones de varios sensores de potencia ultra baja.

Interior del SoC inalámbrico con Bluetooth RSL10

El RSL10 es un SoC inalámbrico certificado con Bluetooth 5 diseñado específicamente para satisfacer la creciente necesidad de diseños de potencia ultra baja en dispositivos portátiles, productos móviles y otros productos conectados. Con su completo conjunto de subsistemas integrados y bloques funcionales, el RSL10 ofrece una solución de un solo chip capaz de cumplir con los requisitos de los dispositivos típicos de IoT con Bluetooth y los dispositivos portátiles (Figura 1).

Diagrama del SoC RSL10 de ON Semiconductor (haga clic para ampliar)Figura 1: El SoC RSL10 de ON Semiconductor tiene integrados los subsistemas de procesador y radio para proporcionar una solución completa de potencia ultra baja para los dispositivos certificados con Bluetooth 5. (Fuente de la imagen: ON Semiconductor)

Los principales bloques de procesamiento del dispositivo incluyen un núcleo Arm® Cortex®-M3, un núcleo de procesamiento de señal digital (DSP) de arquitectura dual Harvard de 32 bits LPDSP32 patentado, y un subsistema de radio certificado con Bluetooth 5 completo; todo compatible con áreas de memoria dedicadas y compartidas. Para proteger el código y los datos, un bloque de IP proporciona mecanismos para impedir el acceso externo a la memoria flash en chip, la memoria de acceso aleatorio (RAM) o el núcleo del dispositivo. Junto con un conjunto completo de periféricos en serie estándar, el dispositivo proporciona un convertidor analógico a digital (ADC) de cuatro canales, entradas y salidas de propósito general (GPIO) e interfaces de audio. Un conjunto de reguladores de voltaje suministra individualmente dominios de energía internos, lo que permite que el dispositivo funcione con una sola fuente de voltaje que varía de 1.1 voltios a 3.3 voltios.

Aunque es capaz de admitir una variedad de protocolos de red de área personal inalámbrica (WPAN) 802.15.4 de baja velocidad de datos, el RSL10 brinda soporte integral para Bluetooth a través de una combinación de hardware y software integrados. El soporte de hardware se basa en el front end integrado de radiofrecuencia (RF) que implementa la capa física de Bluetooth (PHY). Al trabajar con el front end de RF, el controlador de banda base proporciona soporte de hardware para las capas de procesamiento de paquetes y cuadros de la pila de protocolos Bluetooth. Aquí, un pequeño núcleo de software integrado proporciona servicios de gestión de eventos y mensajes utilizados para la gestión del tráfico de RF, el intercambio de mensajes y la funcionalidad del temporizador. Por último, una biblioteca de Bluetooth y las bibliotecas de perfiles asociadas se ejecutan en el procesador Arm Cortex-M3 para completar la pila Bluetooth entera para el software de la aplicación (Figura 2).

Diagrama de la pila Bluetooth completa del SoC RSL10 de ON SemiconductorFigura 2: El SoC RSL10 de ON Semiconductor proporciona una pila Bluetooth completa a través de una combinación de software que se ejecuta en el núcleo Arm Cortex-M3 y un hardware dedicado que incluye un procesador de banda base y un front end de RF subyacente. (Fuente de la imagen: ON Semiconductor)

Sobre la base del soporte de hardware en el procesador de banda base y el front end de RF, la pila de software combina capas de servicio del protocolo Bluetooth de baja energía (BLE) de nivel inferior, incluido el control de enlace lógico y el protocolo de adaptación (L2CAP), el protocolo de atributo (ATT) y el protocolo de administrador de seguridad (SMP), el perfil de acceso genérico (GAP) que se usa para definir las conexiones y el perfil de atributo genérico (GATT) utilizado para definir intercambios de datos basados en servicios y características.

Junto con esta pila de protocolo Bluetooth, las bibliotecas de perfiles RSL10 admiten varios perfiles estándar de Bluetooth que a menudo se usan en aplicaciones portátiles, como las de frecuencia cardíaca, monitoreo de glucosa, presión arterial, perfil de carga inalámbrica Rezence y el dispositivo de interfaz humana (HID), así como los perfiles de ubicación, correr y andar en bicicleta, entre otros.

Rendimiento eficaz

Quizás lo más importante para los diseñadores es que el RSL10 consume relativamente poca corriente mientras que proporciona conectividad Bluetooth a velocidades de datos que van desde 62.5 a 2000 kilobits por segundo (kbps). La corriente de recepción máxima (Rx) con un suministro de 1.25 voltios (VBAT) es de 5.6 miliamperios (mA) y solo 3.0 mA con un VBAT de 3 voltios. La corriente de transmisión máxima (Tx) con un VBAT de 1.25 voltios es de 8.9 mA a una potencia de transmisión de 0 dBm (decibeles en referencia a un milivatio) y solo 4.6 mA con un VBAT de 3 voltios a una potencia de transmisión de 0 dBm.

La eficiencia energética del RSL10 se extiende a través de su arquitectura como lo demuestra el perfil de núcleo EEMBC ULPMark certificado líder en la industria de 1090 (3 voltios) y 1260 a 2.1 voltios.

Los desarrolladores pueden mejorar aún más la eficacia al deshabilitar selectivamente los bloques de hardware mientras el RSL10 está en modo de funcionamiento completo, o al colocar el dispositivo en modo de espera de baja potencia o en los modos de suspensión profunda durante los períodos de inactividad. Es notable que el RSL10 emplee automáticamente estos mecanismos de modos de potencia para mantener una conexión BLE entre los eventos del transceptor. Como resultado, el dispositivo puede realizar operaciones de publicidad Bluetooth en los tres canales de publicidad Bluetooth en intervalos de 5 segundos mientras consume solo 1.1 microamperios (mA).

El modo de espera proporciona a los desarrolladores una opción para conservar energía durante períodos de baja actividad que duran desde cientos de milisegundos (ms) hasta unos pocos milisegundos.

Durante el modo de espera, el reloj del RSL10 activa la lógica y la memoria y reduce su voltaje de suministro para reducir la corriente de fuga, lo que provoca un consumo de energía típico de solo 30 mA. Debido a que los circuitos de suministro en chip permanecen activos, el dispositivo puede volver a la operación activa con relativa rapidez.

El modo de suspensión profunda ofrece múltiples opciones para lograr niveles significativamente más bajos de consumo de energía mientras se mantiene la capacidad de responder a eventos externos. En este modo, con una retención de RAM de 8 kilobytes (Kbyte), el dispositivo consume solo 300 nanoamperios (nA) con un VBAT de 1.25 voltios, o solo 100 nA con un VBAT de 3 voltios. En el modo de suspensión más profunda, el dispositivo consume solo 50 nA a 1.25 voltios (25 nA a un VBAT de 3 voltios) mientras mantiene la capacidad de activarse en respuesta a las señales recibidas en el pin dedicado de ACTIVACIÓN.

Diseño integrado

Las amplias capacidades funcionales del RSL10 ayudan a los desarrolladores a crear diseños optimizados de energía sin comprometer el rendimiento o la conectividad Bluetooth. Su alto nivel de integración ayuda a simplificar el diseño del hardware. Las características como los capacitores integrados eliminan el requisito habitual de capacitores externos con el cristal de 32 kilohercios (kHz) para el reloj en tiempo real (RTC) o con los osciladores de cristal de 48 megahercios (MHz) para el front end de RF y el reloj del sistema principal. Como resultado, el RSL10 requiere un número mínimo de componentes externos para completar un diseño (Figura 3).

Diagrama de la configuración de RSL10 de ON Semiconductor para la operación en el modo reductorFigura 3: Con su alto nivel de integración, el SoC RSL10 de ON Semiconductor proporciona un diseño completo con relativamente pocos componentes externos como se muestra en esta configuración para el funcionamiento en el modo reductor. (Fuente de la imagen: ON Semiconductor)

El dispositivo integra varios reguladores de voltaje programables para suministrar bloques digitales, de memoria y de front end de RF. Una bomba de carga proporciona los niveles de voltaje más altos necesarios para los bloques analógicos y la memoria flash. Gracias a estos sistemas de alimentación integrados, el dispositivo puede funcionar con una sola fuente de alimentación de entre 1.1 voltios y 3.3 voltios.

Con niveles de voltaje inferiores a 1.4 voltios, los diseñadores pueden suministrar energía al dispositivo utilizando el regulador de caída baja (LDO) interno. Por encima de este nivel, el convertidor reductor integrado del dispositivo ayuda a mejorar la eficacia a costa de un inductor adicional. El diseño del circuito de estas dos configuraciones de fuente de alimentación difiere solo en que la operación en modo LDO permite la eliminación del inductor adicional entre los pines de VCC y VDC, como se muestra en la Figura 3. ON Semiconductor proporciona pautas para la colocación de componentes y el diseño físico de placas de circuito impreso con el RSL10.

Diseño del sistema con el RSL10

Para desarrolladores sin el tiempo o los recursos para construir estas interfaces de hardware, el SiPNCH-RSL10-101S51-ACG RSL10 de ON Semiconductor ofrece una alternativa eficaz a las implementaciones de hardware personalizadas para diseños de sistemas. Con medidas de 6 milímetros (mm) x 8 mm x 1.5 mm, el SiP RSL10 integra el SoC RSL10, una antena de radio y el conjunto completo de los componentes necesarios en un solo paquete. Con el SiP RSL10, los diseñadores pueden incorporar una solución completa de hardware Bluetooth con certificación de potencia ultra baja en sus diseños y centrar sus esfuerzos en los requisitos de hardware personalizados.

Los paquetes de software RSL10 de ON Semiconductor ayudan de manera similar a centrar los esfuerzos de desarrollo de software en los requisitos personalizados. Sobre la base de la capa de abstracción de hardware (HAL) del estándar de la interfaz del software del microcontrolador (CMSIS) Arm Cortex, el kit de desarrollo de software (SDK) RSL10 de ON Semiconductor proporciona controladores, herramientas y códigos de muestra distribuidos en el paquete CMSIS de RSL10 (Figura 4).

Diagrama del entorno de software RSL10 de ON SemiconductorFigura 4: El entorno de software RSL10 de ON Semiconductor proporciona un amplio conjunto de servicios y herramientas en el paquete de referencia, con paquetes adicionales que brindan soporte para la red de malla Bluetooth y el desarrollo de IoT de Bluetooth. (Fuente de la imagen: ON Semiconductor)

Entre los servicios más especializados, este paquete incluye soporte de Bluetooth, el sistema operativo en tiempo real FreeRTOS (RTOS) y una herramienta de actualización de firmware por aire (FOTA). Además, ON Semiconductor brinda soporte para una funcionalidad más especializada a través de paquetes por separado para redes de malla Bluetooth y para el desarrollo de IoT de Bluetooth (B-IDK). Por ejemplo, el paquete CMSIS de B-IDK proporciona servicios relacionados con el IoT, incluidos controladores de sensores, soporte para conectividad en la nube y muestras de software de nivel de la aplicación relacionadas.

Para un desarrollo personalizado, los ingenieros de software simplemente cargan los paquetes de referencia y los paquetes opcionales en su entorno de desarrollo integrado (IDE). La distribución del software RSL10 admite el IDE propio de ON Semiconductor, así como los entornos integrados de Workbench Arm Keil µVision e IAR. Después de cargar los paquetes, los desarrolladores pueden explorar aplicaciones de muestra y estudiar las implementaciones de las características clave.

Placa de varios sensores de BLE, lista para implementarse

Juntos, el SiP RSL10 y el SDK RSL10 pueden impulsar el desarrollo de dispositivos personalizados con Bluetooth que puedan cumplir con los estrictos requisitos de funcionamiento con potencia ultra baja. Sin embargo, en algunas aplicaciones, el tiempo y los recursos necesarios para crear soluciones personalizadas pueden no estar disponibles, ni incluso ser necesarios.

Por ejemplo, los monitores industriales de varios sensores o las cerraduras inteligentes y los interruptores de luz pueden necesitar un pequeño dispositivo con Bluetooth capaz de prolongar la vida útil de la batería mientras entregan datos de varios tipos de sensores. Para estas aplicaciones, el kit de evaluación de varios sensoresRSL10-SENSE-GEVK de ON Semiconductor puede proporcionar una solución de hardware inmediata. Con certificación internacional, la placa del kit de evaluación viene lista para implementarse en aplicaciones de potencia ultra baja.

La placa RSL10-SENSE-GEVK incluye un SiP RSL10, varios sensores, una memoria programable y borrable de solo lectura (EEPROM) de comunicaciones cerca del campo (NFC) N24RF64DWPT3G de 64 Kbyte de ON Semiconductor, un LED RGB y botones programables. La placa ocupa un espacio circular de menos de 30 mm de diámetro. Esto es solo un poco más grande que la batería de celda tipo moneda CR2032 y la antena NFC flexible incluida en el kit (Figura 5).

Imagen de la placa de evaluación RSL10-SENSE-GEVK de ON SemiconductorFigura 5: La placa de evaluación RSL10-SENSE-GEVK de ON Semiconductor combina un SiP RSL10 con una amplia gama de sensores que generalmente se requieren en dispositivos portátiles y de IoT. (Fuente de la imagen: ON Semiconductor)

La placa viene cargada previamente con un firmware diseñado para demostrar el funcionamiento de los múltiples sensores de la placa, que incluyen:

  • Sensor de luz ambiental (NOA1305 de ON Semiconductor)
  • Unidad de medición inercial (Bosch Sensortec BHI160) con acelerómetro de tres ejes y giroscopio de tres ejes
  • Sensor geomagnético digital de tres ejes (Bosch Sensortec BMM150)
  • Sensores ambientales (Bosch Sensortec BME680) que incluyen sensores de gas, presión, humedad y temperatura
  • Micrófono digital

Para ayudar a los desarrolladores a evaluar rápidamente la recopilación de los sensores y el rendimiento de RSL10 con la placa RSL10-SENSE-GEVK, ON Semiconductor proporciona una aplicación móvil, RSL10 Sense and Control, disponible en las tiendas de aplicaciones Android e iOS.

Esta aplicación, que se ejecuta en un dispositivo móvil con capacidad de Bluetooth, permite a los desarrolladores monitorear el consumo de energía con diferentes configuraciones de sensores, intervalos de muestreo y ciclos, y el modo de alimentación RSL10, entre otros parámetros. Después de ajustar la configuración deseada del sensor en la aplicación, esta muestra los resultados en una serie de paneles (Figura 6).

Imagen de la aplicación móvil RSL10 Sense and Control de ON SemiconductorFigura 6: La aplicación móvil RSL10 Sense and Control de ON Semiconductor proporciona una solución lista para evaluar el rendimiento de los numerosos sensores de la placa de evaluación RSL10-SENSE-GEVK. (Fuente de la imagen: ON Semiconductor)

Los desarrolladores pueden ver y modificar el código de demostración utilizando la distribución del paquete CMSIS y las opciones del IDE mencionadas anteriormente. Después de generar un firmware nuevo, los desarrolladores deben cargar la imagen usando el cabezal de aguja de 10 pines con un adaptador, como el Tag-Connect TC2050-IDC-NL. Aunque este adaptador no está incluido en el kit de evaluación de varios sensores RSL10-SENSE-GEVK, una versión de depuración del kit, el RSL10-SENSE-DB-GEVK, proporciona un enchufe de depuración de 10 pines soldado y un depurador Segger Microcontroller Systems J-Link LITE Cortex para conectarse a este enchufe.

Desarrollo rápido con DK IoT Studio

La placa de evaluación de varios sensores RSL10-SENSE-GEVK puede eliminar el desarrollo del hardware de una amplia gama de aplicaciones de varios sensores que necesitan una batería de mayor duración. Para muchas de estas aplicaciones, una herramienta de desarrollo en línea por separado de DigiKey puede eliminar la necesidad de codificación de software para el desarrollo rápido de prototipos o incluso sistemas de producción. Mediante el uso de la placa de evaluación RSL10-SENSE-GEVK, DK IoT Studio proporciona un enfoque de desarrollo sin código que permite a los desarrolladores implementar rápidamente aplicaciones completas de sensor a la nube.

Mediante la interfaz gráfica de DK IoT Studio, los desarrolladores arrastran y sueltan elementos que representan una amplia gama de artículos de hardware y software que se usan en aplicaciones de IoT. Los elementos de hardware van desde pines de GPIO individuales hasta dispositivos completos del sensor, incluidos los presentes en la placa de evaluación RSL10-SENSE-GEVK. Los elementos de software van desde características típicas de bajo nivel como bucles y condicionales utilizados en cualquier programa, hasta interfaces de servicio en la nube.

Mediante el uso de combinaciones de estos elementos, los desarrolladores trabajan en pestañas separadas en la interfaz gráfica de DK IoT Studio para definir las operaciones que se ejecutan en el RSL10, en la aplicación complementaria DK IoT Studio y en la nube, todo sin escribir ningún código de software.

Este enfoque se basa en un conjunto de "habilidades" y "eventos" asociados con cualquier elemento. Por ejemplo, el sensor ambiental integrado BME680 viene con un conjunto de capacidades para leer la temperatura, la presión y la humedad. Otros elementos funcionales, como un elemento de intervalo, vienen con la capacidad de activar periódicamente eventos que causan la ejecución de la capacidad de un elemento. Otros representan las comunicaciones Bluetooth con un dispositivo móvil con Bluetooth, como un teléfono inteligente.

Crear una aplicación con este enfoque es sencillo, ya que DigiKey proporciona una serie de proyectos de demostración para la placa de evaluación RSL10-SENSE-GEVK. Por ejemplo, en un proyecto de demostración de BME680, un elemento de intervalo activa las capacidades del sensor BME680 para leer la temperatura, la presión y la humedad cada 1000 ms. A su vez, los elementos Bluetooth asociados para cada salida del sensor provocan la transmisión de esas lecturas del sensor a un dispositivo Bluetooth (Figura 7).

Imagen de la pestaña del dispositivo DK IoT Studio de DigiKey (haga clic para ampliar)Figura 7: En la pestaña del dispositivo DK IoT Studio de DigiKey, los desarrolladores combinan elementos para leer periódicamente los datos del sensor ambiental en la placa de evaluación RSL10-SENSE-GEVK y transmitir los datos del sensor a través de una conexión Bluetooth, a una aplicación móvil complementaria. (Fuente de la imagen: DigiKey)

La pestaña de la aplicación permite a los desarrolladores crear una interfaz de usuario dentro de la aplicación móvil de DigiKey para mostrar los datos recibidos a través de Bluetooth. En la demostración del proyecto de BME680, esta aplicación no solo muestra la temperatura, la presión y la humedad, sino que también envía la lectura de cada sensor a un elemento de la nube (Figura 8).

Imagen de la pestaña de la aplicación DK IoT Studio de DigiKey (haga clic para ampliar)Figura 8: La pestaña de la aplicación DK IoT Studio de DigiKey proporciona un lienzo para mostrar los datos del sensor en la aplicación móvil asociada, así como un panel para generar los datos mostrados y realizar otras operaciones en la aplicación móvil, como enviar datos a la nube. (Fuente de la imagen: DigiKey)

El uso de una aplicación intermedia para transmitir los datos del sensor a una aplicación en la nube se usa comúnmente para evitar la necesidad de conexiones directas desde el dispositivo de IoT a la nube. Para los dispositivos con capacidades de comunicación Wi-Fi incorporadas, los datos del sensor pueden, por supuesto, enviarse directamente a la nube, y DK IoT Studio proporciona los elementos de Wi-Fi y otros que respaldan ese enfoque. En cualquier caso, se especifican las operaciones en la nube en la pestaña de la nube. En este caso, los resultados de temperatura, presión y humedad se almacenan en los servicios de almacenamiento de datos en la nube proporcionados con DK IoT Studio (Figura 9).

Imagen de la pestaña de la nube DK IoT Studio (haga clic para ampliar)Figura 9: En la pestaña de la nube DK IoT Studio, los desarrolladores definen las operaciones basadas en la nube, como el almacenamiento en la nube de los datos de los sensores. (Fuente de la imagen: DigiKey)

Después de completar la definición de dispositivo, aplicación y roles en la nube, el usuario puede compilar el proyecto en DK IoT Studio haciendo clic en el ícono de compilación. Después de la generación del código, el usuario puede cargar el firmware resultante en la RSL10-SENSE-GEVK. Aquí, una pequeña herramienta que se ejecuta en el sistema del usuario completa la transferencia desde DK IoT Studio a la placa de evaluación conectada a ese sistema. La aplicación y los conjuntos de códigos en la nube se guardan automáticamente en el entorno de la nube de DK IoT Studio.

Si bien este enfoque puede eliminar la necesidad de desarrollar códigos de aplicaciones, los eventos y las habilidades asociados con cada elemento se definen en un conjunto de rutinas de software, que se llama biblioteca de elementos integrada (EEL), que se ejecuta en el entorno de desarrollo de DK IoT Studio.

Por ejemplo, la capacidad de "Leer temperatura" de BME680 invoca una abstracción bme680_get_sensor_() que se define en un módulo de lenguaje C de BME680 (Listado 1).

BME680_Status_t BME680_GetTempData( float *tempC )

Copie {        _BME680_StartMeasurement();          struct bme680_field_data data;        int8_t retval = bme680_get_sensor_data( &data, &_BME680_DriverConfig );          if ( retval != 0 )        {               ATMO_PLATFORM_DebugPrint( "Error getting sensor data! %d\r\n", retval );               *tempC = 0;        }        else        {               *tempC = data.temperature / 100.0;        }          _BME680_Sleep();        return BME680_Status_Success; } 

Listado 1: Subyacente a la interfaz gráfica de DK IoT Studio, el código asociado a cada elemento implementa una funcionalidad específica, como esta función que se invoca cada vez que se activa la capacidad "Leer temperatura". (Fuente del código: DigiKey).

Las rutinas de nivel bajo en el mismo módulo implementan las operaciones de manipulación de bits que se necesitan para extraer los datos deseados de los registros del sensor leídos por una rutina de nivel más bajo, bme680_get_regs() (Listado 2).

Copystatic int8_t read_field_data( struct bme680_field_data *data, struct bme680_dev *dev ){       int8_t rslt;       uint8_t buff[BME680_FIELD_LENGTH] = { 0 };       uint8_t gas_range;       uint32_t adc_temp;       uint32_t adc_pres;       uint16_t adc_hum;       uint16_t adc_gas_res;       uint8_t tries = 10;        rslt = null_ptr_check( dev );        do       {              if ( rslt == BME680_OK )              {                     rslt = bme680_get_regs( ( ( uint8_t ) ( BME680_FIELD0_ADDR ) ), buff, ( uint16_t ) BME680_FIELD_LENGTH,                                             dev );                      data->status = buff[0] & BME680_NEW_DATA_MSK;                     data->gas_index = buff[0] & BME680_GAS_INDEX_MSK;                     data->meas_index = buff[1];                      adc_pres = ( uint32_t ) ( ( ( uint32_t ) buff[2] * 4096 ) | ( ( uint32_t ) buff[3] * 16 )                                               | ( ( uint32_t ) buff[4] / 16 ) );                     adc_temp = ( uint32_t ) ( ( ( uint32_t ) buff[5] * 4096 ) | ( ( uint32_t ) buff[6] * 16 )                                               | ( ( uint32_t ) buff[7] / 16 ) );                     adc_hum = ( uint16_t ) ( ( ( uint32_t ) buff[8] * 256 ) | ( uint32_t ) buff[9] );                     adc_gas_res = ( uint16_t ) ( ( uint32_t ) buff[13] * 4 | ( ( ( uint32_t ) buff[14] ) / 64 ) );                     gas_range = buff[14] & BME680_GAS_RANGE_MSK;                      data->status |= buff[14] & BME680_GASM_VALID_MSK;                     data->status |= buff[14] & BME680_HEAT_STAB_MSK;                      if ( data->status & BME680_NEW_DATA_MSK )                     {                           data->temperature = calc_temperature( adc_temp, dev );                           data->pressure = calc_pressure( adc_pres, dev );                           data->humidity = calc_humidity( adc_hum, dev );                           data->gas_resistance = calc_gas_resistance( adc_gas_res, gas_range, dev );                            break;                     }                      dev->delay_ms( BME680_POLL_PERIOD_MS );              }               tries--;       }       while ( tries );        if ( !tries )       {              rslt = BME680_W_NO_NEW_DATA;       }        return rslt;}

Listado 2: El código asociado a cada elemento en DK IoT Studio traduce llamadas de función más abstractas de servicios de un nivel más alto a operaciones específicas, como la extracción de datos de los registros del sensor del entorno. (Fuente del código: DigiKey).

Como sugerimos anteriormente, los elementos brindan métodos como condicionales que los desarrolladores de software usan comúnmente y métodos como el control de GPIO que normalmente usan los desarrolladores de hardware. En el entorno de DK IoT Studio, los elementos correspondientes proporcionan un enfoque simple de arrastrar y soltar para probar las condiciones y llevar a cabo las acciones correspondientes. Por ejemplo, otro proyecto de demostración muestra cómo se puede encender el LED en la placa RSL10-SENSE-GEVK si la salida del sensor de luz ambiente de la placa excede algún valor especificado (Figura 10).

Imagen de DK IoT Studio de DigiKeyFigura 10: DK IoT Studio proporciona los elementos necesarios para realizar una lógica más abstracta, como la verificación de valores, así como operaciones de bajo nivel, como configurar una GPIO conectada al LED en la placa de evaluación RSL10-SENSE-GEVK de ON Semiconductor. (Fuente de la imagen: DigiKey)

Del lado de la nube, se puede usar una prueba similar para generar metadatos para la aplicación móvil. En este caso, los metadatos pueden usarse en la aplicación para establecer un ícono de alerta que indique un problema detectado por el sensor (Figura 11).

Imagen de la comprobación de estado de DK IoT Studio para establecer los metadatos de estadoFigura 11: DK IoT Studio admite operaciones más sofisticadas en la nube y en la aplicación móvil, como esta verificación de condición para establecer metadatos de estado de la aplicación y preservar los datos en el almacenamiento en la nube. (Fuente de la imagen: DigiKey)

La ejecución del código subyacente responsable de alternar el LED sigue a una cadena de llamadas que comienza con la invocación de una función de nivel superior asociada a ese evento en el entorno subyacente. Esa función, SetPinState, es un puntero de función establecido durante la inicialización para apuntar a una función de nivel inferior, ATMO_ONSEMI_GPIO_SetPinState(), la cual implementa la funcionalidad requerida, que finalmente llama a una función de biblioteca RSL10 SDK de ON Semiconductor, Sys_DIO_Config(), que establece el pin especificado (Listado 3).

CopyATMO_GPIO_Status_t ATMO_GPIO_SetPinState( ATMO_DriverInstanceHandle_t instance, ATMO_GPIO_Device_Pin_t pin,        ATMO_GPIO_PinState_t state ){       if ( !( instance < numberOfGPIODriverInstance ) )       {              return ATMO_GPIO_Status_Invalid;       }        return gpioInstances[instance]->SetPinState( gpioInstancesData[instance], pin, state );}

Listado 3: DK IoT Studio proporciona un conjunto de abstracciones comunes que se aplican en capas de servicio de nivel inferior, que implementan operaciones específicas de hardware, como la configuración de bits de GPIO. (Fuente del código: DigiKey).

Para toda su simplicidad, DK IoT Studio proporciona un entorno de desarrollo altamente flexible. Los desarrolladores pueden basarse en el código EEL de un elemento tal cual está o modificarlo según sea necesario para su aplicación. Durante el desarrollo, la pestaña del dispositivo DK IoT Studio proporciona un panel que contiene el código subyacente de alto nivel asociado a los elementos colocados en el lienzo de la pestaña (como se ve en la Figura 7). Para las aplicaciones que requieren una gestión especial, los desarrolladores pueden modificar inmediatamente el código en ese panel. Otras capacidades, como el elemento de "función", agregan una definición de función vacía al código, lo que permite a los desarrolladores complementar la ejecución con características y funciones disponibles en el entorno.

En la práctica, el enfoque de DK IoT Studio combina la simplicidad del desarrollo de arrastrar y soltar sin código con flexibilidad y rendimiento limitados solo por la cantidad de memoria y capacidades del procesador de los dispositivos de hardware subyacentes. Mediante el uso de este enfoque con la placa RSL10-SENSE-GEVK, los desarrolladores pueden implementar rápidamente prototipos completamente funcionales con conectividad de dispositivo a nube y soporte de aplicaciones móviles.

Conclusión

Continúan surgiendo nuevas aplicaciones de dispositivos de varios sensores en diversos mercados, incluidas las áreas de consumidor, automotriz e industrial. Para muchas de estas aplicaciones, la conectividad Bluetooth y la vida útil prolongada de la batería son primordiales, pero al mismo tiempo los diseñadores necesitan un ecosistema de respaldo para poder responder también a la presión constante del tiempo de comercialización con enfoques de diseño flexibles. Para abordar esos desafíos, las placas de evaluación RSL10 SoC, RSL10 SiP, y RSL10-SENSE-GEVK de ON Semiconductor ofrecen una serie de soluciones que se ajustan a los requisitos del diseño personalizado, los módulos integrados y las soluciones completas de varios sensores, respectivamente. Mediante el uso de estas plataformas de hardware, los desarrolladores pueden implementar aplicaciones personalizadas usando el kit de desarrollo de software RSL10 y los paquetes de distribución de software asociados.

Para un desarrollo rápido de aplicaciones de dispositivo a la nube de varios sensores, la combinación de la placa de evaluación RSL10-SENSE-GEVK de ON Semiconductor e IDE de DK IoT Studio proporciona una plataforma de desarrollo rápida y potente para implementar soluciones de varios sensores de potencia ultra baja en aplicaciones completas de dispositivo a la nube. Juntos, el hardware RSL10 y las opciones de software disponibles proporcionan una plataforma altamente flexible para el desarrollo y la implementación de dispositivos Bluetooth certificados capaces de satisfacer la demanda de una batería de mayor duración.

DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre el autor

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk tiene más de 20 años de experiencia escribiendo para y sobre la industria de electrónica en un amplio rango de temas, entre ellos hardware, software, sistemas y aplicaciones, que incluyen IoT. Se doctoróen neurociencias (redes neuronales) y trabajó en la industria aeroespacial en sistemas seguros con distribución masiva y métodos de aceleración de algoritmos. Actualmente, cuando no escribe artículos sobre tecnología e ingeniería, trabaja en aplicaciones de aprendizaje profundo sobre sistemas de reconocimiento y recomendaciones.

Información sobre la editorial

Editores de DigiKey de América del Norte