Vous êtes sur la page 1sur 15

Chapitre I : Généralités sur L’IoT

Imaginez un monde où tous les objets sont capables d’échanger des informations et
de communiquer entre eux. Des objets capables aussi de communiquer et d’interagir avec
leurs utilisateurs en utilisant Internet mais aussi d’autres réseaux de communication bien
moins connus mais tous efficaces. C’est le monde de l’Internet des Objets.

D’ici 2020, l’Institut Gartner prévoit plus 50 milliards d’objets connectés sur le marché.
Autant vous dire que nous sommes en train d’assister à une véritable révolution numérique
qui va radicalement changer nos styles de vie.

Pour illustrer, prenons un exemple dans le domaine de l’habitat intelligent, aussi connu sous
le nom de Smart Home. Imaginez que votre réfrigérateur devienne intelligent. Un
réfrigérateur capable de vous dire en temps réel le type de denrées qu’il y a à l’intérieure et
capable de passer commande pour vous quand vous avez besoin de vous réapprovisionner.

Le réfrigérateur est un exemple. Mais le nombre d’objets qu’il est aujourd’hui possible de
connecter est illimité. Le potentiel qu’offre l’Internet des Objets pour chacun d’entre nous,
mais aussi pour les entreprises et les industries est immense.

Pour l’heure, dans le domaine du Grand Public, l’IoT relève encore beaucoup de la
gadgétisation et n’apporte qu’une faible valeur à ses utilisateurs. Là où les champs
d’application vont réellement être intéressants concernent la gestion de l’énergie dans les
bâtiments, dans le domaine de l’industrie, dans l’agriculture, la sécurité, le transport ou
encore pour la santé.

I. Qu'est-ce qu'un "objet" ?

Cet
"objet" véhiculé par le concept de l'internet des objets désigne tout objet pouvant contenir un
dispositif informatique embarqué et connecté. Ainsi, un "objet" dans l'internet des objets peut
aussi bien être un conteneur maritime doté d'une étiquette RFID qu'une montre grand public
équipée d'une puce WiFi qui envoie des données sur la condition physique ou de courts
messages à un serveur quelque part sur internet. L’IoT repose avant tout sur les objets
connectés. Un objet connecté a la capacité de capter une donnée et de l’envoyer, via le
réseau Internet ou d’autres technologies, pour que celle-ci soit analysée et visualisée sur des
tableaux de bord dédiés. Les objets connectés interagissent avec leur environnement par le
biais de capteurs : température, vitesse, humidité, vibration… Dans l’Internet des Objets, un
objet peut aussi bien être un véhicule, qu’une machine industriel ou encore une place de
parking.

II. Pourquoi l’Internet des Objets ?


L’IoT offre aux organisations de nouveaux moyens innovants de gérer et des surveiller les
opérations éloignées. Il permet d’avoir des yeux et des oreilles dans des endroits reculés,
fournissant constamment des informations aux applications et aux magasins de données. Le
faible coût de l’aspect "objet" rend possible l’observation et la gestion d’activités autrement
hors de portée.

Que signifie IoT, sa genèse ?

Dans la tête de beaucoup de personnes, l’internet of things est un concept révolutionnaire.


Allez poser la question à un ingénieur en systèmes embarqués, il vous dira que l’IoT n’est
qu’une évolution naturelle. Les systèmes embarqués/électroniques existaient depuis des
années et la plupart d’entre eux étaient autonomes. La faculté de ces systèmes embarqués à
communiquer avec d’autres systèmes a donné naissance à l’IoT. En effet avant la
démocratisation de l’IoT,les machines pouvaient déjà communiquer et s’échanger des
informations via des protocoles comme le RS232,RS484 etc…En élargissant les modes de
communication avec le protocole TCP/IP, les machines peuvent désormais communiquer via
internet ce qui a donné naissance à l’IoT ou internet of things. Pour faire simple, l’IoT n’est
qu’un système électronique qui a la faculté d’échanger des données avec d’autres systèmes
électroniques via le protocole TCP/IP rien de plus. Aujourd'hui d'autres modes de
communication existent comme les technologies radio ou GSM.

