Le matériel et le logiciel pour faire de IOT

Bienvenue dans ce deuxième article de la série sur Internet des objets avec raspberry et arduino, la semaine passée on a fait la description de IOT, son fonctionnement et ses applications. Dans cet article nous allons entrer en détail et parler du matériel et logiciel à utiliser pour faire de IOT.

Article précédent, C’est qui IOT ?

Matériel & logiciel

on a deux parties très importantes, le matériel qui est tout ce qui est physique qu’on peut toucher et le logiciel qui est tout ce qui est le virtuel.

1 – Le Matériel

De quoi est composé le matériel pour faire de IOT ?

Le matériel étant purement composé de composantes électroniques (ou électriques) on peut le séparer en 3 groupes:

  • les capteurs et actionneurs
  • le microcontrôleur et le micro-ordinateur
  • émetteur et le récepteur (réseau de communication).

1.1 – Les capteurs et actionneurs

Un capteur est un dispositif qui transforme les phénomènes physiques en signal électrique. Exemple: la chaleur en signal électrique, le taux humidité en signal électrique, etc

Un actionneur est un dispositif qui transforme le signal électrique en un phénomène physique le contraire du capteur. Exemple: électricité en rotation le cas des ventilateurs, ou électricité en chaleur comme les chauffes eaux.

Il existe des centaines voire des milliers de capteurs et actionneurs, cava du capteur de température au capteur de force, du moteur à la lampe…

Comment choisir son capteur et ou actionneur ?

Tout dépend des besoins de votre projet IOT, Mais vous pouvez vous référer sur ces éléments à savoir:

  • la Tension et courant de fonctionnement
  • sa précision
  • son protocole de communication matériel
  • le phénomène physique qu’il capteur ( pour un capteur)
  • le phénomène physique qu’il crée ( pour un actionneur )
  • le prix

Un exemple pour mieux comprendre avec un capteur

Pour notre projet on a besoin de mesurer humidité de l’air. Comme tension de fonctionnement on a besoin de 5v, et d’un capteur très précis. voici une liste de 4 capteurs humidité qu’on a trouvé sur internet.

Si on cherche la précision dans notre système vous voyez que le DHT22 sera choisi comme composant car il à la meilleure précision. Mais si nous n’étions pas intéressés par la précision mais plutôt le prix, le DHT11 aller être choisi. On précise qu’il est recommandé de choisir des capteurs très précis lorsque que l’on s’attaque à une production de masse pour des mesures sécurité et fiabilité. Dans le domaine de la santé la précision domine largement le prix.

Un exemple pour mieux comprendre avec un actionneur

Nous voulons faire un robot véhicule, on a besoin de moteur pour faire tourner les roues sous une tension de 5v, ici on ne cherche pas la précision mais plutôt la vitesse et la légèreté.

Le moto-réducteur DG01D:48:1 est le mieux adapter pour faire tourner notre robot car il a la vitesse de rotation la plus rapide, le prix le plus bas, fonctionne sous 5v et sa masse est légère.

Donc voilà 2 exemples qui vous montrent comment procéder pour sélectionner un capteur ou actionneur, mais on précise toujours ce le choix est guidé par le projet (le cahier des charges).

1.2 – Les microcontrôleurs et micro-ordinateur

Ils sont chargés de recueillir les valeurs provenant des capteurs de faire un traitement sur les données et voir sauvegarder une partie. Ils peuvent donner aussi des ordres aux actionneurs du genre faire tourner le moteur à 180 °, allumer une lampe etc.

Là aussi on peut les diviser en 2 groupes.

  • les microcontrôleurs
  • les micro-ordinateur

Les microcontroleurs

ils sont souvent utilisés pour tout ce qui est acquisition, traitement des données provenant des capteurs (faire de petites opérations mathématique, convertir des valeurs, filtre, etc.) et le contrôle des actionneurs.

le microcontrôleur est équipé de plusieurs ports de connexion, de microprocesseur, ram, mémoire (vive et morte) comme un ordinateur, à la seule différence ses ressources sont très limitées accès pour faire que de petites opérations.

Comme l’ordinateur, pour que le microcontrôleur fonctionne comme voulu, il faut un programme informatique (donc obligation de coder, on verra ça dans autres articles).

Comment choisir son microcontrôleur ?

Vous pouvez vous référer au tableau suivant pour choisir son microcontrôleur

  • le nombre de port d’acquisition de données et de contrôle
  • la puissance de calcul et la mémoire
  • tension de fonctionnement et consommation en énergie
  • les protocoles de communication (matériel) du microcontrôleur
  • le langage de programmation qu’il supporte
  • Dans certains cas l’interface réseau
  • le prix

Les micro-ordinateurs

