Déployer rapidement un dispositif IoT multicapteur certifié Bluetooth 5 et alimenté par batterie

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

Les développeurs font face à une demande de conceptions multicapteurs Bluetooth portatives qui croît rapidement dans des marchés divers. Or, trouver des solutions efficaces constitue un véritable défi. Outre l'exigence fondamentale de performances ultrabasse consommation, la capacité à procéder rapidement au prototypage, à l'évaluation et à la personnalisation de ces conceptions dans des applications liées à l'Internet des objets (IoT) dispositif-vers-cloud devient essentielle pour tirer profit d'opportunités en constante évolution.

Cet article présente un système sur puce (SoC) ultrabasse consommation d'ON Semiconductor avec processeur Bluetooth et montre comment ce système sur puce, ou sa version « système en boîtier » (SiP) associée, satisfait aux exigences fondamentales des conceptions alimentées par batterie. Une carte d'évaluation associée et un environnement de développement IoT simplifient considérablement le processus de création d'applications multicapteurs dispositif-vers-cloud.

Applications Bluetooth basse consommation

Les dispositifs Bluetooth alimentés par batterie apportent la connectivité et la capacité de traitement nécessaires aux applications de produits intelligents allant des dispositifs corporels de fitness aux moniteurs médicaux, en passant par l'éclairage, les serrures, les appareils électroménagers, les automobiles, et bien plus encore. Les attentes des utilisateurs et la pression de la concurrence donnent lieu à un besoin constant d'applications plus complètes, alimentées par des données plus précises provenant d'un plus grand nombre de capteurs. Dans certains domaines, comme les applications industrielles, les capacités multicapteurs sont essentielles pour détecter les mouvements, les vibrations ou les chocs, la température, le taux d'humidité ou d'autres données nécessaires en vue d'assurer la sécurité de l'opérateur, de connaître l'état de l'équipement ou de procéder à la gestion de base des ressources.

Dans les activités quotidiennes des utilisateurs, ces dispositifs doivent non seulement fournir de manière fiable des données provenant de différents capteurs, mais aussi réduire la nécessité de remplacer ou de recharger fréquemment les batteries. Ces deux conditions sont essentielles à une expérience utilisateur satisfaisante. Dans le même temps, les solutions sous-jacentes doivent contribuer à réduire le coût et la complexité généralement liés à la conception de produits Bluetooth alimentés par batterie.

Parmi ces solutions, le système sur puce RSL10 NCH-RSL10-101WC51-ABG d'ON Semiconductor répond aux exigences d'un fonctionnement ultrabasse consommation, tout en fournissant la base matérielle nécessaire au SiP et aux cartes d'évaluation, des éléments qui contribuent à accélérer le développement des produits finaux. Utilisées avec le logiciel d'ON Semiconductor pour un développement personnalisé ou avec DK IoT Studio de DigiKey pour un développement rapide, les solutions intégrées basées sur RSL10 permettent aux développeurs de déployer et d'évaluer rapidement des applications multicapteurs ultrabasse consommation.

À l'intérieur du système sur puce sans fil Bluetooth RSL10

Le RSL10 est un système sur puce sans fil certifié Bluetooth 5 conçu pour répondre spécifiquement au besoin croissant de conceptions ultrabasse consommation dans les dispositifs corporels, les produits mobiles et d'autres produits connectés. Avec son ensemble complet de sous-systèmes et de blocs fonctionnels intégrés, le RSL10 offre une solution monopuce capable de répondre aux exigences des dispositifs IoT Bluetooth classiques et corporels types (Figure 1).

