[1/3] Du matériel au cloud : créer votre propre solution IoT

Avez-vous déjà rêvé de développer votre propre application IoT de A à Z, sans savoir par où commencer ? Pour vous et tous les passionnés de création qui souhaitent concrétiser leurs projets, je vais vous faire part de mon expérience, car je suis passé par là moi aussi.

Introduction

Voici le premier d'une série d'articles où je décrirai l'ensemble du processus, de la conception matérielle à l'application cloud, pour donner vie à mon projet. J'y aborderai les défis rencontrés, les problèmes résolus, les réussites, et même certains détails techniques et tutoriels relatifs aux appareils utilisés à différentes étapes du processus.

Comment ai-je choisi mon projet ?

Avant toute chose, permettez-moi de me présenter : je suis étudiant en génie électrique et je m’apprête à terminer mes études. Pour mon projet de fin d’études, je souhaitais concevoir et développer mon propre appareil, et l’utiliser pour déployer une application IoT contribuant à résoudre un problème de ma ville. De plus, je souhaitais que cette solution soit abordable et simple, afin qu’elle soit accessible à tous, quel que soit leur profil. Après quelques jours de réflexion, je me suis orienté vers les problématiques de mobilité : le développement de ma propre application de stationnement intelligent.

Pourquoi ai-je choisi ce projet ?

Avec la croissance démographique mondiale, la mobilité dans de nombreuses villes se dégrade fortement en raison du nombre important de véhicules en circulation. Dans les zones commerciales, le problème est particulièrement aigu, car le temps nécessaire aux conducteurs pour trouver une place de stationnement engendre des embouteillages insoutenables. Les systèmes de stationnement intelligents constituent un outil précieux pour réduire les problèmes de mobilité dans ces zones à forte densité de véhicules.

Cependant, ces systèmes sont généralement complexes et coûteux. Leur installation nécessite l'intervention de personnel spécialisé et souvent même des modifications de la structure du parking. De plus, leur maintenance engendre des coûts et un temps considérables. C'est pourquoi ce type de systèmes n'est pas déployé partout. J'ai donc décidé de concevoir une solution plus simple, pratique et économique pour aider les automobilistes à trouver des places de parking libres.

J'ai compris que le développement de ce projet pouvait être divisé en deux grandes étapes : la conception matérielle et la mise en œuvre de l'application logicielle.

Conception matérielle

1. Définition des fonctionnalités de l'appareil

Pour commencer, il a fallu définir les caractéristiques requises pour le projet afin de planifier leur mise en œuvre. Pour mon appareil, j'ai choisi les fonctionnalités suivantes :

  • faible consommation d'énergie
  • Portable
  • Sans fil
  • Longue autonomie de la batterie
  • Facile à installer
  • Longue portée de signal
  • Fiabilité

2. Sélection des composants modulaires

Ensuite, j'ai dû réfléchir aux composants modulaires dont l'appareil devait disposer pour accomplir sa fonction : détecter la présence d'un véhicule sur une place de parking et transmettre cette information à l'application logicielle sans fil.

Tout d'abord, il me faudrait trouver un capteur capable de détecter la présence d'un véhicule. Ensuite, un microcontrôleur serait nécessaire pour lire, traiter et organiser les données recueillies par le capteur. Enfin, un module sans fil serait indispensable pour transmettre les informations à un serveur, où les données seraient stockées pour être utilisées par l' application logicielle .

Compte tenu de tout cela, l'étape suivante consisterait à rechercher et à sélectionner tous les composants et technologies nécessaires pour répondre aux exigences mentionnées précédemment.

3. Sélection des technologies

Pour sélectionner la technologie, j'ai étudié l'état de l'art des systèmes intelligents de stationnement et de détection de véhicules. J'ai constaté que les technologies de capteurs les plus couramment utilisées pour la détection de véhicules sont l'infrarouge, les ultrasons et le magnétisme. Cependant, j'ai estimé que les détections par capteurs à ultrasons et infrarouges présentaient un risque d'erreur plus élevé, leurs mesures pouvant être affectées par des facteurs tels que la forme des surfaces ou même la poussière ambiante. J'ai donc décidé de tester en premier lieu les capteurs magnétiques.

J'ai commencé à rechercher des capteurs magnétiques , principalement à faible consommation et à haute sensibilité. J'ai étudié les caractéristiques d'au moins dix capteurs différents et sélectionné les cinq qui me semblaient les plus performants. J'ai ensuite créé une feuille de calcul Google répertoriant ces cinq capteurs et leurs principales caractéristiques : tension d'alimentation, consommation, sensibilité, résolution et interfaces de communication, afin de les comparer.

De plus, compte tenu de leur petite taille, j'ai veillé à ce que les capteurs sélectionnés soient équipés d'une carte d'adaptation pour un prototypage rapide du système et une évaluation simplifiée du dispositif. Finalement, j'ai opté pour ceux offrant la plus haute sensibilité et une faible consommation d'énergie. Leurs références sont MMC5883MA et LSM303AGR .

Pour choisir le microcontrôleur, j'ai limité mes recherches aux architectures 8 bits afin de réduire les coûts et la complexité de la programmation, les tâches à accomplir étant relativement simples. Il me fallait un microcontrôleur basse consommation, doté d'un boîtier adapté aux tests de prototypage, c'est-à-dire utilisable sur une plaque d'essai. J'ai finalement opté pour les microcontrôleurs PIC, en commençant par le PIC18F2550 .

À ce stade, il me fallait choisir un module sans fil. La première question était : quelle technologie sans fil utiliser ? Après quelques jours de recherches approfondies et grâce aux conseils de mes collègues d’ Ubidots , j’ai opté pour LoRaWAN . Grâce à ses caractéristiques telles que sa faible consommation, sa longue portée et sa grande immunité aux interférences, LoRaWAN est une technologie performante pour les applications de l’Internet des objets ( IoT ). Bien que la taille des paquets transmis via LoRaWAN soit limitée, cela ne pose pas de problème pour IoT car la transmission des données collectées par les capteurs ne nécessite pas de données volumineuses.

Par la suite, j'ai recherché un module LoRaWAN à faible consommation, à large plage de fréquences et doté d'interfaces de communication série. Il était impératif que sa fréquence de fonctionnement corresponde à la bande ISM de mon pays. Quelques semaines auparavant, j'avais testé une carte de développement appelée SODAQ ONE . Cette carte intègre un module LoRaWAN, le RN2903 , qui répondait aux exigences du projet. J'ai donc opté pour ce module éprouvé, qui a démontré d'excellentes performances lors des tests effectués avec la SODAQ ONE.

Si vous connaissez déjà le SODAQ ONE V3 et que vous souhaitez commencer à utiliser Ubidots , consultez ce guide et commencez dès aujourd'hui !

Après avoir suivi toutes les étapes mentionnées ci-dessus, la prochaine étape consiste à tester les composants sélectionnés et à construire un prototype. Les résultats de ces tests permettront de déterminer si ces composants sont adaptés à mon application ou s'il convient de les modifier.

Honnêtement, même si le processus peut paraître complexe, le plus difficile pour moi a été de savoir par où commencer. Si le développement de votre propre application IoT vous intéresse, je vous recommande de bien définir les objectifs, les fonctionnalités et le périmètre de votre projet ; le reste se dessinera de lui-même.

Si vous voulez savoir comment tout cela s'est terminé, restez à l'affût des prochains articles !

Sincèrement, Daniela.