2. Les domaines d'application de l'IoT et de la machine to


machine

Il existe une panoplie de domaines d'applications pour les secteurs de l'internet des objets, du
machine to machine et des objets connectés que ce soit dans le monde industriel ou dans la vie
de tous les jours.

1. Les applications médicales : Dans le domaine santé, les objets connectés peuvent servir à
plusieurs choses. On peut par exemple les utiliser comme dispositif de surveillance ou de
monitoring sous forme de bracelet connecté ou de montre connectée qui permettront de suivre
à tout moment nos activités physiques en nous informant de signes irrégulières.
Si vous êtes une personne qui prend des médicaments ces objets connectés peuvent également
vous informer quand il est temps de prendre vos médicaments En outre, cela pourrait
éventuellement informer votre médecin d'une situation d'urgence lui permettant ainsi de vous
localiser grâce à votre appareil.

Je pense que pour les personnes âgées l'automatisation des procédures de prises en charge
médicales pourraient être précieuse. Supposons par exemple qu'une personne âgée soit
tombée hasardeusement et qu'elle soit incapable de se lever. Elle peut avoir de sérieux
problèmes si elle vit seule sans assistance.

Maintenant, imaginez qu'elle ait porté un dispositif qui pourrait alerter son entourage ou ses
proches quand la personne reste inactive après X temps pendant la journée. Le dispositif
connecté pourra avertir automatiquement le soignant ou médecin désigné par la suite. Ainsi,
les applications des objets connectés dans le monde médical sont infinies.

2. Les applications industrielles : Dans le monde industriel la machine to machine ou M2M


peut accroitre considérablement la performance et la productivité d'une usine. Par exemple
supposons que l'on ait un compteur intelligent et connecté en amont de notre ligne de
production et que ce compteur recense et répertorie en temps réel l'ensemble des pièces
disponibles en stock dans une base de données, en cas de pénurie, il pourra avertir et envoyer
automatiquement un message au système de GPAO qui se chargera à son tour d'effectuer par
exemple une opération d'approvisionnement. Dans ce cas-ci, la problématique sera de faire
communiquer tous les dispositifs de sorte que le processus soit la plus autonome possible.

3. Le bien-être et le comfort: La domotique ou la maison intelligente. Imaginez un instant


que votre thermostat soit capable de se mettre en marche tout seul en fonction de
l'emplacement de votre voiture vous permettant de vous réchauffer une fois rentré à la
maison. Aussi, imaginez que votre réfrigérateur vous informe lorsque vous aurez besoin
d'acheter du lait ou qu'il soit capable de créer une liste d'achats personnalisée en fonction de
vos articles les plus achetés. Ou encore vous dire quand votre nourriture est sur le point de
périmer!

III. Les prérequis à développer pour votre apprentissage

Si vous n'êtes pas électronicien et que vous souhaitez apprendre à concevoir un objet
connecté, vous aurez besoin d'avoir un minimum de connaissances sur systèmes embarqués et
l'électronique analogique/numérique.

Des bases telles sur que les capteurs, les microcontrôleurs, les protocoles de réseaux de
capteurs sans fil et M2M, les technologies sans fil comme le Wi-Fi, le Bluetooth, le
Zigbee etc.. seront nécessaires.

Une fois ces différents concepts acquis, vous pouvez commencer à vous intéresser aux cartes
électroniques comme Arduino, Raspberry Pi, Beaglebone etc..
En effet ces cartes électroniques ont l'avantage d'être très abordables niveau prix,aussi leur
programmation reste aisée.
Si vous n'êtes pas familier avec la programmation informatique,je vous conseille de
commencer avec les langages C/C++ ou python qui sont les must pour les langages évolués
dans le monde de l'électronique embarquée.

Se former à la programmation Web et à l'IoT

Une fois que vous maitrisez tout ce qui est programmation hardware via l'apprentissage avec
les cartes Arduino et Raspberry Pi, vous allez maintenant attaquer la programmation Web.

La programmation Web vous permettra par exemple de créer des applications Web pour
contrôler et superviser vos objets connectés à distance à partir de votre ordinateur, téléphone
ou tablette tactile.

