Académique Documents
Professionnel Documents
Culture Documents
À ma grande sœur
À travers les hauts et les bas, tu as été ma source constante d'inspiration, de soutien et d'amour
inconditionnel.
Dans ce moment spécial de mon parcours académique, je tiens à te dédier mon projet de fin d'études.
Ta présence et ton encouragement ont été des piliers solides qui m'ont guidé jusqu'ici.
Oussama Taif
Je dédie mon travail,
À ma famille
qui a été mon roc et ma source de motivation. Leur amour et leur encouragement ont été essentiels pour
que je puisse mener à bien ce travail.
Omar El
Asri
Remerciement
En cet instant de réalisation et d'accomplissement, il est essentiel pour nous d'exprimer une gratitude
sincère envers ceux qui ont contribué, de près ou de loin, à la concrétisation de ce projet.
Nous adressons nos plus chaleureux remerciements à notre encadrant, Monsieur El Hanafi Ahmad,
dont les conseils éclairés et l'expertise ont joué un rôle déterminant dans la réussite de notre projet. Sa
patience, sa disponibilité et son soutien constant ont été des atouts précieux tout au long de ce parcours.
Nous souhaitons également exprimer notre profonde reconnaissance envers Monsieur Fri, notre chef
de filière, pour son soutien indéfectible et son inspiration continue. Sa guidance bienveillante et son
engagement envers notre réussite ont été des moteurs essentiels dans notre parcours académique.
À Monsieur Derouiche, notre estimé chef de département, vont nos remerciements les plus sincères.
Son leadership éclairé et son engagement envers l'excellence académique ont créé un environnement
propice à notre épanouissement professionnel. Ses conseils avisés ont été une boussole précieuse dans
nos prises de décision.
Nos parents méritent également une mention spéciale. Leur amour inconditionnel, leur soutien
indéfectible et leurs encouragements constants ont été les fondations sur lesquelles reposent chacun de
nos accomplissements. Leur exemple de dévouement et de persévérance continuera de nous inspirer
dans toutes nos entreprises futures.
Enfin, à tous ceux qui ont contribué de près ou de loin à notre succès, nous adressons nos plus profonds
remerciements. Que cette réussite soit le reflet de notre reconnaissance envers chacun d'entre vous.
Résumé
La robotique est un domaine fascinant qui englobe l’ensemble des techniques permettant la conception et
la réalisation de machines automatiques ou de robots. Elle s’appuie sur des éléments essentiels tels que
les capteurs, les systèmes logiques basés sur des microprocesseurs et les actionneurs. Ces
Composants interagissent pour permettre aux robots d’exécuter des tâches spécifiques, qu’il s’agisse
d’assembler des voitures dans une usine, de nettoyer nos maisons ou d’aider les chirurgiens lors
d’opérations délicates. La robotique est un domaine en constante évolution, où la créativité et
L’intelligence artificielle se rejoignent pour façonner notre avenir technologique.
Le concept de parking intelligent représente une avancée significative dans la gestion automatisée du
stationnement urbain. Ces systèmes, ancrés dans la technologie moderne, utilisent une gamme de
dispositifs tels que des capteurs, des applications mobiles, et des systèmes de guidage pour optimiser
l’utilisation de l’espace de stationnement. Le smart parking, aussi appelé parking connecté, tire parti de
la technologie pour optimiser la disponibilité des places et simplifier le processus de stationnement.
Ses origines remontent au début des années 2010. Grâce à des systèmes intelligents, le smart parking
permet notamment de localiser plus facilement des emplacements libres. Il améliore ainsi l’expérience
des conducteurs et la fluidité au sein du parking. Cette solution innovante renforce l’efficacité de la
Gestion des parkings et s’adapte parfaitement aux besoins des villes modernes. En somme, le parking
Intelligent révolutionne la mobilité urbaine en rendant le stationnement plus efficace et pratique.
Mots clés : la robotique , Editeur d’obstacles, Arduino, Capteur, Robot, Electronique. Parking connecte,
smart parking
Table des matières
Table des matières
Introduction................................................................................................................................................................7
CHAPITRE 1 :........................................................................................................................................................................8
Analyse fonctionnelle..............................................................................................................................................................8
Introduction :......................................................................................................................................................8
Description du système....................................................................................................................................9
Analyse fonctionnelle.......................................................................................................................................9
1.1 Graphe des interacteurs.............................................................................................................................9
1.2Caractérisation des Fonctions de Service..............................................................................................10
1.3Diagramme FAST du robot......................................................................................................................11
1.4 Grafcet fonctionnel du robot.................................................................................................................12
Conception du robot.....................................................................................................................................13
2.1 Choix de robot..........................................................................................................................................13
2.2 Cahier de charge.......................................................................................................................................15
Conclusion.........................................................................................................................................................16
Chapitre 2..............................................................................................................................................................................17
3
Études de conception d’un parking...............................................................................................................................17
Introduction......................................................................................................................................................18
Conception et Dimensions................................................................................................................................18
1.1 Choix du Matériaux :..................................................................................................................................18
1.2 Dimensions :................................................................................................................................................18
1.3 Disposition des Places de Stationnement :..................................................................................................19
1.4 Marquages au Sol :......................................................................................................................................19
Assemblage et Finition.....................................................................................................................................20
1.1 Construction :..............................................................................................................................................20
1.2 Finition :......................................................................................................................................................20
Système de Parking Intelligent :.....................................................................................................................20
Communication et Interaction :......................................................................................................................20
Chapitre 3 :............................................................................................................................................................................21
Chapitre 4 :............................................................................................................................................................................38
4
Réalisation..............................................................................................................................................................................38
Introduction :....................................................................................................................................................39
Définition du logiciel Arduino IDE :.................................................................................................................39
Le logiciel Arduino :..........................................................................................................................................41
Definition du ESP Now....................................................................................................................................43
Le code ESP32 utilisé:.......................................................................................................................................44
ESP32Master.....................................................................................................................................................45
ESP32 Slave :....................................................................................................................................................49
Conclusion.......................................................................................................................................................62
Bibliographie.........................................................................................................................................................................63
https://diyi0t.com/tcrt5000-line-tracking-module-arduino-esp8266-esp32/....................................................................63
https://dronebotworkshop.com/esp-now/............................................................................................................................63
5
Table des figures
6
Introduction
Le Système de Parking Intelligent est un projet novateur visant à améliorer l’efficacité et la gestion
des parkings. Dans un monde où l’espace urbain est de plus en plus restreint et où la circulation
automobile ne cesse d’augmenter, la recherche de places de stationnement devient un véritable défi.
Notre système vise à résoudre ce problème en utilisant des technologies modernes telles que les
capteurs de présence, les cartes ESP32 et la communication sans fil.
L’urbanisation croissante entraîne une saturation des parkings, rendant difficile la recherche de places
libres pour les conducteurs. Les systèmes de parking traditionnels sont souvent inefficaces et ne
permettent pas une utilisation optimale de l’espace disponible. De plus, les conducteurs perdent un
temps précieux à chercher une place, ce qui peut entraîner des retards et des frustrations.
Dans le but de répondre à cette problématique, nous allons dans un premier temps opter à une étude
fonctionnelle portant sur notre robot mobile, en commençant par une analyse détaillée sur les
différentes fonctions que doit satisfaire notre robot pour arriver enfin à obtenir une conception claire
et nette de notre robot puis on passe vers le parking intelligent.
Ensuite, ayant déterminé les critères à satisfaire pour assurer un bon choix de matériaux et
composants utilisés pour sa confection, on va présenter les différents outils technologiques en
précisant leurs rôles puis leurs modes de fonctionnement.
7
CHAPITRE 1 :
Analyse fonctionnelle
7
Introduction :
Le robot éviteur d’obstacle, dans n’importe quel domaine où il est utilisé, doit nécessairement être
accompagné d’une fiche technique qui décrira la totalité de ses fonctions et qui reflètera une image
sur la qualité et la prestation de ses services. Cela dit, une analyse fonctionnelle devait être mise en
place pour exprimer le besoin de la construction du robot, définir les liens entre ses composants et
rappeler les principales fonctions qu’il doit satisfaire. Les outils utilisés pour cette analyse
8
Description du système
Notre robot éviteur d’obstacles utilise un capteur qui mesure la distance qui le sépare avec les déférents
objets qui l’entoure. L’information est traitée par un microcontrôleur. Le robot avance et lorsqu’il
rencontre un obstacle frontal, il s’arrête quelques instants, et il fait tourner le capteur respectivement vers
la droite puis vers la gauche puis se tourne vers la direction la plus sûr et il continue en mouvement
rectiligne.
Analyse fonctionnelle
1.1 Graphe des interacteurs
— FP : Fonctions Principales. FC :
— Fonctions Complémentaires ou Contraintes.
9
Fonction Description
FC1 Utiliser une source d’énergie pour alimenter les composants de robot
10
1.3Diagramme FAST du robot
11
1.4 Grafcet fonctionnel du robot
En s’appuyant sur les informations fournies charge ci-dessus, On a réalisé le grafcet de niveau 1
suivant :
On définit les actionneurs suivants :
Donc :
12
Conception du robot
Avec 4 roues motrices jumelées 2 à 2 (côté gauche ensemble et droite ensemble), 2 moteurs de
propulsions (vitesse différentielles), 2 moteurs de direction un pour les roues avant et un pour les
roues arrière. Le centre de masse se trouve le plus près possible du centre du robot.
13
Choix de robot
Après la comparaison des différentes configurations possible on choisit le modèle Robot a 4 roues en se basant
sur ces caractéristiques :
Les robots à 4 roues offrent plusieurs avantages en matière de mobilité et de conception.
Voici quelques-uns d'entre eux :
Stabilité et équilibre : Les robots à 4 roues sont généralement plus stables que ceux à
pattes ou à chenilles. Ils peuvent se déplacer sans basculer facilement, ce qui est essentiel
pour de nombreuses applications.
Simplicité de conception : La configuration à 4 roues est relativement simple à concevoir et
à construire. Elle ne nécessite pas autant de mécanismes complexes que les robots à pattes.
Direction précise : Les roues permettent un contrôle précis de la direction. Les robots à 4
roues peuvent avancer, reculer et tourner avec une grande précision.
Vitesse et efficacité : Les roues offrent une bonne vitesse de déplacement, ce qui est
important pour les tâches qui nécessitent une couverture rapide d'une zone.
Adaptabilité : Les robots à 4 roues peuvent fonctionner sur divers types de surfaces, qu'il
s'agisse de sols lisses, de terrains accidentés ou de surfaces inégales.
Capacité de charge : Ils peuvent transporter des charges plus importantes que certains autres
types de robots, ce qui les rend utiles pour le transport de matériel ou d'équipements.
En résumé, les robots à 4 roues sont polyvalents, stables et relativement simples à concevoir,
ce qui en fait un choix populaire pour de nombreuses applications.
14
2.2 Cahier de charge
En se basant sur l’étude effectuée ci-dessus, on peut assumer que pour un bon
fonctionnement du robot, ce dernier doit satisfaire les critères suivants :
• Il doit assurer un mouvement de translation et de rotation.
• Il doit se déplacer aisément avant et après la détection d’un obstacle.
• Il doit être très léger, facile à prendre et à manipuler, contrôlable et rigide.
• Son montage et démontage doit se faire d’une manière simple et rapide.
Figure 6 - robot
Notre robot éviteur d’obstacles est composée de 4 moteurs de propulsion et de direction couplés
à 4 roues motrices . Les roues motrices sont disposées à l’arrière et en avant En résumé, les
robots à 4 roues sont polyvalents, stables et relativement simples à concevoir, ce qui en fait un
choix populaire pour nombreuses applications, Le centre de masse se retrouve le plus près
possible de l’axe des roues
motrices pour faciliter les différents mouvements. La base du robot tient généralement
tous les composants qui font fonctionner le robot. Par exemple, la base comporte des roues
motrices.
15
Conclusion.
En plus de la fonction principale de ce robot qui est bien évidemment l’évitement d’obstacles, les
différentes études qu’on a menées nous ont aidés à conclure que ce qui fera différence entre un
robot et un autre est le temps que mettra chacun d’eux face à un obstacle. Dans cette première
partie, une large discussion s’est entretenue entre nous à propos de nombres de roues motrices
qu’on peut utiliser, leurs emplacements et aussi même le châssis qui devait les raccompagnés. En
effet, il devait être choisi de telles sortes de ne pas ralentir le robot lors de son déplacement sans
oublier de tenir compte à sa rigidité et sa ténacité.
Jusqu’à maintenant, on est tous convaincus que les choix que nous avons effectués sont les plus
convenables en mesure de rapidité et de maintenance. Arrivés à ce stade, il ne nous reste que
d’espérer que le choix des matériaux soit aussi décisif qu’on pourra de plus agir sur le temps de
réponse de notre robot .
16
Chapitre 2
Études de conception d’un parking
17
Introduction.
Dans le cadre de notre projet de fin d’études, nous avons entrepris la conception d’un parking en
bois. Notre objectif était de créer un espace de stationnement fonctionnel et esthétique, adapté aux
dimensions spécifiques de 170 cm x 160 cm. Voici comment nous avons abordé ce projet.
Conception et Dimensions
1.1 Choix du Matériaux :
o Nous avons opté pour le bois en raison de ses propriétés naturelles, de sa durabilité et
de son aspect chaleureux.
o Le bois est également plus léger que d’autres matériaux, ce qui facilite la manipulation et l’assemblage.
1.2 Dimensions :
18
1.3 Disposition des Places de Stationnement :
o Nous avons utilisé des marquages au sol pour délimiter la place de stationnement.
o Des lignes blanches ont été t racées pour guider les conducteurs lorsqu’ils se garent.
19
Assemblage et Finition
1.1 Construction :
1.2 Finition :
o Nous avons poncé les surfaces pour éliminer les échardes et obtenir une surface lisse.
o Une couche de vernis protecteur a été appliquée pour protéger le
bois des intempéries.
Communication et Interaction :
o Le robot enverra des informations sur les places libres au système central du parking.
o Le système central pourra également envoyer des instructions au robot
pour l’aider à trouver une place libre
20
Chapitre 3 :
21
Introduction
Le choix des matériaux est une tâche fondamentale et très complexe, et pour cela
nous avons parlé dans ce chapitre à propos des matériaux utilisés dans la voiture
électrique.
Architecture matérielle
Vue globale:
J’avais un robot électrique, semblable à une voiture, qui est capable de se rendre dans
un parking intelligent. Chacun de ces éléments est équipé de composants de fabrication
spécifiques
21
Matériaux et composants de robot :
Les Moteur :
Un moteur 4.5V est un type de moteur électrique qui fonctionne avec une tension nominale de
4,5volts, Le chiffre 200 rpm indique la vitesse de rotation du moteur, mesurée en tours par minute.
Dans ce cas, le moteur tourne à 200 tours par minute, ce qui peut être ajusté en fonction des besoins
spécifiques de l’application.
Figure 9 - Moteur
DC
21
Capteurs ultra-son :
Le capteur ultrason est un composant essentiel utilisé dans de nombreux projets de robotique
pour la détection d'obstacles et la mesure de distances. Il utilise des ondes sonores à haute fréquence
pour déterminer la distance entre lui-même et un objet en mesurant le temps qu'il faut aux ondes
sonores pour être réfléchies et revenir au capteur. Ce capteur est largement utilisé pour la navigation
autonome des robots, la création de systèmes d'évitement d'obstacles, et bien d'autres applications
nécessitant une mesure précise de la distance. Son utilisation est répandue en raison de sa fiabilité, de
sa facilité d'utilisation et de son faible coût
Dans notre projet, nous avons utilisé le capteur ultrason pour permettre à notre robot de détecter les
obstacles environnants et d'ajuster son mouvement en conséquence. Le capteur ultrason émet des
ondes sonores à haute fréquence et mesure le temps nécessaire à leur retour après avoir été réfléchies
par un objet. Cette information nous permet de calculer la distance entre le 40 robot et l'obstacle le
plus proche. En intégrant cette fonctionnalité, notre robot .
Bien sûr, voici une version plus détaillée : Grâce à ses capteurs sophistiqués, le système est capable de
détecter les barrières présentes dans le parking. Cette fonctionnalité permet au robot de réagir de
manière autonome et sécurisée en s'arrêtant automatique- ment dès qu'il détecte la présence d'une
barrière, contribuant ainsi à prévenir les collisions et assurant un fonctionnement efficace et sécurisé
dans l'environnement du parking.
La carte de puissance L298N est un module électronique utilisé pour contrôler les moteurs
à courant continu dans divers appareils, tels que les robots, les voitures télécommandées et les
imprimantes 3D. Il dispose de deux ponts-H intégrés, ce qui permet de contrôler 4 moteurs
indépendamment. La vitesse des moteurs peut être ajustée grâce à des signaux de commande
PWM. La carte offre également une protection contre la surchauffe et les surintensités pour éviter
les dommages. Elle est compatible avec une gamme de tensions d'alimentation et peut être
utilisée avec des circuits logiques TTL et CMOS. En bref, la carte de puissance L298N est un
composant polyvalent pour le contrôle précis des moteurs à courant continu.
25
Brochage du pilote de moteur L298N
Le pilote de moteur a un bornier à deux bornes de chaque côté pour chaque moteur et car on a 4
moteur on a fait les 2 moteurs droite on série et les 2 moteurs a gauche en série . OUT1 et OUT2 à
gauche et OUT3 et OUT4 à droite.
OUT1, OUT2 : moteur à courant continu A OUT3, OUT4 : Moteur à courant continu B
En bas, vous avez un bornier à trois bornes avec +12V, Terre, et +5V. Le +12V le bornier sert à
alimenter les moteurs. Le +5V terminal est utilisé pour alimenter la puce L298N
Cependant, si le cavalier (jumper) est en place, la puce est alimentée à l'aide de l'alimentation du
moteur et vous n'avez pas besoin de fournir 5V via le +5V Terminal.
Remarque : si vous fournissez plus de 12V, vous devez retirer le cavalier et fournir 5V à la borne
+5V
26
MG90S – Micro servomoteur
MG90S est un micro servomoteur à engrenage métallique. Ce servo petit et léger est doté d’une
puissance de sortie élevée, ce qui le rend idéal pour les avions RC, les quadricoptères ou les bras
robotiques.
Figure 13 – MG90S
27
1.2 Caractéristiques du TowerPro MG-90S
Tension de fonctionnement : 4,8 V à 6 V (généralement 5 V)
Couple de décrochage : 1,8 kg/cm (4,8 V)
Couple de décrochage maximal : 2,2 kg/cm (6 V)
La vitesse de fonctionnement est de 0,1 s/60° (4,8 V)
Type d’engrenage : Métal
Rotation : 0°-180°
Poids du moteur : 13,4 g
L’ensemble comprend des cornes d’engrenage et des vis
28
La carte ESP 32 :
La carte ESP32 est conçue pour offrir une plateforme de développement complète et conviviale
pour une variété d'applications, allant des projets amateurs aux produits commerciaux. Voici
quelques points clés à prendre en compte lors de l'introduction à cette carte :
29
1.1 Avantages :
Conception robuste
L'ESP32 est capable de fonctionner de manière fiable dans des environnements industriels, avec une
température de fonctionnement allant de -40°C à +125°C. Alimenté par des circuits d'étalonnage
l'ESP32 peut éliminer dynamiquement les imperfections du circuit externe et s'adapter aux
changements des conditions externes.
Consommation d'énergie ultra-faible
Conçu pour les appareils mobiles, l'électronique portable et les applications IoT, l'ESP32 atteint
une consommation d'énergie ultra-faible grâce à une combinaison de plusieurs types de logiciels
propriétaires. L'ESP32 comprend également des fonctionnalités de pointe, telles que le
déclenchement d'horloge à grain fin, divers modes d'alimentation et la mise à l'échelle dynamique
de la puissance.
1.3 Caractéristiques :
L'ESP32 est double noyaux (dual core), cela signifie qu'il dispose de 2
processeurs. Il intègre le Wi-Fi et le Bluetooth.
Il exécute des programmes 32 bits.
La fréquence d'horloge peut aller jusqu'à 240 MHz et il dispose d'une RAM de 512 Ko.
Cette carte particulière a 30 ou 36 broches, 15 dans chaque rangée.
Il dispose également d'une grande variété de périphériques disponibles, tels que : tactile capacitif,
ADC, DAC, UART, SPI, I2C et bien plus encore.
Il est livré avec un capteur à effet hall intégré et un capteur de température intégré
30
1.4 Spécifications - ESP32 :
Avec l'ESP32, nous pouvons configurer les broches utilisées comme UART, I2C ou SPI par
programmation. Cela est possible grâce à la fonction de multiplexage de la puce ESP32 qui permet
d'attribuer plusieurs fonctions à la même broche comme indiqué dans la figure ci-dessous
(l'emplacement des broches peut changer selon le fabricant).
31
Figure 15 – Brochage ESP32
32
- La batterie 18650 :
Les batteries rechargeables 3,7V offrent une capacité énergétique de 18650 mWh, ce qui les
rend idéales pour alimenter une variété d'appareils électroniques. Avec leur tension 37 nominale
de 3,7 volts, ces batteries fournissent une puissance stable et fiable pour une utilisation
prolongée. Grâce à leur conception rechargeable, elles peuvent être rechargées et réutilisées à
plusieurs reprises, ce qui les rend économiques et écologiques. Leur capacité élevée de 18650
mWh leur permet de maintenir une autonomie prolongée, ce qui en fait un choix idéal pour
notre véhicule.
Figure 16 - La batterie.
Dans le contexte de notre robot, les batteries rechargeables 3,7V sont comme
source d'alimentation principale. Leur tension nominale de 3,7 volts les rend
compatibles avec nos composants, y compris la carte ESP32 et les capteurs utilisés
dans ce robot. Avec leur capacité élevée de 18650 mWh, ces batteries offrent une
autonomie prolongée, ce qui est crucial pour assurer le fonctionnement continu du
robot
33
Les composants de parking :
Le cadre de parking :
Dans cette partie , nous allons détailler le cadre physique de ce parking, qui est essentiel pour
comprendre son fonctionnement.
Le parking autonome est divisé en trois sections égales, chaque section ayant une largeur de 30
cm. La largeur totale du parking est de 1,60 mètres (160 cm)ainsi que sa longueur est de 1,70
mètres. Cette division en trois parties permet une optimisation de l'espace et facilite la gestion du
flux de véhicules.
La première entrée du parking a une largeur de 30 cm, ce qui est suffisant pour permettre à un
véhicule de taille standard de s'engager en toute sécurité dans le parking. Cette entrée est conçue
pour faciliter l'accès des véhicules au système autonome de stationnement.
En résumé, le cadre de ce parking autonome robotisé est caractérisé par sa division en trois
parties égales, chaque partie ayant une largeur de 30 cm, et par une entrée initiale de 30 cm de
large.
Ce parking est aussi entouré par un entourage jaune qui mesure 7cm de sa largeur .
Ces dimensions ont été soigneusement conçues pour assurer un fonctionnement efficace et sécurisé
du système de stationnement autonome.
34
Capteur Infrarouge :
Le capteur d’évitement d’obstacles à capteur infrarouge IR est une solution peu coûteuse pour la
détection d’évitement pour la robotique, la voiture intelligente et d’autres utilisations
électroniques. Dans certains cas, ce capteur est utilisé en paire, avec un capteur placé avant et un
autre placé après une barrière ou un obstacle. Lorsque le robot ou la voiture approche de la
barrière, le premier capteur détecte sa présence et déclenche l'ouverture de la barrière. Une fois
que le véhicule a franchi la barrière, le second capteur détecte sa présence et déclenche l'arrêt du
véhicule, assurant ainsi un contrôle précis du mouvement et de la sécurité dans les applications
de stationnement ou de déplacement automatisé.
35
1.1 Principe de fonctionnement :
Lorsque la surface est absorbante (par exemple de couleur noire), le signal IR n'est pas
réfléchi et l'objet ne peut pas être détecté par le capteur. Ce résultat se produirait même si l'objet
est absent.
36
Poids: 5g
37
Capteur HW-511 :
Le capteur HW-511 est spécifiquement conçu pour diverses applications, en particulier dans les
domaines de la surveillance et de l'automatisation. Il appartient à la catégorie des capteurs de
proximité ou de distance et est principalement utilisé pour détecter la présence ou l'absence
d'objets à des distances courtes.
Outre sa capacité à mesurer la distance, le capteur HW-511 est également utilisé pour détecter la
disponibilité des places de stationnement dans les parkings. En analysant les zones où le faisceau
infrarouge est intercepté, il peut déterminer si une place est occupée ou libre, facilitant ainsi la
gestion du stationnement et l'orientation des conducteurs vers les places disponibles.
38
Chapitre 4 :
Réalisation
39
Introduction :
▪ Facilité d'utilisation : L'IDE Arduino offre une interface utilisateur intuitive, adaptée aux
débutants comme aux utilisateurs expérimentés. Cela facilite la prise en main et l'apprentissage
pour les étudiants qui travaillent sur leur projet de fin d'études.
▪ Large compatibilité matérielle : Avec la prise en charge de nombreuses cartes Arduino et
▪ l'IDE Arduino offre aux étudiants une flexibilité pour choisir le matériel le mieux adapté à
leurs besoins de projet.
▪ Bibliothèques et exemples intégrés : Parmi ces bibliothèques , on trouve :
<esp_now.h> <Wifi. H> <ESP32Servo.h>
40
L'IDE Arduino est livrée avec une collection de bibliothèques et d'exemples prédéfinis
qui couvrent un large éventail de fonctionnalités. Cela permet aux étudiants de gagner du
temps en utilisant des codes préexistants et en les adaptant à leurs besoins spécifiques.
Débogage simplifié : L'IDE Arduino offre des outils de débogage intégrés, tels que la
console série, qui permettent aux étudiants de surveiller les données en temps réel et de
diagnostiquer les problèmes éventuels dans leur code.
41
Le logiciel Arduino :
Correspondance :
Le cadre numéro 4 : ce sont les options de configuration du logiciel
Le cadre numéro 3 : il contient les boutons qui vont nous servir lorsque l’on va programmer
nos cartes
Le cadre numéro 2 : ce bloc va contenir le programme que nous allons créer
Le cadre numéro 1 : est important, car il va nous aider à corriger les fautes dans notre
programme. C’est le débogueur.
42
Figure 23 :interface 2 Arduino
Correspondance :
43
Definition du ESP Now
ESP32 NOW est un protocole de communication sans fil propriétaire développé par Espressif
System, conçu spécifiquement pour les microcontrôleurs de la famille ESP32. Il permet la
communication directe entre les modules ESP32 sans passer par un routeur Wifi ou une
connexion Bluetooth.
Contrairement au Wifi classique, ESP32 NOW fonctionne en utilisant une topologie de réseau
en étoile simple, où un nœud maître communique avec plusieurs nœuds esclaves. Cela le rend
particulièrement adapté aux applications où plusieurs dispositifs ESP32 doivent échanger des
données de manière simple et efficace, comme dans les systèmes domotiques , les capteurs
distribués ou les réseaux de capteurs IoT.
Les avantages clés d'ESP32 NOW incluent une latence réduite, une consommation d'énergie
plus faible par rapport aux connexions WiFi traditionnelles et une configuration simplifiée.
Cependant, comme il s'agit d'un protocole propriétaire, son utilisation limite l'interopérabilité
avec d'autres dispositifs et technologies de communication.
44
Le code ESP32 utilisé:
Nous avons utilisé ce code ESP32Now pour établir une connexion entre les deux cartes ESP32.
Plus précisément, la carte ESP32 du robot a été configurée en tant que “Slave”, tandis que celle
du parking a été désignée comme “Master” Ce choix de configuration a permis une
communication efficace et bidirectionnelle entre les deux dispositifs.
Nous allons diviser le code en deux parties distinctes : l'une dédiée à la carte ESP32 maître, que
nous nommerons ESP code Master, et l'autre dédiée à la carte ESP32 Slave. Cette segmentation
nous permettra de mieux organiser notre développement et de nous concentrer sur les
fonctionnalités spécifiques de chaque carte.
45
ESP32Master
Organigramme du nœud maître (Parking) :
Oui
Parking plein ?
Oui
46
CODE ESP32 master :
Lorsque le robot a pénétré dans la zone de stationnement, un autre capteur infrarouge, positionné
stratégiquement, repère sa présence et signale à la carte ESP32 Master de refermer la barrière,
assurant ainsi la sécurité et la confidentialité de la zone.
Mais le rôle de la carte ESP32 Master ne s'arrête pas là. Elle établit également une connexion
avec la carte ESP32 esclave pour échanger des informations cruciales sur la disponibilité des
emplacements de stationnement. Cette connexion permet de déterminer précisément quelles
places sont libres parmi les trois capteurs de stationnement.
En cas de saturation, où les trois positions sont occupées, la barrière reste fermée, empêchant tout
autre véhicule d'entrer. Cette stratégie garantit un contrôle efficace de l'accès au stationnement,
optimisant ainsi son utilisation et minimisant les risques de congestion.
47
/**
Purpose: ESPNow Communication between a Master ESP32 and multiple ESP32 Slaves
Description: This sketch consists of the code for the Master module.
Resources: (A bit outdated)
a. https://espressif.com/sites/default/files/documentation/esp- now_user_guide_en.pdf
b. http://www.esploradores.com/practica-6-conexion-esp-now/
Flow: Master
Step 2 : Start scanning for Slave ESP32 (we have added a prefix of `slave` to the SSID of
slave for an easy setup)
Step 3 : Once found, add Slave as peer Step 4 :
Register for send callback
Flow: Slave
Step 2 : Update the SSID of Slave with a prefix of `slave` Step 3 : Set
Slave in AP mode
Step 4 : Register for receive callback and wait for data Step 5 : Once
data arrives, print it in the serial monitor
48
Note: Master and Slave have been defined to easily understand the setup. Based on
the ESPNOW API, there is no concept of Master and Slave. Any devices can
act
*/
#include <esp_now.h>
#include <WiFi.h> #include
<ESP32Servo.h>
49
// Global copy of slave
#define NUMSLAVES 20
esp_now_peer_info_t slaves[NUMSLAVES] = {}; int
SlaveCnt = 0;
#define CHANNEL 1
#define PRINTSCANRESULTS 0
} struct_message;
// Create a structured
object struct_message
myData;
if (esp_now_init() == ESP_OK) {
Serial.println("ESPNow Init
Success");
}
else {
4
// or Simply Restart
ESP.restart();
}
//reset slaves
memset(slaves, 0, sizeof(slaves));
SlaveCnt = 0;
Serial.println("");
if (scanResults == 0) {
} else {
if (PRINTSCANRESULTS) {
delay(10);
41
// SSID of interest
if (SlaveCnt > 0) {
} else {
// clean up ram
WiFi.scanDelete();
}
42
// Check if the slave is already paired with the master.
4
3
} else {
Serial.println("Not sure what happened");
}
delay(100);
} else {
//uint8_t data = 0;
// send data
void sendData() {
//data++;
44
Serial.print("Sending: ");
Serial.println(myData.Etat);
}
delay(100);
}
45
Serial.print("Last Packet Sent to: "); Serial.println(macStr); Serial.print("Last Packet Send
Status: "); Serial.println(status ==
ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}
void loop() {
myData.Etat = 1;
}
else
{
myData.Etat = 0;
}
ScanForSlave();
sendData();
} else {
4
7
if ((P_Entree == 0) && (P_Presence == 1) && (myData.Etat==0) )
{
else if (P_Presence == 0)
{
//delay(500);
}
4
ESP32 Slave :
49
CODE ESP32 SLAVE:
Dans le code ESP32 SLAVE, nous avons intégré un programme dédié au contrôle des
mouvements des roues du robot. À l'intérieur de l'unité robotique, un capteur à ultrasons est
déployé pour détecter les obstacles, notamment la barrière. Dès qu'un obstacle est détecté, le
robot interrompt ses déplacements de manière automatique.
Une fois que la barrière est opérationnelle et ouverte, le robot reprend son avancée pour atteindre
la zone de stationnement. Lorsqu'il se trouve à proximité de la barrière ouverte, le robot initie une
connexion avec les cartes esclaves et la carte ESP32 Master.
La carte maître informe ensuite le robot de l'emplacement disponible où il peut se stationner.
Cette interaction permet une gestion efficace de l'espace de stationnement en guidant le robot
vers une place libre, tout en réduisant les risques de congestion et en optimisant l'utilisation des
emplacements disponibles.
50
#include <esp_now.h>
#include <WiFi.h>
#define CHANNEL 1
// Create a structured
object struct_message
myData;
// Motor A
51
// Setting PWM properties const
int freq = 30000; const int
pwmChannel1 = 0;
//const int pwmChannel2 = 1;
const int resolution = 8; int
dutyCycle;
int Ultrasonic_Ranging() {
digitalWrite(trigPin,
LOW);
delayMicroseconds(2);
digitalWrite(trigPin,
HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,
LOW);
int distance = pulseIn(echoPin, HIGH); // reading the duration of high level
else {
// InitESPNow();
// or Simply
Restart
ESP.restart();
}
52
}
// config AP SSID
void configDeviceAP() {
String Prefix = "Slave:";
String Mac = WiFi.macAddress();
String SSID = Prefix + Mac; String
Password = "123456789";
bool result = WiFi.softAP(SSID.c_str(), Password.c_str(), CHANNEL, 0); if (!
result) { Serial.println("AP Config failed.");
} else {
char macStr[18];
5
3
Serial.println(myData.a[3]);
Serial.print("Etat_Parking: ");
Serial.println(myData.Etat);
Serial.println();
Serial.println("");
}
void setup() {
pinMode(motor2Pin1,
OUTPUT);
pinMode(motor2Pin2,
OUTPUT);
//pinMode(enable2Pin, OUTPUT);
myData.Com = 0;
Serial.begin(115200);
// testing
Serial.print("Testing DC Motor...");
WiFi.mode(WIFI_AP);
54
// configure device AP mode configDeviceAP();
// This is the mac address of the Slave in AP Mode Serial.print("AP MAC: ");
Serial.println(WiFi.softAPmacAddress());
Stop(); dutyCycle =
210;
ledcWrite(pwmChannel1, dutyCycle);
}
void loop()
{
Serial.print("distance=");
Serial.println(distance);
5
//dutyCycle = 150;
//ledcWrite(pwmChannel1, dutyCycle);
//ledcWrite(pwmChannel2, dutyCycle);
esp_now_register_recv_cb(OnDataRecv);
}
Serial.print("myData.Com =");
Serial.print(myData.Com);
delay(1000);
if ((myData.a[0] == 1) && (myData.Com == 1))
{
moveP1();
m == 0;
myData.Com = 0;
Serial.println("Position 1");
}
moveP2();
m == 0;
myData.Com = 0;
Serial.println("Position 2");
}
5
6
{
moveP3();
m == 0;
myData.Com = 0;
Serial.println("Position 3");
}
else if (m==0)
{
Avant_N(); delay(100);
}
digitalWrite(motor1Pin1, motor1State);
digitalWrite(motor1Pin2, !motor1State);
digitalWrite(motor2Pin1, motor1State);
digitalWrite(motor2Pin2, !motor1State);
delay(duration);
Stop();
}
5
7
}
void Stop()
{
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}
void Avant_N()
{
digitalWrite(motor1Pin1,
HIGH);
digitalWrite(motor1Pin2,
LOW);
digitalWrite(motor2Pin1,
HIGH);
digitalWrite(motor2Pin2,
LOW);
}
void moveP1()
{
Avant(1500); delay(12000);
Avant(2400);
}
void moveP2()
{
Avant(1300);
delay(9000);
Right(1700); delay(300);
Avant(1000); delay(300);
Left(1400);
delay(300); Avant(2100);
}
void moveP3()
{
Avant(1300);
delay(9000);
Right(1700); delay(300);
Avant(1800); delay(300);
Left(1400);
delay(300); Avant(2100
5
En conclusion, ce chapitre a présenté la mise en œuvre réussie de notre projet grâce à l'utilisation des
cartes ESP32 Master et esclave, ainsi que du protocole ESP-NOW. Nous avons démontré comment
ces composants ont permis une coordination efficace de l'ouverture de la barrière en fonction de la
de l'accès au stationnement. En envisageant des pistes d'amélioration futures, nous sommes prêts à
poursuivre le développement de notre solution pour répondre aux besoins évolutifs de notre projet.
Conclusion
Le robot éviteur d'obstacles, par exemple, peut naviguer de manière autonome dans un
environnement, évitant les obstacles sur son chemin. Cela a des applications potentielles dans
D'autre part, le parking intelligent utilise des capteurs de présence et une carte ESP32 pour
réduisant le temps passé à chercher une place de parking, et peut également contribuer à
Ces deux projets démontrent le potentiel de l'intelligence artificielle et de l'Internet des objets
à développer ces technologies, nous pouvons espérer réaliser des avancées significatives qui
https://esp32io.com/tutorials/esp32-servo-motor
http://tpe-robotique-exosquelette.e-monsite.com https://www.arduino.cc
https://fr.wikipedia.org/wiki/Portail:Informatique
http://tpe-robotiqueexosquelette.emonsite.com www.mon-club-elec.fr
https://diyi0t.com/tcrt5000-line-tracking-module-arduino-
esp8266-esp32/
https://dronebotworkshop.com/esp-now/