Ils sont souvent utilisés pour faire la passerelle (gateway) car ayant une puissance de calcul et une mémoire accès proches des ordinateurs. Certains même l’utilise comme ordinateur de bureau. On peut mettre un système d’exploitation dans ces micro-ordinateurs (linux la majeure partie) et ils sont équipés de bases de connectique pour accéder à internet et de se faire, on les utilise pour recevoir les données provenant des capteurs pour ensuite les envoyés au serveur cloud. Le choix du micro-ordinateur peut être guidé par ses caractéristiques:

  • Puissance de calcul et mémoire
  • système d’exploitation
  • nombre de port d’acquisition de données et contrôle
  • prix

NB: les micro-ordinateurs peuvent être utilisés pour acquérir des données comme les microcontrôleurs, mais le contraire est rarement possible.

1.3 – Le réseau de communication

Cette partie est très importante car c’est le moyen que les données vont emprunter pour quitter le microcontrôleur (ou les capteurs sont connectés) pour rejoindre la passerelle (Gateway) pour par la suite atteindre notre serveur (Cloud).

Le réseau est implémenté sur le microcontrôleur et sur le micro-ordinateur. Il est obligatoire que le réseau utilise le même protocole dans les deux sens.

Certains microcontrôleurs ou micro-ordinateur intègre à leur sein un ou des réseaux de communication. Dans le cas ou le microcontrôleur ou micro-ordinateur n’en dispose pas il faudra ajouter une extension (shield) qui va venir ajouter l’interface réseau dont on a besoin. Par exemple la carte arduino uno n’a pas d’interface réseau on peut venir ajouter une extension (shield) Lora qui va lui permettre de communiquer avec une passerelle lora.

On a plusieurs réseaux de communication Filaires ou sans-fil.

  • Filaire : RS232, CAN, RJ45
  • Sans fil: Zigbee, Lora, Sigfox, Wifi, Bluetooth, Nfc , RFID

Pour choisir son réseau de communication on peut se baser sur ses caractéristiques

  • La distance d’émission et de réception (Porter)
  • la vitesse de communication (Bande passante)
  • Consommation en énergie

En résumé côté matériel on peut avoir 3 parties :

  • capteur et actionneur
  • microcontrôleur et micro-ordinateur
  • Réseau de communication

Dans cette série, les serveurs et clients ne sont pas considérés dans la partie matérielle.

NB: le choix du matériel dépend à 99% de votre projet ( le cahier des charges vous guidera sur le choix des composants). Il y a pas de règle à l’aveuglette pour choisir sont matériels.

2 – Le Logiciel

Le choix du matériel étant terminé, passons au logiciel (software).

Le logiciel c’est cet outil qui va nous permettre de faire comprendre à nos appareils ce qu’on veut qu’ils fassent.

Le logiciel intervient sur tous les branches de IOT. Pour créer notre logiciel on a besoin de langage de programmation, qui est : « Un ensemble de mot fini destiner à nous faciliter la communication entre nous  » humain  » et les machines.

Il existe plusieurs langages de programmation

  • C
  • C++
  • JAVA
  • PERL
  • PYTHON
  • HTML, CSS, JAVASCRIPT,…

Pour rappel on a 4 branches distinguées dans IOT

  1. l’appareil connecté (arduino, nodeMcu)
  2. Internet (passerelle raspberry)
  3. Cloud (Microsoft azure, IBM cloud, amazon web services,…)
  4. L’application (mqtt dash)

Maintenant regardons comment le logiciel intervient dans les 4 branches de IOT

2-1 L’appareil connecté

Dans cette branche comme langage de programmation on a:

  • Arduino (C/C++)
  • C
  • micropython
  • java
  • javascript

Comme logiciel a installé sur notre ordinateur:

  • Arduino IDE
  • Eclipse
  • Codeblock
  • PlatfomIO (Atom ou Vscode ou Vscodium )

2-2 Internet (passerelle)

les micro-ordinateurs sont accès puissants pour accueillir un système d’exploitation et on utilise LINUX la majeure partie du temps. Exemple de distribution:

le plus souvent on n’a pas de limite coté langage de programmation car on est dans un OS(système d’exploitation), le seul problème réside sur les librairies qui peuvent parfois ne pas exister dans certains langages, en général on utilise:

  • C
  • C++
  • Python
  • Java
  • Javascript

2-3 Cloud

Dans cette partie on fait appele souvent à des services en ligne telque : Amazon Web Services AWS, Microsoft Azure, IBM cloud, Thinkspeaks, etc.

Mais n’empêche nous pouvons transformer notre ordinateur personnel ou même notre raspberry pi en serveur et installer des services comme:

Vous avez aussi la possibilité de développer votre serveur from scratch avec des langages comme:

  • HTML
  • Css
  • Javascript
  • python/ jango
  • Mysql
  • Mongodb
  • PHP
  • Apache

2-4 Application