Tout ce dont vous aurez besoin c'est d'avoir un navigateur internet comme Firefox ou google
Chrome.
Dans le monde de la programmation Web, vous pouvez utiliser des langages comme PHP,
Java ou Python pour concevoir des interfaces graphiques dynamiques. Des frameworks
web comme Django pour python ou Symphony pour PHP vous faciliteront la tâche lors de
vos développements. Des notions sur les concepts d'architechtures clients/serveurs vous
seront aussi d'une grande utilité. Ils vous permettront par exemple de récupérer les données de
vos différents capteurs afin de les stocker dans des bases de données, ceci via des dispositfs
qui peuvent être distants.

Vous pourrez commencer développer avec de simples projets comme par exemple récupérer
la valeur de la température ambiante d'une salle et l'afficher de manière dynamique sur
un navigateur internet. Pour cela, vous aurez besoin des langages Webs comme le HTML,
le Javascript, le Jquery et le CSS.

Enfin des connaissances sur le Cloud computing ainsi que la programmation mobile
android vous permettront de déployer des applications mobiles performantes.

Les outils pour s’initier à l’IoT

Vous êtes designer, électronicien, informaticien ou juste un amateur, si vous voulez vous
initier au domaine de l’IoT,vous pouvez commencer avec les technologies open source.
Comme dispositif matériel open source on a l’Arduino ou le Raspberry Pi qui sont de bons
supports de prototypages. Il existe même des systèmes d’exploitation qui fonctionnement sur
ces cartes électroniques. C’est le cas de Windows 10 IoT qui peut être installé sur le
Raspberry Pi.

Arduino peut être un très bon outil pour s'initier à l'IoT,c 'est une carte très abordable niveau
prix et peux être connectée à des capteurs (température, pression, mouvement etc..) ou avec
des modules d'extension pour lui donner des fonction supplémentaire (communication
Bluetooth, infrarouge, GSM etc..). Il existe plusieurs kits qui vous permettent de débuter avec
Arduino sans avoir à souder des composants électroniques. En effet ces kits comportent des
breadboards qui permettent d'implanter manuellement un composant sur carte sans le souder.
C'est très pratique si on ne connait pas beaucoup le monde de l'électronique.

(Breadboard) Une platine d'expérimentation est un dispositif qui permet de réaliser le prototype d'un circuit
électronique et de le tester. L'avantage de ce système est d'être totalement réutilisable, car il ne nécessite
pas de soudure. .

Pour les kits comprenant une carte électronique Arduino Uno, pour doter de la carte d'une
connexion Wifi, vous aurez besoin d'un module supplémentaire ou Shield Wifi comme le
ESP8266. Il existe cependant des cartes Arduino avec WiFi (Yun) ou Bluetooth, mais leur
prix est beaucoup plus élevé que l'Arduino UNO. Les cartes Arduino sont dotées de
microcontrôleurs qui répondent parfaitement aux besoins pour des calculs pas très complexes.
En effet, si on veut implémenter des notions plus avancées tel que le cryptage de données ou
l'implémentation d'un serveur web, le microcontrôleur 8 bits de l'Arduino a ses limites. Il y'a
les cartes Arduino avec des puces plus puissantes comme le zéro (ARM) ou 101 (Intel Curie),
mais encore une fois ils sont plus chers.

Si vous allez côté Raspberry Pi, la CPU est plus puissant, mais les cartes Raspberry pi 1 et
Raspberry pi 2 n'ont pas de WiFi. Le Raspberry Pi 3 quant à elle possède le wifi et est simple
d'utilisation. Elle s'utilise comme un PC traditionnel. Grâce à ses connecteurs GPIO vous
pouvez facilement concevoir vos applications IoT.

Vous devez aussi vous initier à la programmation C/C++/Java afin de pouvoir programmer les
dispositifs électroniques. Pour la partie applicative vous devez vous familiariser avec le
HTML, le CSS, la programmation Android ou l’Objective C pour la conception d’application
pour iPhone.

CONCLUSION