Schéma du système sur puce RSL10 d'ON Semiconductor (cliquez pour agrandir)Figure 1 : Le système sur puce RSL10 d'ON Semiconductor intègre des sous-systèmes radio et de processeur pour offrir aux dispositifs certifiés Bluetooth 5 une solution complète ultrabasse consommation. (Source de l'image : ON Semiconductor)

Les principaux blocs de traitement du dispositif incluent un cœur Arm® Cortex®-M3, un cœur de traitement numérique des signaux (DSP) avec architecture Harvard double 32 bits LPDSP32 propriétaire, et un sous-système radio complet certifié Bluetooth 5, le tout étant pris en charge par des zones de mémoire dédiées et partagées. Pour protéger le code et les données, un bloc de propriété intellectuelle offre des mécanismes visant à empêcher l'accès externe à la mémoire Flash sur puce du dispositif, à sa mémoire vive (RAM) ou à son cœur. Outre un ensemble complet de périphériques série standard, le dispositif fournit un convertisseur analogique-numérique (CAN) à quatre canaux, des E/S à usage général (GPIO) et des interfaces audio. Un ensemble de régulateurs de tension alimentent individuellement les domaines de puissance internes, permettant ainsi au dispositif de fonctionner à partir d'une seule source de tension allant de 1,1 V à 3,3 V.

Le RSL10 est capable de prendre en charge différents protocoles de réseau personnel sans fil (WPAN) 802.15.4 à faible débit de données. Toutefois, il assure aussi une prise en charge totale du Bluetooth en combinant du matériel et des logiciels intégrés. La prise en charge matérielle s'appuie sur le circuit d'entrée radiofréquence (RF) intégré qui implémente la couche physique (PHY) Bluetooth. En collaborant avec le circuit d'entrée RF, le contrôleur de bande de base assure la prise en charge matérielle pour les couches de traitement de paquets et de trames de la pile de protocoles Bluetooth. Ici, un petit noyau logiciel intégré offre des services de gestion d'événements et de messages utilisés pour la gestion du trafic RF, l'échange de messages et la fonctionnalité de temporisation. Enfin, une bibliothèque Bluetooth et des bibliothèques de profils associées s'exécutent sur le processeur Arm Cortex-M3 afin de compléter la pile Bluetooth pour le logiciel d'application (Figure 2).

Schéma de la pile Bluetooth complète du système sur puce RSL10 d'ON SemiconductorFigure 2 : Le système sur puce RSL10 d'ON Semiconductor fournit une pile Bluetooth complète en combinant un logiciel s'exécutant dans le cœur Arm Cortex-M3 et du matériel dédié comprenant un processeur de bande de base et un circuit d'entrée RF sous-jacent. (Source de l'image : ON Semiconductor)

S'appuyant sur la prise en charge matérielle dans le circuit d'entrée RF et le processeur de bande de base, la pile logicielle combine les couches de services du protocole Bluetooth Low Energy (BLE), notamment le protocole d'adaptation et de contrôle de liaison logique (L2CAP), le protocole d'attributs (ATT) et le protocole du gestionnaire de sécurité (SMP), le profil d'accès générique (GAP) utilisé pour définir les connexions, ainsi que le profil d'attributs génériques (GATT) utilisé pour définir les échanges de données selon les services et les caractéristiques.

Parallèlement à cette pile de protocoles Bluetooth, les bibliothèques de profils du RSL10 prennent en charge plusieurs profils Bluetooth standard souvent utilisés dans les applications de dispositifs corporels, comme la fréquence cardiaque, la surveillance de la glycémie, la pression sanguine, le profil de charge sans fil Rezence et le dispositif d'interface humaine (HID), ainsi que des profils pour la localisation, la course et le cyclisme, entre autres.

Performances efficaces

Argument de taille pour les concepteurs : le RSL10 consomme relativement peu de courant tout en offrant une connectivité Bluetooth à des débits de données allant de 62,5 à 2000 kilobits par seconde (kbps). Le courant de crête en réception (Rx) avec une alimentation de 1,25 volt (VBAT) est de 5,6 milliampères (mA) et de seulement 3,0 mA avec une VBAT de 3 volts. Le courant de crête en transmission (Tx) avec une VBAT de 1,25 volts est de 8,9 mA à une puissance de transmission de 0 dBm (décibels rapportés à un milliwatt) et de seulement 4,6 mA avec une VBAT de 3 volts à une puissance de transmission de 0 dBm.

Le rendement énergétique du RSL10 s'étend dans toute son architecture, comme le démontrent les excellents résultats obtenus au test de performances ULPMark Core Profile du consortium EEMBC : 1090 à 3 volts et 1260 à 2,1 volts.

Les développeurs peuvent encore améliorer le rendement en désactivant sélectivement des blocs matériels lorsque le RSL10 est en mode d'exécution totale, ou en le mettant en mode veille basse consommation ou en mode veille profonde pendant les périodes d'inactivité. Il est à noter que le RSL10 emploie automatiquement ces mécanismes de mode de consommation afin de maintenir une connexion BLE entre les événements d'émetteur-récepteur. Par conséquent, le dispositif peut effectuer des opérations d'annonce Bluetooth sur les trois canaux d'annonce Bluetooth à des intervalles de 5 secondes (s) tout en consommant seulement 1,1 microampère (mA).

Le mode veille offre aux développeurs une option de conservation de l'alimentation pendant les périodes de faible activité qui durent de quelques centaines de millisecondes (ms) à seulement quelques millisecondes.

En mode veille, l'horloge du RSL10 limite la logique et la mémoire, et réduit sa tension d'alimentation pour diminuer le courant de fuite, ce qui entraîne une consommation énergétique typique de seulement 30 mA. Les circuits d'alimentation sur puce restant actifs, le dispositif peut redevenir fonctionnel relativement vite.

Le mode veille profonde offre plusieurs options pour atteindre des niveaux significativement bas de consommation énergétique tout en maintenant la capacité à répondre aux événements externes. En fonctionnant dans ce mode avec une rétention RAM de 8 kilo-octets (Ko), le dispositif consomme seulement 300 nanoampères (nA) avec une VBAT de 1,25 volt, ou seulement 100 nA avec une VBAT de 3 volts. Dans le mode veille profonde le plus poussé, le dispositif consomme seulement 50 nA à 1,25 volt (25 nA à une VBAT de 3 volts) tout en maintenant la capacité à sortir du mode veille en réponse aux signaux reçus sur la broche WAKEUP (RÉVEIL) dédiée.

Conception intégrée

Les capacités fonctionnelles étendues du RSL10 aident les développeurs à créer des conceptions optimisées sur le plan de la consommation, sans compromettre les performances ni la connectivité Bluetooth. Son niveau élevé d'intégration contribue à simplifier la conception matérielle. Des fonctionnalités comme les condensateurs intégrés éliminent l'exigence habituelle de condensateurs externes avec un quartz de 32 kilohertz (kHz) pour l'horloge temps réel (RTC) ou d'oscillateurs à quartz de 48 mégahertz (MHz) pour le circuit d'entrée RF et l'horloge système principale. Par conséquent, le RSL10 requiert un nombre minimal de composants externes pour réaliser une conception (Figure 3).

Schéma de la configuration du RSL10 d'ON Semiconductor pour un fonctionnement en mode abaisseurFigure 3 : Grâce à son niveau élevé d'intégration, le système sur puce RSL10 d'ON Semiconductor offre une conception complète avec relativement peu de composants externes, comme indiqué dans cette configuration pour un fonctionnement en mode abaisseur. (Source de l'image : ON Semiconductor)

Le dispositif intègre plusieurs régulateurs de tension programmables pour alimenter les blocs numériques, de mémoire et de circuit d'entrée RF. Une pompe à charge offre les niveaux de tension supérieurs nécessaires aux blocs analogiques et à la mémoire Flash. Grâce à ces systèmes d'alimentation intégrés, le dispositif peut fonctionner à partir d'une seule source de tension comprise entre 1,1 volt et 3,3 volts.

À des niveaux de tension inférieurs à 1,4 volt, les concepteurs peuvent alimenter le dispositif au moyen de son régulateur à faible chute de tension (LDO) interne. Au-dessus de ce niveau, le convertisseur abaisseur intégré du dispositif permet d'améliorer le rendement moyennant une inductance supplémentaire. Dans la conception du circuit, la seule différence entre ces deux configurations de source d'alimentation s'opère au niveau du fonctionnement en mode LDO qui permet l'élimination de l'inductance supplémentaire entre les broches VCC et VDC, comme illustré à la Figure 3. ON Semiconductor fournit des consignes quant au placement des composants et à la conception physique des cartes à circuit imprimé avec le RSL10.

Conception système avec le RSL10

Pour les développeurs en manque de temps ou de ressources pour concevoir ces interfaces matérielles, le système en boîtier (SiP) RSL10 NCH-RSL10-101S51-ACG d'ON Semiconductor propose une alternative efficace aux implémentations matérielles personnalisées pour les conceptions système. Mesurant 6 mm x 8 mm x 1,5 mm, le système en boîtier RSL10 intègre, dans un seul boîtier, le système sur puce RSL10, une antenne radio et tous les composants nécessaires. Avec le système en boîtier RSL10, les concepteurs peuvent intégrer à leurs conceptions une solution matérielle Bluetooth complète, certifiée et ultrabasse consommation, et concentrer leurs efforts sur leurs exigences matérielles personnalisées.

De la même manière, les progiciels RSL10 d'ON Semiconductor permettent de concentrer les efforts de développement logiciel sur les exigences personnalisées. S'appuyant sur la couche d'abstraction matérielle (HAL) Arm Cortex Microcontroller Software Interface Standard (CMSIS), le kit de développement logiciel (SDK) RSL10 d'ON Semiconductor offre les pilotes, les utilitaires et le code d'exemple distribués dans le CMSIS-Pack RSL10 (Figure 4).

Schéma de l'environnement logiciel du RSL10 d'ON SemiconductorFigure 4 : L'environnement logiciel du RSL10 d'ON Semiconductor offre un large ensemble de services et d'utilitaires dans son pack de base, avec des packs supplémentaires qui assurent la prise en charge du réseau Bluetooth Mesh et du développement IoT Bluetooth. (Source de l'image : ON Semiconductor)