Dans cette partie on est plus sur la visualisation de données et le contrôle. on peut utiliser des services ou application déjà prête pour visualiser, comme Thingspeak, mqtt dash, etc

Mais vous avez la possibilité aussi d’en créer, voici quelques langages:

  • Application web = Html, Css, Javascript, PHP, Apache, etc
  • mobile = Java, flutter, swift, Appinventor (très bien pour les débutant)

NB: La aussi comme sur le matériel, le choix des technologies réside sur le projet et son cahier des charges , il faudra choisir des technologies qui vont vous permettre de faire la maintenance facilement.

Pratique !

Nous avons vu le matériel et le logiciel essentiel pour faire de IOT maintenant on va passer à la pratique pour mieux vous aider à comprendre comme faire son choix sur le matériel et sur le logiciel.

Le client et son problème !

Un client vient nous voir avec un problème. Il a une table de micro-jardinage ou il veut semer des légumes pour sa famille, mais avec les obligations de la vie, il n’a pas le temps t’entretenir sa table, que faire ?

Ces besoins (son cahier des charges)

Il veut automatiser sa table pour qu’elle puisse s’auto arroser et lui envoyer des informations du climat relatives au milieu sur son smartphone, ensuite enregistrer les informations dans une base de données, pouvoir prendre le contrôle de la pompe et que le tout fonctionne entre 3.3v et 5v et soit autonome en énergie avec un panneau solaire. Sa table de micro-jardinage sera mise sur la terrasse et il souhaiterait utiliser le WI-FI pour recevoir les données .

voici les informations du climat qu’il veut:

  • la température de l’air
  • l’humidité de l’air
  • l’humidité du sol
  • le taux de luminosité
  • pouvoir actionner l’arrosage

On a tous les informations nécessaires pour pouvoir désigner un système IOT sur mesure pour ce client. Après la consultation en équipe et des recherches sur le net, voyons le matériel et le logiciel qu’on va utiliser.

Capteurs

  • DHT11 = pour capter la température et humidité (protocole one wire, tension 5v)
  • Capacitive Soil Moisture = pour l’humidité du sol ( protocole Analogique, tension 3.3 à 5v)
  • photorésistance = pour le taux de luminosité (protocole Analogique, tension 3.3v à 5v)

Actionneur

  • Pompe = arrosage (tension 5v)
  • Relais = actionner la pompe (protocole Digital, tension 5v)

Donc pour les capteurs et l’actionneur j’ai besoin de 4 ports au niveau du microcontrôleur et il doit supporte les protocoles (onewire, analogique, digital).

Microcontrôleur et réseau de communication

  • ESP32

on a choisi le ESP32 grand frère du NodeMcu (ESP8266) car ce dernier n’avait qu’un port analogique et d’après les capteurs on a besoin de 2 ports analogiques, ensuite ce module intègre le WIFI comme réseau de communication directement à son sein, pas besoin de shield, il fonctionnement entre 3.3v et 5v, donc c’est l’idéal.

Internet, la passerelle (gateway)

  • raspberry pi zero w

Pour faire le gateway on a choisi le raspberry pi zero, ces performances sont bonnes, il utilise linux comme os, consomme peu en énergie et coût pas cher.

Cloud (serveur)

  • Node-red
  • Mosquitto (mqtt protocole)
  • Mongodb (base de données)

Ici le raspberry va jouer 2 rôles, Passerelle et serveur local en même temps, Node-red est un service très efficace et consomme peu en ressources, vous pouvez ajouter des plug-in qui vont vous permettre de faire de l’analyse et du traitement de données, sauvegarder dans une base de données et la visualisation.

Application

  • Node-red dashboard
  • Mqtt dash

Côté applicatif on va utiliser node-red dashboard pour avoir des graphes et des jauges, comme ça il pourra visualiser les donnés sur son navigateur web, l’application mqtt dash qu’il installe sur son smartphone va être une alternative à node-red dashboard comme ça s’il n’a pas un ordinateur portable à côté de lui, avec son smartphone il pourra voir les données et prendre des décisions comme déclencher l’arrosage.

Voilà on a choisi les matériels et les logiciels pour réaliser le projet IOT de notre client.

Prochainement on va passer à l’installation des différents technologies .

Conclusion

chaque projet IOT a ces besoins spécifique , il n’y a pas d’approche unique pour sélectionner le matériel et le logiciel pour faire son projet, référez-vous au cahier des charges et pensez à optimiser le mieux votre système dans le cas où il doit être autonome en énergie.

Cet article prend fin ici, On vous souhaites santé, bonheur, en cette période de covid19. D’ici la retrouvez-nous sur les réseaux sociaux.

Rédiger par Mamadou Diallo

Un commentaire sur “Le matériel et le logiciel pour faire de IOT

Ajouter un commentaire

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Créez un site ou un blog sur WordPress.com

Retour en haut ↑

%d blogueurs aiment cette page :