L'internet of things aura un impact énorme sur notre vie sociale ce qui va révolutionner nos
habitudes. En effet, une grande partie de notre travail sera automatisé et nous aurons recours
de plus en plus aux machines dans nos activités quotidiennes. L'intégration des systèmes «
IoT » dans nos voitures, machines à laver, réfrigérateurs etc…va nous aider à automatiser et à
anticiper nos tâches, ce qui nous permettra de gagner en productivité et en efficacité.
CHAPITRE II : Généralités sur les systèmes
embarqués

Un système embarqué est un système complexe qui intègre du logiciel et du matériel


conçus ensemble afin de fournir des fonctionnalités données. Il contient généralement un ou
plusieurs microprocesseurs destinés à exécuter un ensemble de programmes définis lors de la
conception et stockés dans des mémoires. Le système matériel et l'application (logiciel) sont
intimement liés et immergés dans le matériel et ne sont pas aussi facilement discernables
comme dans un environnement de travail classique de type ordinateur de bureau PC. Un
système embarqué est autonome et ne possède pas des entrées/sorties standards tels qu'un
clavier ou un écran d'ordinateur. Contrairement à un PC, l'interface IHM (Interface Homme
machine) d'un système embarqué peut être aussi simple qu'une diode électroluminescente
LED qui clignote ou aussi complexe qu'un système de vision de nuit en temps réel ; les
afficheurs à cristaux liquides LCD (Liquid Crystal Display) de structure généralement simple
sont couramment utilisés.

Afin d'optimiser les performances et la fiabilité de ces systèmes, des circuits


numériques programmables FPGA (Fild Programmable Gate Array), des circuits dédiés à des
applications spécifiques ASIC (Application Specific Integrated Circuits) ou des
microcontrôleurs sont en plus utilisés.

Les systèmes embarqués sont désormais utilisés dans des applications diverses tels que
le transport (avionique, espace, automobile, ferroviaire), dans les appareils électriques et
électroniques (appareils photo, jouets, postes de télévision, électroménager, systèmes audio,
téléphones portables), dans la distribution d'énergie, dans l'automatisation, …, etc.

1) Caractéristiques spécifiques
Les systèmes embarqués fonctionnent généralement en Temps Réel (TR) : les opérations de
calcul sont alors faites en réponse à un événement extérieur (interruption matérielle). La
validité et la pertinence d'un résultat dépend du moment où il est délivré. Une échéance
manquée induit une erreur de fonctionnement qui peut entraîner soit une panne du système
(plantage).

Dans les systèmes embarqués autonomes, la consommation d'énergie est un point critique
pour le coût. En effet, une consommation excessive augmente le prix de revient du système
embarqué, car il faut alors des batteries de forte capacité.

Les systèmes embarqués requièrent souvent un faible encombrement (faible poids). Leur
technologie fait alors appel à une électronique et à des applications portables où l'on doit
minimiser aussi bien l'encombrement que la consommation électrique. Par conséquent, la
réalisation du packaging afin de faire cohabiter sur une faible surface de l'électronique
analogique, de l'électronique numérique, des composantes RF (Radiofréquence) sans
interférences est une tâche difficile.

2) Définition :
Quelle que soit la nature et la complexité du système, on décompose un système embarqué en
:

 Le système contrôlé
 Le système de contrôle

Le système contrôlé = environnement (procédé) équipé d'une instrumentation qui réalise


l'interface avec le système de contrôle

Le système de contrôle = éléments matériels (microcontrôleur) et logiciels dont la mission


est d'agir sur le procédé via les actionneurs en fonction de l'état de ce procédé indiqué par les
capteurs de manière maintenir ou conduire le procédé dans un état donné.

Un système électronique embarqué est un élément constitutif d'un système plus complexe
pour lequel il rend des services bien précis (contrôle, surveillance, communication). Il est
constitué de parties matérielles et logicielles qui sont conçues spécifiquement pour réaliser
une fonction dédiée.

Système embarqué = Système électronique/informatique conçu pour réaliser une ou plusieurs


tâches précises.

3) les qualités des systèmes électroniques embarqués


Les caractéristiques principales d'un système électronique embarqué sont :
 Autonomes. Une fois enfouis dans l'application ils ne sont (le plus souvent) plus