Parmi ses services plus spécialisés, ce pack inclut la prise en charge Bluetooth, le système d'exploitation en temps réel FreeRTOS et un utilitaire de mises à jour micrologicielles sans fil (FOTA). Par ailleurs, ON Semiconductor assure la prise en charge de fonctionnalités plus spécialisées grâce à des packs distincts pour le réseau Bluetooth Mesh et le développement IoT Bluetooth (B-IDK). Par exemple, le CMSIS-Pack B-IDK offre des services liés à l'IoT, notamment des pilotes de capteurs, la prise en charge de la connectivité cloud, ainsi que des logiciels d'exemple au niveau de l'application.

Pour le développement personnalisé, les ingénieurs logiciels n'ont qu'à charger les packs de base et les packs facultatifs dans leur environnement de développement intégré (IDE). La distribution de logiciels RSL10 prend en charge le propre environnement IDE d'ON Semiconductor, ainsi que les environnements Arm Keil µVision et IAR Embedded Workbench. Après avoir chargé les packs, les développeurs peuvent explorer les applications d'exemple et étudier l'implémentation des fonctionnalités clés.

Carte multicapteur BLE, prête à être déployée

S'ils sont associés, le système en boîtier RSL10 et le kit de développement logiciel RSL10 peuvent accélérer le développement de dispositifs Bluetooth personnalisés capables de satisfaire aux exigences strictes qu'impose un fonctionnement ultrabasse consommation. Toutefois, pour certaines applications, il se peut que le temps et les ressources nécessaires à la conception de solutions personnalisées soient indisponibles, voire inutiles.

