Moniteur de fréquence cardiaque MAX30102
Moniteur de fréquence cardiaque MAX30102
1
Table des matières
1. Introduction Arduino :-------------------------------------------------------------------------------------------------7
chapitre 1---------------------------------------------------------------------------------------------------------------------10
Introduction---------------------------------------------------------------------------------------------------------------11
Cahier des charges------------------------------------------------------------------------------------------------12
Partie Matériels--------------------------------------------------------------------------------------------------------------13
CARTE ARDUINO PRO MINI R3 :-------------------------------------------------------------------------------14
-Le MAX30102-------------------------------------------------------------------------------------------------------17
Vue d’ensemble du matériel:------------------------------------------------------------------------------------------19
Interface I2C:---------------------------------------------------------------------------------------------------------22
Mesure de la fréquence cardiaque:--------------------------------------------------------------------------25
MLX90614 Capteur De Température :----------------------------------------------------------------------25
Module Bluetooth HC-05-----------------------------------------------------------------------------------------28
Caractéristiques générales des LCD alphanumériques (16x2, 20x4, etc.)--------------------32
les différentes broches de l’écran LCD :-------------------------------------------------------------------33
Partie Logiciel :------------------------------------------------------------------------------------------------------40
Structure:---------------------------------------------------------------------------------------------------------------41
Le Fonction :----------------------------------------------------------------------------------------------------------42
Le Code du Projet :----------------------------------------------------------------------------------------------------46
Résumé-------------------------------------------------------------------------------------------------------------------------50
2
Remerciements
Je tiens à exprimer ma profonde gratitude à toutes les personnes qui ont
contribué, de près ou de loin, à la réalisation de ce projet de fin d’études.
Je remercie tout particulièrement Mme Ranim mon encadrant à
l’université, pour ses conseils avisés, sa disponibilité et son
accompagnement tout au long de ce projet.
Je souhaite également remercier [Link], mon superviseur au sein de
INT, pour m’avoir accueilli(e) chaleureusement, pour la richesse des
échanges que nous avons eus et pour son encadrement professionnel et
bienveillant.
Merci également à toute l’équipe de INT pour leur soutien, leur esprit
collaboratif et l’ambiance agréable au sein de laquelle j’ai pu évoluer.
Enfin, je remercie ma famille et mes amis pour leur soutien moral tout au
long de cette période exigeante
3
Introduction générale :
4
différentielle de ces longueurs d'onde indique les quantités relatives d'hémoglobine
oxygénée et désoxygénée. L'oxymétrie de pouls est largement utilisée dans les
hôpitaux, les cliniques et même à domicile pour surveiller les patients souffrant de
maladies respiratoires, pendant l'anesthésie et en néonatologie. Sa simplicité
d'utilisation et son retour d'information immédiat en font un outil essentiel pour la
prise en charge de la détresse respiratoire.
5
informations de plus en plus détaillées et personnalisées sur la santé et le bien-être
humains.
6
1. Introduction Arduino :
L'un des principaux atouts d'Arduino est son caractère open source. Cette ouverture
favorise une communauté collaborative où les utilisateurs partagent leurs projets,
leur code et leurs solutions. Les nombreuses ressources en ligne, notamment les
forums, les tutoriels et la documentation, aident les apprenants de tous niveaux.
Cette approche communautaire accélère ainsi l'apprentissage et stimule la créativité
dans le développement de projets. Les utilisateurs peuvent trouver tout, des tutoriels
de base pour la création de simples clignotants LED aux guides plus complexes pour
la construction de robots ou de systèmes domotiques.
7
aux applications commerciales. Les établissements et les enseignants ont adopté
Arduino pour enseigner les concepts fondamentaux de la programmation, de
l'électronique et de la conception de systèmes, préparant ainsi les étudiants aux
futurs domaines technologiques.
Cependant, malgré ses avantages, Arduino n'est pas sans limites. Bien qu'excellent
pour le prototypage et les projets à petite échelle, ses performances peuvent ne pas
égaler celles de microcontrôleurs plus spécialisés en termes de puissance de
traitement et d'efficacité pour les opérations à grande échelle. Les utilisateurs doivent
tenir compte des exigences du projet et de son évolutivité potentielle lorsqu'ils
choisissent Arduino comme plateforme de développement. Néanmoins, pour la
grande majorité des applications, ces limitations ne nuisent pas à son attrait général.
8
o Ports activés par PWM: 6
o Ports compatibles ADC: 8
o Capacité des chiffres ADC: 10 bits
o Mémoire Flash: 16 kb
o Mémoire SRAM: 1 kb
o Mémoire EEPROM: 512 octets
o Dimensions: 33×18 mm
Figure 1
9
Introduction
10
Cahier des charges
11
Partie Matériels
1 –Liste de Matériel :
Schéma de câblage
Carte Arduino Pro Mini R3
Module Capteur D’oxygène et de Fréquence MAX30102
MLX90614 Capteur De Température
Plaque A essai
Ecran LCD
Gables PIN Arduino
Support De Piles
Bluetooth
12
CARTE ARDUINO PRO MINI R3 :
L'Arduino Pro Mini R3 est une carte de développement microcontrôleur qui repose
sur le microcontrôleur ATmega328 (8 bits). Elle est élaborée pour des projets
intégrés qui requièrent une consommation d'énergie réduite et un espace minimal.
Elle est dépourvue de prise USB et d'éléments superflus, ce qui la rend parfaite pour
des intégrations finales dans des dispositifs électroniques.
Figure 2
13
Mémoire de la carte Arduino Pro Mini :
-La mémoire Flash, non volatile, stocke le code du programme et les données
exécutées par le microcontrôleur. L'Arduino Pro Mini dispose généralement de 32
Ko de mémoire Flash, dont 0,5 Ko réservé au chargeur de démarrage. Cela
signifie que la mémoire Flash disponible pour le code utilisateur est d'environ 31,5
Ko. Cette allocation importante permet le développement de programmes
relativement complexes capables de contrôler plusieurs entrées et sorties, de
gérer diverses tâches et d'intégrer différentes bibliothèques. L'importance de la
mémoire Flash est cruciale : elle est essentielle au stockage du code de
l'application et permet à la carte de fonctionner de manière autonome une fois
programmée.
La SRAM, ou mémoire vive statique, est utilisée pour le stockage des données
d'exécution. L'Arduino Pro Mini dispose généralement de 2 Ko de SRAM. C'est là
que sont stockées les variables, les tableaux et autres données transitoires
pendant l'exécution du programme. La capacité limitée de la SRAM peut poser
des difficultés lors de l'utilisation de grands ensembles de données ou de
programmes complexes, car le programmeur doit gérer efficacement l'utilisation
de la mémoire pour éviter les problèmes de dépassement. Pour les applications
nécessitant un traitement de données important ou des algorithmes complexes,
une planification minutieuse de l'utilisation des variables et de l'allocation
mémoire est cruciale.
14
En fin de compte, les caractéristiques mémoire de l'Arduino Pro Mini mettent en
évidence ses points forts et ses limites. Bien que sa conception compacte et ses
diverses options de mémoire offrent une grande liberté de créativité et
d'innovation dans les projets électroniques, les développeurs doivent composer
avec les contraintes liées aux capacités mémoire. Face à la complexité croissante
des applications, la compréhension des subtilités d'utilisation de la mémoire joue
un rôle crucial dans la réussite des projets.
Lors de votre choix d'alimentation pour l'Arduino Pro Mini, il est important de prendre
en compte la tension et le courant nécessaires pour faire fonctionner correctement la
carte, ainsi que la durée pendant laquelle vous souhaitez que la carte reste
alimentée. Vous devez également tenir compte de la consommation d'énergie de vos
périphériques connectés à l'Arduino Pro Mini, afin de choisir la source d'alimentation
la plus adaptée à votre application.
15
-Le MAX30102
Le MAX30102 est un capteur optique de pointe conçu pour l'oxymétrie de pouls
et la surveillance de la fréquence cardiaque. Il permet de mesurer la saturation en
oxygène du sang et la fréquence cardiaque de manière non invasive. Ce capteur
se distingue par l'intégration de multiples fonctionnalités dans un format compact,
ce qui en fait un choix idéal pour les appareils portables de surveillance de la
santé, les trackers d'activité et les applications médicales..
Figure 3
16
Vue d’ensemble du matériel:
Un des aspects remarquables du MAX30102 est sa configuration avec les LED
rouge et infrarouge. Ces deux types de lumière sont fondamentaux dans la
photopléthysmographie, une méthode non invasive de mesure de la fréquence
cardiaque et de la saturation en oxygène. En éclairant la peau avec ces LED, le
photodétecteur peut capter les changements dans le volume sanguin, résultant des
battements cardiaques et de la circulation sanguine. Ce processus est d'une grande
précision et permet d'obtenir des données fiables qui peuvent être utilisées pour
évaluer la santé d'un individu.
RÉFÉRENCES
17
1. "MAX30102 - O PTICAL HEART RATE SENSOR AND OXIMETER". MAXIM
INTEGRATED.
Figure 4
18
Exigences d’alimentation:
-En effet, le capteur MAX30102 a besoin d'une tension comprise entre 3,3V et
5,5V pour fonctionner de manière optimale. Heureusement, le dispositif est
équipé de régulateurs de tension intégrés qui permettent de délivrer les tensions
nécessaires pour son bon fonctionnement. Ainsi, il est possible d'alimenter le
capteur en utilisant la carte Arduino elle-même ou en utilisant une autre source
d'énergie compatible.
19
Interface I2C:
Le MAX30102 est un module de capteur avancé intégrant de multiples
fonctionnalités au sein d'une interface compacte, utilisant principalement le protocole
de communication I2C (Inter-Integrated Circuit). Cet essai vise à expliquer les
principes de l'interface I2C, à souligner son importance dans le contexte du capteur
MAX30102 et à examiner ses applications dans les systèmes de surveillance de la
santé.
Le protocole I2C a été développé par Philips Semiconductors au début des années
1980 pour offrir un moyen simple et efficace de communication entre les
microcontrôleurs et les périphériques. L'interface I2C utilise un système à deux fils
composé d'une ligne de données série (SDA) et d'une ligne d'horloge série (SCL).
Cette simplicité facilite l'intégration et minimise la complexité du câblage. La
possibilité de connecter plusieurs appareils sur le même bus distingue l'I2C des
autres méthodes de communication série, ce qui en fait un choix privilégié pour les
applications nécessitant la communication simultanée de plusieurs capteurs ou
appareils.
L'un des avantages notables de l'I2C avec le MAX30102 est sa prise en charge
multi-maître. Cette fonctionnalité permet à plusieurs microcontrôleurs ou capteurs de
partager le même bus, améliorant ainsi la flexibilité de conception du système.
Lorsque plusieurs appareils sont connectés, une adresse unique est attribuée à
chacun, garantissant une transmission de données efficace et sans conflit. De plus,
le protocole I2C prend en charge une large gamme de fréquences d'horloge,
permettant aux développeurs d'ajuster les performances du système en fonction des
exigences de l'application.
20
facilitent l'intégration du capteur dans diverses applications. Ces bibliothèques
simplifient la communication I2C, permettant aux ingénieurs de se concentrer sur
l'analyse des données collectées.
Ces dernières années, le MAX30102 et son interface I2C ont trouvé de nombreuses
applications dans de nombreux domaines, notamment dans les technologies de la
santé et du fitness. Les montres connectées et les objets connectés de fitness
utilisent couramment ces composants pour surveiller les signes vitaux, suivre les
activités des utilisateurs et fournir des informations sur leur état de santé général. De
plus, la capacité du MAX30102 à fournir des données en temps réel a des
implications importantes en télémédecine, où la surveillance continue de la santé est
essentielle pour les soins à distance.
21
Mémoire tampon FIFO:
Le dispositif MAX30102 est équipé d'une mémoire tampon FIFO intégrée capable de
conserver jusqu'à 32 échantillons de fréquence cardiaque et de SpO2. Cela permet
de conserver la capacité du système en évitant àl'Arduino de traiter chaque nouveau
lot de données du capteur.
Spécifications techniques:
Le capteur MAX30102 opère sous une tension allant de 3,3V à 5,5V. Sa
consommation électrique est inférieure à 600μA lors des mesures et se limite à
0,7μA en mode veille. Les diodes électroluminescentes rouges et infrarouges
émettent à des longueurs d'onde de 660 nm et 880 nm, respectivement. Le dispositif
est aussi équipé d'un capteur de température intégré pour compenser et calibrer les
mesures.
Fonctionnement du capteur MAX30102:
Le capteur MAX30102 opère en évaluant le volume de lumière renvoyé par le sang.
Il se sert de l'absorption de la lumière infrarouge par l'hémoglobine oxygénée dans le
sang artériel pour évaluer le rythme cardiaque. En ce qui concerne la SpO2, il évalue
le ratio de la lumière rouge et infrarouge absorbée afin de déterminer le degré
d'oxygénation du sang.
Figure 5
22
Mesure de la fréquence cardiaque:
Le détecteur MAX30102 repère les changements de lumière réfléchie en relation
avec le rythme cardiaque. Il se sert de cette donnée pour déterminer le rythme
cardiaque en battements par minute (BPM).
Oxymétrie:
Le capteur MAX30102, en exploitant deux LED - rouge et infrarouge - évalue le
changement d'absorption de ces lumières par le sang afin de définir le taux de
SpO2. Il détermine le taux d'oxygène associé à l'hémoglobine dans le sang.
MLX90614 Capteur De Température :
Le MLX90614 est un détecteur de température infrarouge sans contact qui s'appuie
sur la loi de Stefan-Boltzmann. Cet appareil évalue la température d'un objet dans
une fourchette de -70°C à 382,2°C et la température environnante dans un intervalle
de -40°C à 125°C sans nécessité de contact direct avec l'objet observé. Ce détecteur
exploite une interface I2C pour envoyer les mesures de température à des
microcontrôleurs par le biais d'un bus I2C.
Principe de fonctionnement :
Le fonctionnement du capteur MLX90614 repose sur la loi de Stefan-Boltzmann,
selon laquelle tout objet émet un rayonnement infrarouge (IR) qui est directement
proportionnel à sa température. Le capteur infrarouge intégré au MLX90614 saisit ce
rayonnement, qui est ensuite converti en un signal numérique. Ce dernier est
transmis au microcontrôleur par l'intermédiaire du bus I2C.
Le composant du capteur infrarouge MLX90614 renferme un détecteur thermopile
infrarouge couplé à une unité de traitement de signal ASSP (Application Spécifique
Signal Procession). Le thermopile capte le rayonnement infrarouge à l'intérieur de
son champ de vision, qui peut varier en fonction des versions du capteur, et génère
un signal électrique en rapport avec ce rayonnement. L'unité de traitement ASSP
transforme ce signal analogique en un signal filtré et amplifié, qui est par la suite
23
Caractéristiques et spécifications
Résolution de
Tension de mesure : 0,02°C
fonctionnement : 3,6
Volts – 5,5 Volts
Sensibilité ESD : 2 kV
Plage de température
ambiante : -40°C à
125°C
Caractéristiques et
spécifications Courant source/sortie :
Plage de température 25 mA
de l’objet : -70°C à
380°C
Mode d’économie
Adapté aux applications
d’énergie disponible
de 8 à 16 volts et
facilement intégrable
Capteur économe en
Disponible en versions
énergie et hautement
simple et double
sensible
24
Diagramme des broches :
Le dispositif de mesure de température infrarouge MLX90614 se présente dans un
boîtier TO-39 et est équipé des broches suivantes ;
Broche Fonction
VCC Alimentation positive
GND Masse de référence
SCL Broche d’horloge série a drain ouvert
(l2C)
SDA Broche de donnés série a drain ouvert
(l2C)
Figure 6
25
Introduction
Il est utilisé pour de nombreuses applications telles que le casque sans fil, les
contrôleurs de jeu, la souris sans fil, le clavier sans fil et bien d'autres
applications grand public.
Il a une portée allant jusqu'à 100 millions d'euros, ce qui dépend de l'émetteur
et du récepteur, de l'atmosphère, des conditions géographiques et urbaines.
C'est le protocole normalisé IEEE 802.15.1, grâce auquel on peut construire
un réseau sans fil de zone personnelle (PAN). Il utilise la technologie radio
FHSS (Syro-hopping spectrum spectrum) pour envoyer des données par voie
aérienne.
Il utilise la communication en série pour communiquer avec les dispositifs. Il
communique avec le microcontrôleur à l'aide d'un port série (USART).
26
Module Bluetooth HC-05
Figure 7
Figure 8
Les modules série Bluetooth permettent à tous les appareils compatibles série de
communiquer entre eux en utilisant Bluetooth.
Il a 6 broches,
1. Clé/EN: Il est utilisé pour apporter le module Bluetooth en mode commandes AT.
Si la broche Key/EN est positionnée à une hauteur, alors ce module fonctionnera en
mode de commande. Sinon par défaut, il est en mode de données. Le taux de baud
par défaut de HC-05 en mode de commande est de 38400bps et 9600 en mode de
données.
Le module HC-05 a deux modes,
1. Mode de données: Échange de données entre dispositifs.
2. Mode de commande: Il utilise des commandes AT qui sont utilisées pour modifier
le réglage du HC-05. Pour envoyer ces commandes au port série du module
(USART), on utilise.
2. VCC: Connecter 5 V ou 3,3 V à cette épingle.
3. GND: broche au sol du module.
4. TXD: Transmit Serial data (données sans fil reçues par le module Bluetooth
transmises en série sur la broche TXD)
5. RXD: Recevoir des données en série (les données reçues seront transmises sans
fil par le module Bluetooth).
6. État: Il indique si le module est connecté ou non.
27
Module HC-05 Informations
HC-05 a une LED rouge qui indique l'état de connexion, que le Bluetooth
soit connecté ou non. Avant de se connecter au module HC-05, cette LED
rouge clignote en continu de manière périodique. Lorsqu'il est connecté à
n'importe quel autre dispositif Bluetooth, sa clignotement ralentie à deux
secondes.
Ce module fonctionne sur 3,3V. On peut également connecter la tension
d'alimentation de 5V puisque le module a à bord un régulateur de 5 à 3,3 V.
Comme le module Bluetooth HC-05 a un niveau de 3,3V pour RX/TX et que
le microcontrôleur peut détecter un niveau de 3,3 V, de sorte qu'il n'est pas
nécessaire de déplacer le niveau d'émission du module HC-05. Mais nous
devons déplacer le niveau de tension d'émission du microcontrôleur vers le
RX du module HC-05.
Le taux de transfert de données du module HC-05 peut varier jusqu'à 1 Mbps
est de l'ordre de 10 mètres.
28
Par exemple. Envoyer des données du terminal Smartphone au module Bluetooth
HC-05 et voir ces données sur le terminal série PC et vice versa.
Pour communiquer un smartphone avec le module Bluetooth HC-05, le smartphone
nécessite une application de terminal Bluetooth pour transmettre et recevoir des
données. Vous pouvez trouver des applications de terminal Bluetooth pour Android
et Windows dans l'application respective.
29
LCD représente l'acronyme anglais « Liquid Crystal Display », qui se traduit en
français par « Écran à cristaux liquides ». Par conséquent, il y a un affichage LCD.
Affichage :
o 2 lignes
o 16 caractères par ligne (d'où "2x16")
Technologie : LCD (affichage à cristaux liquides)
Type de contrôleur : HD44780 ou compatible (standard)
Tension d’alimentation :
o 5V (certains modèles supportent aussi 3.3V)
Interface :
o 8 bits (parallèle) ou
o 4 bits (mode plus courant pour Arduino, avec moins de fils)
Consommation : très faible, adaptée aux projets sur piles
Rétro éclairage :
o Généralement fourni (LED blanche ou bleue)
o Activable ou désactivable (souvent via broche K et A)
Contrôle de contraste :
o Ajusté par potentiomètre via la broche Vo
Dimensions physiques typiques :
o Environ 80 mm x 36 mm
o Zone d’affichage : environ 64 mm x 16 mm
Température de fonctionnement :
o De -20°C à +70°C (en général)
Figure 10
30
les différentes broches de l’écran LCD :
31
Support de piles :
Un support de piles est une structure ou un appareil destiné à soutenir une ou
plusieurs batteries (qu'elles soient rechargeables ou non) et à les relier
électriquement à un circuit. Il offre la possibilité d'alimenter aisément un équipement
électronique ou une assemblage, tel qu'un projet Arduino, sans nécessiter une
soudure directe des batteries.
Principales fonctionnalités :
Figure 11
32
Variétés fréquentes :
33
plaque d'essai :
-Une plaque d'essai, également appelée breadboard ou protoboard, est une planche
composée de trous électriquement reliés entre eux en interne. Cette plaque permet
l'insertion de composants électroniques et de fils pour l'assemblage et la réalisation
de prototypes de circuits électroniques. Elle est conçue à partir de deux substances,
un isolant et un conducteur qui établit une connexion électrique entre les orifices,
selon une disposition horizontale ou verticale. Elle est utilisée pour la conception et
l'expérimentation de prototypes de circuits électroniques avant leur impression
mécanique dans les systèmes de production commerciale.
L'objectif est de pouvoir tester nos projets sur elle de manière aisée, étant donné
qu'elle est entièrement opérationnelle, et également d'effectuer des modifications
aisément si besoin.
Figure 12
34
Connexions internes de la plaque d’essai :
Le rail central : il est situé au milieu de la plaque qui divise les zones de
connexion supérieures des inférieures, et on s'en sert pour positionner des
composants « en travers », afin de relier des circuits tout en conservant les
broches séparées de chaque côté du circuit intégré.
Les lignes sont dénotées par des chiffres, tandis que les colonnes le sont par
des lettres.
Figure 13
35
Les fils de liaison :
Les câbles de connexion pour Arduino, également désignés comme fils Dupont, sont
utilisés pour assurer des liaisons entre les différents composants électroniques,
modules et la carte Arduino. Ils se déclinent en diverses versions et sont dotés de
différents types de connecteurs.
Les types :
Mâle vers Mâle (Male to Male) Servent à relier deux éléments ou cartes
dotés de connecteurs femelles, tels qu'une carte Arduino et une
breadboard.
Mâle à Femelle Employés pour établir une connexion entre une broche
mâle (telle qu'on peut le trouver sur un capteur ou un module) et une
broche femelle, comme on le retrouve sur une carte Arduino.
Femelle à Femelle (Female to Female) Destinés à connecter deux broches
mâles, comme un module doté de broches mâles ↔ une carte Arduino
équipée de broches mâles. Figure Figure
Connecteur male :
Connecteur Femelle :
un orifice qui reçoit une broche mâle (connecteur).
36
Figure 14
En conclusion, nous avons construit certains des composants nécessaires à la
réalisation du projet. Nous avons également créé un schéma de câblage illustrant les
connexions entre les différents modules et la carte Arduino.
37
Partie Logiciel :
1- Description des Logiciels :
Le Code :
Le Code est un recueil d'instructions rédigé dans un langage dérivé du C++,
spécifiquement élaboré pour l'utilisation avec les cartes Arduino. Il autorise la gestion
des entrées et sorties de la carte, l'exécution de calculs ainsi que l'interaction avec
des capteurs et des actionneurs. Autrement dit, le code Arduino permet de
transformer la carte en un instrument multifonctionnel pour la réalisation de projets
électroniques interactifs.
Figure 15
38
Structure:
En général, le code Arduino se divise en deux fonctions majeures : setup() et loop().
La fonction setup() se déroule une seule fois au moment du démarrage de la carte,
alors que la fonction loop() est exécutée de façon répétée tant que la carte reçoit de
l'alimentation.
Figure 16
39
Le Fonction :
1-Première fonction :
La fonction setup() est invoquée une unique fois au démarrage du programme. C'est
pour cela que c'est dans cette fonction que nous allons codifier le programme qui n'a
besoin d'être exécuté qu'une seule fois. On désigne cette fonction par le terme : «
fonction d'initialisation ». On y trouvera l'organisation de diverses sorties et quelques
autres activités.
-Paramètres.
Après avoir démarré le programme, la prochaine étape consiste à construire son «
noyau », c'est-à-dire le programme lui-même.
Figure 17
40
2-Deuxième fonction :
C'est donc à l'intérieur de cette fonction loop() que nous allons rédiger le contenu
du programme. Il est important de noter que cette fonction est appelée sans
cesse, c'est-à-dire qu'elle est exécutée une fois, puis une fois son exécution
terminée, elle l'est de nouveau, encore et encore. On évoque une boucle sans fin.
Les instructions :
À présent que nous avons examiné la structure des fonctions, voyons ce qu'elles
peuvent renfermer.
Les directives sont des lignes de code qui indiquent au logiciel : « Réalise ceci,
exécute cela... » Ainsi, ce sont les instructions qui seront mises en œuvre par
l'Arduino. Il est crucial de suivre à la lettre la syntaxe ; en cas de non-respect
Les points virgules :
Les instructions se terminent par des points-virgules. Par exemple, dans notre
programme, si nous indiquons : « exécute la fonction mangerLeChat », un point-
virgule doit être ajouté suite à l'appel de cette fonction.
Quand le code ne marche pas, c'est généralement dû à l'absence d'un point-virgule.
Ainsi, il est nécessaire d'être extrêmement
Faisons attention à ne pas les négliger !
Les accolades { } :
Les accolades servent de « conteneurs » pour le code du programme. Elles sont
spécifiques aux fonctions, aux conditions et aux boucles. Ces accolades contiennent
les directives du programme.
Pour insérer une accolade sur Mac, utilisez alt-8 pour l'ouvrir et alt-9 pour la fermer.
Les commentaires :
Les commentaires constituent des lignes de code que le programme ne tiendra pas
en compte. Elles ne sont d'aucune utilité lors de la mise en œuvre du programme. Ils
offrent la possibilité d'annoter et de commenter le programme.
41
Le Bibliothèque :
Une bibliothèque (ou « library » en anglais) désigne une collection de code
préexistant qui améliore les capacités de l'IDE Arduino. Elles proposent des
méthodes, des classes et des constantes pour faciliter l'interaction avec des
éléments matériels précis ou la réalisation de tâches fréquentes, évitant ainsi le
besoin de recommencer l'écriture du code initial.
Fonctionnement :
Les bibliothèques sont élaborées en C ou C++ et ont pour but d'être intégrées dans
les sketches Arduino (programmes).
Elles simplifient la gestion de capteurs, d'écrans, de modules de communication,
entre autres, en proposant des classes et des fonctions dédiées.
L'ajout d'une bibliothèque est réalisé en utilisant la directive #include, qui doit être
suivie du nom du fichier d'en-tête de la bibliothèque, tel que #include <Servo.h>.
Installation:
Il est possible d'installer les bibliothèques directement via l'IDE Arduino en se servant
du gestionnaire de bibliothèques.
On peut aussi mettre en place une bibliothèque en récupérant son fichier .zip et en
l'intégrant par le biais de l'IDE, ou encore en l'insérant dans le répertoire des
bibliothèques de l'IDE.
42
Le logiciel Arduino IDE :
La programmation se fait dans le logiciel Arduino IDE:
Menu :
Bouton 1 : Ce bouton permet de vérifier le programme, il actionne un module qui
cherche les erreurs dans le programme
- Bouton 2 : Envoi du programme sur l’Arduino
-Bouton 3 : Créer un nouveau fichier
- Bouton 4 : Ouvrir un fichier existant
- Bouton 5 : Enregistrer un fichier
43
Le Code du Projet :
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "MAX30105.h"
#include "heartRate.h"
#include <Adafruit_MLX90614.h> // مكتبةMLX90614 منAdafruit
MAX30105 particleSensor;
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define MAX_BRIGHTNESS 255
void setup() {
[Link](115200);
[Link]();
[Link]();
[Link]();
if () {
[Link]("MAX30105 Error");
while (1);
}
[Link]();
[Link](MAX_BRIGHTNESS);
[Link](MAX_BRIGHTNESS);
if (![Link]()) {
[Link]();
[Link]("MLX90614 Error");
while (1);
44
}
[Link](0, 0);
[Link]("System Ready");
delay(2000);
[Link]();
}
void loop() {
long irValue = [Link]();
45
}
int heartRate;
int spo2;
bool validHR = false;
bool validSpO2 = false;
[Link](0, 0);
if (validHR) {
[Link]("BPM:");
[Link](heartRate);
[Link](" ");
} else {
[Link]("BPM: -- ");
}
[Link](0, 1);
if (validSpO2) {
[Link]("SpO2:");
[Link](spo2);
[Link]("% ");
} else {
[Link]("SpO2: --% ");
}
[Link](" T:");
[Link](objectTemp, 1);
[Link]((char)223);
[Link]("C");
46
}
delay(1000);
}
47
Résumé
48
Références
(s.d.). Récupéré sur [Link]
[Link] (s.d.).
magazine, i. p. (s.d.).
maxi integrated "max 30102" plus oximeter and heart -rate sensor. (s.d.). Récupéré sur
HTTPS://[Link]/EN/PRODUCTS/SENSORS/[Link].
49