accessibles
 Temps réel. Les temps de réponses de ces systèmes sont aussi importants que
l'exactitude des résultats
 Réactifs. Il doit réagir à l'arrivée d'informations extérieures non prévues

9) Systèmes embarqués temps réel :


En informatique, on parle d'un système temps réel lorsque ce système est capable de
contrôler (ou piloter) un procédé physique à une vitesse adaptée à l'évolution du procédé
contrôlé.

Un objet technique, intégrant de l’électronique, fait souvent apparaitre des fonctions ayant
pour rôle le traitement d’informations : opération arithmétiques (addition, multiplication…)
ou logiques (ET, OU…) entre plusieurs signaux d’entrée permettant de générer des signaux
de sortie.
ORGANISATION FONCTIONNELLE D’UN SYSTEME A MICROCONTROLEUR

Ces fonctions peuvent être réalisées par des circuits intégrés analogiques ou logiques.
Mais, lorsque l’objet technique devient complexe, et qu’il est alors nécessaire de réaliser un
ensemble important de traitement d’informations, il devient plus simple de faire appel à une
structure à base de microcontrôleur.

1-DESCRIPTION ET STRUCTURE INTERNE


Un microcontrôleur se présente sous la forme d’un circuit intégré réunissant tous les
éléments d’une structure à base de microprocesseur. Voici généralement ce qu’on l’on trouve
à l’intérieur d’un tel composant :

 Un microprocesseur (C.P.U.)
 De la mémoire de données (RAM et EEPROM)
 De la mémoire programme (ROM, OTPROM, UVPROM ou EEPROM)
 Des interfaces parallèles pour la connexion des entrées/ sorties.
 Des interfaces séries (synchrone ou asynchrone) pour le dialogue avec d’autres
unités.
 Des timers pour générer ou mesurer des signaux avec une grande précision
temporelle.
 Des convertisseurs analogiques/ numérique pour le traitement de signaux
analogiques.

 Avantage :
 Encombrement réduit
 Circuit imprimé ou peu complexe
 Faible consommation
 Cout réduit
 Inconvénients :
 Système de développement onéreux
 Programmation nécessitant un matériel adapté.

1.4 L’interface parallèle


Ce type d’interface, répartie sur plusieurs ports (maximum 8 bits), permet de prendre
en compte des états logiques appliqués en entrée (état de capteurs) ou de générer des signaux
binaires en sortie (commande d’actionneurs).Les broches de ces ports peuvent donc être
configurées en entrées ou en sortie, avec différentes options (résistances de rappel, sorties
collecteurs ouverts, interruption…). La configuration ainsi que l’état logique de ces broches
est obtenue par des opérations d’écriture ou de lecture dans différents registres associés à
chaque port. On trouve généralement :

 Un registre de direction pour une configuration en entrée ou en sortie.


 Un registre de donnée recopiant les états logiques de chaque broche de port,
 Un registre d’option permettant plusieurs configurations en entrée ou en sortie.

1.5 L’interface série


Ce type d’interface permet au microcontrôleur de communiquer avec d’autres systèmes à base
de microprocesseur. Les données envoyées ou reçues se présentes sous la forme d’une
succession temporelle (sur un seul bit) de valeurs binaires images d’un mot. Il y a 2 types de
liaisons série : synchrone et asynchrone.

 Liaison série synchrone.


Dans ce dispositif la transmission est synchronisée par un signal d’horloge émis par l’unité
maitre.

 Liaison série asynchrone


Ce dispositif ne possède de signal d’horloge de synchronisation. Les unités en liaison
possèdent chacune une horloge interne cadencée à la même fréquence. Lorsqu’une unité veut
émettre un mot binaire, elle génère un front descendant sur sa ligne émettrice. A la fin de
l’émission de ce mot, la ligne repasse au niveau haut. La donnée à transmettre peut contenir
un bit supplémentaire appelé ‘’parité’’ et servant à la correction d’erreurs.

Paramètres rentrant en jeu pour la norme RS232 :

 La vitesse de transmission : elle est définie en bit par seconde ou bauds. Elle peut
prendre des valeurs allant de 110 à 115 200 bds.
 Niveau de tension : Un ‘’0’’ logique est matérialisé par une tension comprise entre