Prenons l'exemple des moniteurs multicapteurs industriels ou des verrous et interrupteurs intelligents : ces dispositifs peuvent nécessiter un petit dispositif Bluetooth capable de prolonger l'autonomie de la batterie tout en fournissant des données provenant de plusieurs types de capteurs. Pour de telles applications, le kit d'évaluation multicapteur RSL10-SENSE-GEVK d'ON Semiconductor peut apporter une solution matérielle immédiate. Bénéficiant d'une certification internationale, la carte de ce kit d'évaluation est prête à être déployée dans des applications ultrabasse consommation.

La carte RSL10-SENSE-GEVK inclut un système en boîtier RSL10, plusieurs capteurs, une mémoire EEPROM de communication en champ proche (NFC) 64 Ko N24RF64DWPT3G d'ON Semiconductor, une LED RVB et des boutons programmables. Cette carte circulaire affiche un diamètre inférieur à 30 mm. C'est à peine plus que la pile bouton CR2032 et l'antenne NFC flexible incluses dans le kit (Figure 5).

Image de la carte d'évaluation RSL10-SENSE-GEVK d'ON SemiconductorFigure 5 : La carte d'évaluation RSL10-SENSE-GEVK d'ON Semiconductor associe un système en boîtier RSL10 à un large éventail de capteurs typiquement requis dans les dispositifs corporels et les dispositifs IoT. (Source de l'image : ON Semiconductor)

La carte est livrée avec un micrologiciel préchargé, conçu pour illustrer le fonctionnement des différents capteurs de la carte, notamment :

  • Un capteur de lumière ambiante (NOA1305 d'ON Semiconductor)
  • Une unité de mesure inertielle (BHI160 de Bosch Sensortec), dotée d'un accéléromètre et d'un gyroscope tous deux triaxiaux
  • Un capteur géomagnétique numérique triaxial (BMM150 de Bosch Sensortec)
  • Des capteurs environnementaux (BME680 de Bosch Sensortec), qui incluent des capteurs de gaz, de pression, d'humidité et de température
  • Un microphone numérique

Pour aider les développeurs à évaluer rapidement les données collectées par les capteurs et les performances du RSL10 au moyen de la carte RSL10-SENSE-GEVK, ON Semiconductor propose l'application mobile « RSL10 Sense and Control », disponible dans les boutiques d'applications Android et iOS.

S'exécutant sur un dispositif mobile Bluetooth, cette application permet aux développeurs de surveiller la consommation énergétique avec différentes configurations de capteurs, différents intervalles et cycles d'échantillonnage, et différents modes d'alimentation du RSL10, entre autres paramètres. Après avoir défini la configuration de capteurs souhaitée dans l'application, celle-ci affiche les résultats dans un ensemble de volets (Figure 6).

Image de l'application mobile RSL10 Sense and Control d'ON SemiconductorFigure 6 : L'application mobile RSL10 Sense and Control d'ON Semiconductor offre une solution prête à l'emploi pour évaluer les performances des différents capteurs de la carte d'évaluation RSL10-SENSE-GEVK. (Source de l'image : ON Semiconductor)

Les développeurs peuvent consulter et modifier le code de démonstration au moyen de la distribution du CMSIS-Pack et des options d'IDE mentionnées précédemment. Après avoir généré un nouveau micrologiciel, les développeurs doivent charger l'image au moyen d'une embase à 10 broches avec adaptateur, comme l'article TC2050-IDC-NL de Tag-Connect. Bien que cet adaptateur ne soit pas inclus dans le kit d'évaluation multicapteur RSL10-SENSE-GEVK, une version de débogage du kit (RSL10-SENSE-DB-GEVK) fournit une fiche de débogage soudée à 10 broches et un débogueur J-Link LITE Cortex de Segger Microcontroller Systems à brancher sur cette fiche.

Développement rapide avec DK IoT Studio

La carte d'évaluation multicapteur RSL10-SENSE-GEVK peut éliminer la nécessité de développement matériel pour un large éventail d'applications multicapteurs qui requièrent une autonomie étendue de la batterie. Pour un grand nombre de ces applications, un outil de développement en ligne distinct de DigiKey peut éliminer la nécessité de codage logiciel afin de permettre un développement rapide de prototypes ou même de systèmes de production. Utilisé avec la carte d'évaluation RSL10-SENSE-GEVK, DK IoT Studio fournit une approche de développement sans codage qui permet aux développeurs de déployer rapidement des applications capteurs-vers-cloud complètes.

Au moyen de l'interface graphique DK IoT Studio, les développeurs peuvent glisser-déposer une large gamme d'éléments matériels et logiciels utilisés dans les applications IoT. Les éléments matériels vont des broches GPIO individuelles aux dispositifs de capteurs complets, notamment ceux contenus dans la carte d'évaluation RSL10-SENSE-GEVK. Les éléments logiciels vont des fonctionnalités typiques de bas niveau, comme les boucles et les conditions utilisées dans tout programme, aux interfaces de services cloud.

En combinant ces éléments, les développeurs travaillent dans des onglets séparés au sein de l'interface graphique DK IoT Studio pour définir les opérations s'exécutant dans le RSL10, dans l'application DK IoT Studio associée et dans le cloud, le tout sans avoir à rédiger aucun code logiciel.

Cette approche s'appuie sur un ensemble de « capacités » et d'« événements » associés à tout élément. Par exemple, le capteur environnemental intégré BME680 est fourni avec un ensemble de capacités permettant de mesurer la température, la pression et l'humidité. D'autres éléments fonctionnels, comme un élément d'intervalle, sont fournis avec la capacité de déclencher périodiquement des événements entraînant l'exécution d'une capacité. D'autres encore représentent les communications Bluetooth avec un dispositif mobile Bluetooth comme un smartphone.

DigiKey offrant un certain nombre de projets de démonstration pour la carte d'évaluation RSL10-SENSE-GEVK, il est simple de concevoir une application en adoptant cette approche. Par exemple, dans un projet de démonstration du capteur BME680, un élément d'intervalle déclenche les capacités de mesure de la température, de la pression et de l'humidité du capteur BME680 toutes les 1000 ms. À leur tour, les éléments Bluetooth associés à chaque sortie de capteur entraînent la transmission des mesures de ces capteurs à un dispositif Bluetooth (Figure 7).

Image de l'onglet dédié au dispositif dans DK IoT Studio de DigiKey (cliquez pour agrandir)Figure 7 : Dans l'onglet dédié au dispositif dans DK IoT Studio de DigiKey, les développeurs associent des éléments pour lire régulièrement des données provenant du capteur environnemental de la carte d'évaluation RSL10-SENSE-GEVK et les transmettre, via une connexion Bluetooth, à l'application mobile associée. (Source de l'image : DigiKey Electronics)

L'onglet Application permet aux développeurs de concevoir une interface utilisateur au sein de l'application mobile DigiKey pour afficher les données reçues par Bluetooth. Dans le projet de démonstration du capteur BME680, cette application affiche non seulement la température, la pression et l'humidité, mais envoie aussi les mesures de chaque capteur à un élément cloud (Figure 8).

Image de l'onglet Application dans DK IoT Studio de DigiKey (cliquez pour agrandir)Figure 8 : L'onglet Application dans DK IoT Studio de DigiKey affiche les données des capteurs dans l'application mobile associée, ainsi qu'un volet pour générer les données affichées et effectuer d'autres opérations dans l'application mobile, comme envoyer des données vers le cloud. (Source de l'image : DigiKey Electronics)

Cette utilisation d'une application intermédiaire pour relayer les données des capteurs à une application cloud est courante afin d'éviter de recourir à des connexions directes entre le dispositif IoT et le cloud. Pour les dispositifs dotés de capacités de communication Wi-Fi intégrées, les données des capteurs peuvent bien entendu être envoyées directement vers le cloud. DK IoT Studio fournit d'ailleurs des éléments Wi-Fi et autres qui soutiennent cette approche. Dans tous les cas, les opérations relatives au cloud figurent dans l'onglet Cloud. Dans le cas présent, les résultats de température, de pression et d'humidité sont stockés dans les services cloud de stockage de données fournis par DK IoT Studio (Figure 9).

Image de l'onglet Cloud dans DK IoT Studio (cliquez pour agrandir)Figure 9 : Dans l'onglet Cloud de DK IoT Studio, les développeurs définissent les opérations basées sur le cloud, comme le stockage des données des capteurs dans le cloud. (Source de l'image : DigiKey Electronics)

Après avoir défini les rôles relatifs au dispositif, à l'application et au cloud, l'utilisateur peut compiler le projet dans DK IoT Studio en cliquant sur l'icône Compile (Compiler). Après génération du code, l'utilisateur peut charger le micrologiciel ainsi créé sur la carte d'évaluation RSL10-SENSE-GEVK. Ici, un petit utilitaire s'exécutant sur le système de l'utilisateur procède au transfert des données de DK IoT Studio vers la carte d'évaluation connectée au système. Les ensembles de code de l'application et du cloud sont automatiquement enregistrés dans l'environnement cloud de DK IoT Studio.

Bien que cette approche puisse éliminer la nécessité de développer le code de l'application, les événements et les capacités associés à chaque élément sont définis dans un ensemble de routines logicielles, appelé bibliothèque d'éléments embarquée (EEL), qui s'exécute dans l'environnement de développement de DK IoT Studio.

Par exemple, la capacité « Read Temperature » (Mesurer la température) du capteur BME680 fait appel à une abstraction « bme680_get_sensor_() » définie dans un module en langage C du BME680 (Liste 1).

BME680_Status_t BME680_GetTempData( float *tempC )

Copier{       _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;}

Liste 1 : Derrière l'interface graphique de DK IoT Studio, le code associé à chaque élément implémente une fonctionnalité spécifique, comme cette fonction qui est appelée à chaque déclenchement de la capacité « Read Temperature » (Mesurer la température). (Source du code : DigiKey Electronics)

Les routines de bas niveau du même module implémentent les opérations de manipulation de bits nécessaires pour extraire les données souhaitées des registres des capteurs lus par une routine « bme680_get_regs() » de niveau inférieur (Liste 2).

Copierstatic 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;}

Liste 2 : Le code associé à chaque élément dans DK IoT Studio traduit des appels de fonctions plus abstraites, des services de niveau supérieur aux opérations spécifiques, comme l'extraction de données depuis les registres des capteurs environnementaux. (Source du code : DigiKey Electronics)

Comme évoqué plus haut, les éléments offrent des méthodes comme les conditions, utilisées régulièrement par les développeurs de logiciels, et d'autres méthodes comme le contrôle GPIO, utilisé régulièrement par les développeurs de matériel. Dans l'environnement DK IoT Studio, les éléments correspondants offrent une approche simple de type glisser-déposer, qui permet de tester les conditions et d'exécuter des actions appropriées. Par exemple, un autre projet de démonstration illustre la manière dont LED de la carte RSL10-SENSE-GEVK peut être allumée si la sortie du capteur de lumière ambiante de la carte excède une valeur spécifique (Figure 10).

Image de DK IoT Studio de DigiKeyFigure 10 : DK IoT Studio fournit les éléments nécessaires pour procéder à une logique plus abstraite comme la vérification de valeurs, ainsi que des opérations de bas niveau comme la définition d'une E/S à usage général reliée à la LED sur la carte d'évaluation RSL10-SENSE-GEVK d'ON Semiconductor. (Source de l'image : DigiKey Electronics)

Côté cloud, un test similaire peut être utilisé pour générer des métadonnées pour l'application mobile. Dans le cas présent, les métadonnées peuvent être utilisées dans l'application pour définir une icône d'alerte indiquant un problème détecté par le capteur (Figure 11).

Image de la vérification de condition de DK IoT Studio pour définir les métadonnées d'étatFigure 11 : DK IoT Studio prend en charge des opérations plus sophistiquées dans le cloud et dans l'application mobile, comme cette vérification de condition pour définir les métadonnées d'état pour l'application et préserver les données dans le stockage cloud. (Source de l'image : DigiKey Electronics)

L'exécution du code sous-jacent responsable de l'activation et de la désactivation de la LED suit une chaîne d'appels commençant par l'appel d'une fonction de niveau supérieur associée à cet événement dans l'environnement sous-jacent. Cette fonction, SetPinState, est un pointeur de fonction défini lors de l'initialisation pour pointer vers une fonction de niveau inférieur, ATMO_ONSEMI_GPIO_SetPinState(), qui implémente la fonctionnalité requise et fait appel à une fonction de la bibliothèque du kit de développement logiciel RSL10 d'ON Semiconductor, Sys_DIO_Config(), afin de définir la broche spécifiée (Liste 3).

CopierATMO_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 );}

Liste 3 : DK IoT Studio fournit un ensemble d'abstractions courantes réalisées dans les couches de services de niveau inférieur, et qui implémentent des opérations spécifiques au matériel, comme la définition de bits GPIO. (Source du code : DigiKey Electronics)

Grâce à sa simplicité, DK IoT Studio offre un environnement de développement hautement flexible. Les développeurs peuvent utiliser le code EEL d'un élément tel quel ou le modifier en fonction de leur application. Pendant le développement, l'onglet dédié au dispositif dans DK IoT Studio affiche un volet contenant le code de haut niveau sous-jacent associé aux éléments affichés dans l'onglet (comme illustré à la Figure 7). Pour les applications qui requièrent une manipulation particulière, les développeurs peuvent immédiatement modifier le code dans ce volet. D'autres capacités, comme un élément « function » (fonction), ajoutent au code une définition de fonction vierge, ce qui permet aux développeurs de compléter l'exécution à l'aide des fonctionnalités et des fonctions disponibles dans l'environnement.

Dans la pratique, l'approche de DK IoT Studio est la suivante : allier un développement facile sans codage de type glisser-déposer à la flexibilité et aux performances dont les seules limites sont les capacités du processeur et de la mémoire des dispositifs matériels sous-jacents. S'ils s'appuient sur cette approche avec la carte RSL10-SENSE-GEVK, les développeurs peuvent rapidement déployer des prototypes entièrement fonctionnels avec une connectivité dispositif-vers-cloud et la prise en charge d'une application mobile.

Conclusion

De nouvelles applications de dispositifs multicapteurs continuent de faire leur apparition sur des marchés divers, notamment dans les secteurs du grand public, de l'automobile et de l'industrie. Pour bon nombre de ces applications, la connectivité Bluetooth et une plus grande autonomie de la batterie sont cruciales, alors que, dans le même temps, les concepteurs ont besoin d'un écosystème adapté leur permettant de répondre à la pression constante des délais de commercialisation avec des approches de conception flexibles. Pour répondre à ces défis, le système sur puce RSL10, le système en boîtier RSL10 et la carte d'évaluation RSL10-SENSE-GEVK d'ON Semiconductor offrent respectivement des solutions pour répondre aux exigences de personnalisation de la conception, d'intégration de modules et de solutions multicapteurs complètes. Grâce à ces plateformes matérielles, les développeurs peuvent implémenter des applications personnalisées en utilisant le kit de développement logiciel RSL10 et les packs de distribution de logiciels associés.

Pour un développement rapide d'applications multicapteurs dispositif-vers-cloud, la combinaison de la carte d'évaluation RSL10-SENSE-GEVK d'ON Semiconductor à l'IDE DK IoT Studio offre une plateforme de développement rapide et puissante pour implémenter des solutions multicapteurs ultrabasse consommation dans des applications dispositif-vers-cloud complètes. Lorsqu'ils sont associés, les outils matériels RSL10 et les options logicielles disponibles fournissent une plateforme hautement flexible pour le développement et le déploiement de dispositifs Bluetooth certifiés, capables de répondre à la demande concernant une autonomie de batterie étendue.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey