'Préparer un produit connecté'

Mise à jour : 9 décembre 2023

'Préparer un produit connecté'

'Préparer un produit connecté'

L'ajout d'un appareil connecté à votre portefeuille peut être difficile. Jonathan Pallant examine comment choisir les «ingrédients parfaits».

 

Les appareils connectés ont tendance à se situer à l'extrémité la plus complexe du spectre du système embarqué, qu'ils collectent eux-mêmes les données des capteurs ou qu'ils interfacent avec des équipements préexistants.

Leur complexité provient de l'interaction entre leurs trois parties constituantes: la partie locale, qui génère les données ou nécessite un certain contrôle; le système distant qui enregistre les données et / ou fournit des instructions; et la connexion entre eux, qui fonctionne généralement sur une grande distance et est souvent observable (et même interruptible) par des tiers non fiables.

Ces complexités sont cependant souvent compensées par un engagement client amélioré, des informations commerciales détaillées et même des modèles commerciaux entièrement nouveaux qui peuvent être obtenus.

L'équilibre fin entre la complexité et la fonction signifie que la construction du bon type d'appareil connecté relève souvent de l'art et de la science. En fait, c'est un peu comme cuisiner un bon repas - il existe pratiquement une infinité de façons de réunir les ingrédients et les plats clés. Certains d'entre eux peuvent être assemblés assez rapidement, tandis que d'autres nécessiteront plus de temps et d'efforts pour se perfectionner, mais qui peuvent être mieux adaptés aux goûts de quelqu'un.

Une approche consiste à diviser le processus de développement de l'IoT en plusieurs choix spécifiques mais fondamentalement connectés. Mais il n'est pas toujours facile de déterminer quelles décisions prendre en premier, et il y a toujours un risque qu'une décision précoce puisse restreindre vos choix ultérieurs et conduire à un système sous-optimal.

Nous avons regroupé ces choix de manière allitérative en six domaines différents à prendre en compte lors de la planification du «festin» parfait de l'IdO.

La connectivité est probablement le meilleur point de départ, car c'est le composant fondamental qui entoure le reste de l'offre. Le plat principal, si vous voulez.

Le cours de connectivité

La connectivité clé sans souci les exigences pour les produits sont définies par le coût, la consommation d'énergie, la portée, le débit de données et la latence. Mais ils sont finalement liés par les lois de la physique et de l'économie. Et toutes les technologies d'aujourd'hui existent dans leur propre sweet-spot dans cet espace multidimensionnel.

La plupart des systèmes auront probablement besoin d'une connectivité sans fil pour accéder à Internet, ce qui est malheureusement généralement moins fiable et plus coûteux que l'utilisation d'une connexion filaire. Presque toutes les normes sans fil impliquent au moins deux classes d'appareils : un composant plus petit et de moindre puissance (comme un téléphone mobile) et une passerelle plus grande et de plus grande puissance (comme un Wi-Fi routeur). Vous devez également prendre en compte la propriété et la fiabilité de ces passerelles, en comparant par exemple le routeur Wi-Fi d’un propriétaire à l’accès à un réseau mobile.

Quelle que soit votre voie, il est presque toujours préférable de s'appuyer sur les normes de connectivité existantes largement acceptées par le marché plutôt que de développer quelque chose à partir de zéro.

Le cours Chipset

La première décision à prendre est d'opter pour un chipset intégrant processeur, mémoire et radio, ou de combiner plusieurs ingrédients pour obtenir le bon mélange de performances, de prix et de consommation d'énergie.

Si vous avez besoin d'une connectivité cellulaire à faible consommation, que ce soit avec LTE-M ou NB-IoT, un appareil comme le Nordic nRF9160 est un ensemble convaincant de CPU, RAM, Flash, GPS et modem. Mais, si vous pouvez vous permettre le pcb espace, vous préférerez peut-être la flexibilité d'un "standard" microcontrôleur et un LTE séparé module. Une histoire similaire s'applique aux normes sans fil telles que Wi-Fi et Bluetooth, où des microcontrôleurs sont disponibles avec la radio intégrée, ainsi que des modules modem autonomes.

Bien sûr, les appareils IoT ne fonctionnent pas uniquement sur des microcontrôleurs de base. Il existe de nombreux exemples où la puissance et la capacité technique d'un système basé sur un noyau Linux complet étaient le bon choix, même avec les effets d'entraînement sur la consommation d'énergie, l'espace et la charge de support logiciel.

Le cours de base

Cette étape consiste à introduire des logiciels préexistants (essentiellement «IP tiers») comprenant: le noyau du système d'exploitation (ou système d'exploitation en temps réel); les pilotes du chipset; et le package de support de carte (BSP) qui personnalise ces pilotes pour votre conception de PCB particulière.

Les vendeurs de chipsets fournissent souvent un kit de développement logiciel (SDK) gratuit contenant tout cela. Mais il convient de rappeler que ce SDK peut ne pas fonctionner avec le silicium de quelqu'un d'autre, ce qui limite votre capacité à changer de fournisseur à l'avenir. Si cela compte, envisagez peut-être une offre indépendante du fournisseur, telle qu'Amazon FreeRTOS ou ThreadX de Microsoft.

Les systèmes basés sur Linux ont aussi des options similaires - souvent avec une «distribution» gratuite pour vous aider à démarrer. Mais vous préférerez peut-être rouler vous-même ou utiliser une distribution Linux standard plus générique, telle que Ubuntu Smart Start ou Fedora IoT. Tout dépend de vos exigences en matière de sécurité, des délais de développement et des limites du système en matière de consommation d'énergie et d'espace de stockage.

Le cours de code

Bien sûr, vous ne pouvez pas simplement installer Linux embarqué sur votre appareil, ou flasher sur un RTOS, et l'appeler un jour. Vous devrez ajouter la "sauce secrète" en

écrire du code pour personnaliser ce système selon vos besoins. Cela peut être aussi simple que de spécifier les points de terminaison et les clés pour télécharger les lectures des capteurs, ou aussi complexe que d'exécuter plusieurs piles de protocoles sur mesure et un traitement IA sophistiqué à la périphérie pour faire bonne mesure. Dans tous les cas, le langage et les outils que vous utilisez auront un impact énorme sur votre programme de développement initial, ainsi que sur le support et la maintenance continus.

Le langage de programmation C est le langage par défaut depuis près de 40 ans maintenant, mais il est peut-être utile d'essayer un langage système sûr en mémoire, comme Rust ou même quelque chose comme MicroPython. Mais si vous trouvez que votre chipset ou votre Core ne peut pas gérer votre choix préféré ici, vous devrez peut-être revenir en arrière et repenser.

Le cours Cloud

La plupart des développements d'appareils connectés impliquent la collecte de données pour une analyse ultérieure et l'émission de commandes pour contrôler les appareils «sur le terrain». Il est logique presque universellement de décharger cette exigence informatique vers l'une des offres prédéfinies de gestion IoT et de stockage de données disponibles auprès des grands fournisseurs de «cloud», plutôt que d'utiliser des systèmes sur site.

Quelle que soit la plate-forme cloud que vous choisissez, vous devrez équilibrer les coûts initiaux de l'intégration par rapport au support et à la maintenance continus. Et n'oubliez pas que vous aurez besoin de l'assistance de vos fournisseurs de cloud, de chipset et de connectivité pendant toute la durée de vie de votre produit sur le terrain.

Et enfin… le cours de communication

Le protocole de communication par défaut que votre code utilisera pour parler à votre fournisseur de cloud sera généralement basé sur du texte (tel que JSON ou XML) fonctionnant sur un lien HTTP crypté orienté connexion.

Bien que ce type de pile soit omniprésent (c'est ainsi que la plupart des sites Web actuels sont construits), sa nature en texte brut augmente à la fois les besoins en bande passante sur vos ressources de connectivité et de chipset, et la nature orientée connexion peut mal interagir avec certains services sans fil à latence élevée. Par exemple, si vous concevez un système de surveillance à très faible consommation d'énergie utilisant NB-IoT, vous pourriez être mieux avec un protocole sans connexion binaire comme CoAP.

De plus, pouvoir compter sur une pile de protocoles bien utilisée et testée dans le monde réel (telle que celle fournie avec votre logiciel Core) va certainement être mieux que d'essayer d'en créer une vous-même.

Cela vaut la peine de se souvenir

Il y a peu d’absolus dans sans souci et il y aura toujours une gamme de solutions pour répondre à vos exigences. Ce qui fonctionne le mieux dépendra de vos budgets, de vos délais et des compétences dont vous disposez en interne, auprès d'un partenaire de développement externe ou via toute relation existante avec des fournisseurs de matériel, de logiciels ou de réseau. Mais même la meilleure solution technique ne deviendra jamais gagnante si elle n’est pas commercialisée à temps et avec la bonne combinaison de prix, de spécifications et de disponibilité.