3et 25V, un ‘’1’’ par une tension comprise entre -25 et -3 V. Des circuits spécialisés
comme le MAX 232 réalise la conversion à partir de niveau TTL.
Communication RS232 entre le port série du PC et microcontrôleur 16F877

L’échange des données entre PC et microcontrôleur via le port USB est aussi possible.
Le schéma ci-dessous est le schéma bloc de cette communication.

FT232R est le convertisseur qui assure la communication USB-RS232/RS232-USB.


La liaison direct entre le port USB et le port RS232 du microcontrôleur n’est pas possible. Le
protocole USB de communication USB est diffèrent du protocole de communication série
(RS232). Uun autre circuit qui assure la communication USB-RS232/RS232-USB est le
fameux circuit FTDI très utilisé sur la version arduino NANO. Ce dernier, permet au
microcontrôleur de la carte arduino NANO de pouvoir communiquer avec un ordinateur via la
liaison USB.

La carte rouge est le module FTDI comportant le circuit intégré FTDI en noir. Le
microcontrôleur Atmega328P peut communiquer avec le PC via le port USB

1.7 Le TIMER
Le Timer permettant de réaliser les fonctions suivantes :
 Génération d’un signal périodique modulé ou non en largeur d’impulsion,
 Génération d’une impulsion calibrée
 Temporisation
 Comptage d’évènements.
Plusieurs registres associés au Timer permettent de configurer les différents modes décrits
précédemment.

1.8 Le chien de garde


Ce dispositif est un système anti-plantage du microcontrôleur. Il s’assure qu’il n’y ait
pas d’exécution prolongé d’une même suite d’instruction.

Un compteur préchargeable se décrémente régulière au rythme de la fréquence


d’horloge. Si aucun préchargement n’est effectué avant qu’il n’atteigne la valeur ‘’0’’ un
Reset est généré relançant ainsi le microcontrôleur. Il faut donc penser à précharger
régulièrement ce chien de garde par programme lorsqu’il est activé.

2-MODE DE FONCTIONNEMENT
Le microprocesseur exécute séquentiellement les instructions codées en binaire et
présentent dans la mémoire programme. L’initiation de cette séquence peut se faire de
différentes manières selon le mode de fonctionnement.

2.1 Le fonctionnement en interruptions


Le microcontrôleur dans son environnement, est destiné à traiter des informations en ‘’temps
réel’’. L’application est couplée au monde extérieur par l’échange fréquent de messages et des
signaux à des instants prévus. Il est dans l’obligation de l’état en fonction des priorités
relatives de l’opération en cours et de celle qui lui est demandé. Il interrompt ou non le
déroulement normal du programme en fonction d’une demande externe.

Celles-ci sont vues du microcontrôleur comme des demandes d’interruption. On note deux
types d’interruption :

 NMI (No Maskable Interrupt) interruption non-masquable.


 IRQ (interrupt Request) : interruption masquable.
Quel que soit l’entrée d’interruption activée, le microprocesseur réalise des taches identiques :

 Dans tous les cas, le programme principal est interrompu après la fin de l’instruction
en cours.
 Le processeur doit sauvegarder le contenu du PC (Program Counter) dans la pile :
 Le processeur exécute une séquence privilégiée (sous-programme), reflet du type de
traitement d’interruption
 Recharge le contenu de la pile dans le PC pour que le programme principal puisse se
poursuivre à l’endroit où il s’était arrêté.
NB : La prise en compte d’une interruption ne se fait jamais pendant l’exécution d’une
instruction.

2.2 Initialisation : RESET


Un niveau bas sur cette entrée entraine une réinitialisation complète du
microprocesseur : l’instruction en cours est arrêtée. D’une façon générale ce signal est activé à
la mise sous tension. Un bouton poussoir est souvent rajouté afin qu’une réinitialisation
manuelle soit possible.

Lorsque le signal du RESET est activé, tous les registres sont initialisés et le compteur
programme (Program Counter) se place à une adresse spécifique appelée ‘’Vecteur de
RESET’’.

Vous aimerez peut-être aussi