{"id":9630,"date":"2024-12-17T16:31:08","date_gmt":"2024-12-17T15:31:08","guid":{"rendered":"https:\/\/telefab.fr\/?p=9630"},"modified":"2026-04-30T17:33:30","modified_gmt":"2026-04-30T15:33:30","slug":"stopcar-solution-technique","status":"publish","type":"post","link":"https:\/\/hub.imt-atlantique.fr\/fablab\/stopcar-solution-technique\/","title":{"rendered":"STOPCAR &#8211; Solution technique"},"content":{"rendered":"<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\">Solution technique : STOPCAR<\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><a style=\"color: #000000;\" href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/10\/stopcar_logo_png.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-9581\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/10\/stopcar_logo_png-300x300.png\" alt=\"\" width=\"300\" height=\"300\" \/><\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\">par \u00a0 \u00a0 Antoine VIOLLEAU\u00a0 \u00a0 \u00a0 \u00a0 Eliot WALTER\u00a0 \u00a0 \u00a0 Nantenin Sibid\u00e9\u00a0 \u00a0 \u00a0Kliser Javier REYES\u00a0 \u00a0 \u00a0Amaury Bernardin<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-family: georgia, palatino, serif;\"><strong><span style=\"color: #000000; font-size: 18pt;\">1. Mise en contexte du projet<\/span><\/strong><\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><span style=\"font-weight: 400;\">Dans le cadre du projet fil rouge de la TAF, <\/span><i><span style=\"font-weight: 400;\">Conception d\u2019objets utiles, accessibles et durables<\/span><\/i><span style=\"font-weight: 400;\"> de l\u2019\u00e9cole d\u2019ing\u00e9nieur IMT Atlantique, nous avons travaill\u00e9 sur un projet ayant pour but de mettre en relation un conducteur et un passager empruntant le m\u00eame chemin afin de r\u00e9duire le nombre de voitures vides et pour instaurer un climat de confiance.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">La probl\u00e9matique des transports est au c\u0153ur de notre soci\u00e9t\u00e9 actuelle, en centre urbain les mobilit\u00e9s douces et transports en commun sont naturellement pl\u00e9biscit\u00e9s. Mais en bordure des p\u00e9riph\u00e9ries, quelles solutions existent ?\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Lors de nos observations sur le terrain \u00e0 des points strat\u00e9giques nous avons remarqu\u00e9 que la plupart des voitures circulent vides. Seul le conducteur est \u00e0 bord d\u2019une voiture, qui peut accueillir au moins 3 personnes de plus. C\u2019est ce chiffre : 75% de l&rsquo;\u00e9nergie utilis\u00e9 par nos voitures sert \u00e0 transporter des si\u00e8ges vides, du gouvernement (observatoire.covoiturage.gouv.fr) qui nous a motiv\u00e9 \u00e0 concevoir une solution.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><span style=\"font-weight: 400;\">Apr\u00e8s la phase d\u2019enqu\u00eate terrains, nous avons relev\u00e9 deux enjeux majeurs pour une solution : facilit\u00e9 d\u2019utilisation et flexibilit\u00e9. <\/span><span style=\"font-weight: 400;\">Lors d\u2019un trajet quotidien, le retard n\u2019est pas admissible et il n\u2019est pas envisageable d\u2019avoir \u00e0 pr\u00e9parer son trajet sur une application.\u00a0<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Notre solution doit donc r\u00e9pondre \u00e0 la probl\u00e9matique de l\u2019autosolisme tout en respectant des crit\u00e8res stricts de flexibilit\u00e9.<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-family: georgia, palatino, serif;\"><strong><span style=\"color: #000000; font-size: 18pt;\">2. Pr\u00e9sentation g\u00e9n\u00e9rale de la solution<\/span><\/strong><\/span><\/h1>\n<div class=\"flex max-w-full flex-col flex-grow\" style=\"text-align: justify;\">\n<div class=\"min-h-8 text-message flex w-full flex-col items-end gap-2 whitespace-normal break-words [.text-message+&amp;]:mt-5\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"84e7f766-0e09-47c5-87ce-cf2dd9bcb438\" data-message-model-slug=\"gpt-4o\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\">\n<div class=\"markdown prose w-full break-words dark:prose-invert dark\">\n<p><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Notre solution consiste en une application mobile et une borne de covoiturage. Cette derni\u00e8re doit \u00eatre facilement installable \u00e0 des points strat\u00e9giques : arr\u00eats de bus populaires, points d\u2019\u00e9change, parking covoiturage\u2026 Elle r\u00e9pond donc \u00e0 une probl\u00e9matique \u00e9nerg\u00e9tique stricte en \u00e9tant autonome en \u00e9nergie gr\u00e2ce \u00e0 des composants peu consommateurs (\u00e9cran e-paper, module 3G utilis\u00e9 au minimum).<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Cette borne de covoiturage permet \u00e0 des passagers de s\u2019enregistrer en temps r\u00e9el, et d\u2019avertir un conducteur dot\u00e9 de l\u2019application de sa pr\u00e9sence. Un passager peut \u00e9galement s\u2019enregistrer sur l\u2019application, mais nous comptons sur cet objet connect\u00e9 pour rendre la solution accessible au plus grand nombre (personnes en situation de fracture num\u00e9rique), mais \u00e9galement populaire en le rendant visible \u00e0 la population vis\u00e9e.\u00a0<\/span><\/p>\n<p><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><span style=\"font-weight: 400;\">L\u2019utilisation de l\u2019application reste <strong>obligatoire<\/strong> pour les conducteurs, il s\u2019agit en effet de leur seule interface pour trouver des passagers sur leurs trajets quotidiens. <\/span><span style=\"font-weight: 400;\">Lorsqu\u2019un passager s\u2019enregistre sur l\u2019application ou la borne, nous recherchons un conducteur qui passe par le point de rencontre et rejoint la m\u00eame destination. Si c\u2019est le cas, ils sont mis en relation. Le conducteur doit simplement enregistrer son trajet lors de son d\u00e9part, il s\u2019agit d\u2019une solution de covoiturage temps-r\u00e9el.\u00a0<\/span><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h1><\/h1>\n<h1 style=\"text-align: justify;\"><span style=\"font-family: georgia, palatino, serif;\"><strong><span style=\"color: #000000; font-size: 18pt;\">3. Pr\u00e9sentation g\u00e9n\u00e9rale de la solution<\/span><\/strong><\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Notre solution s\u2019appuie sur les r\u00e9seaux mobiles. Nous avons en effet choisi ce standard de communication pour nos bornes de covoiturage pour plusieurs raisons. D\u2019abord car dans un monde o\u00f9 la solution serait commercialis\u00e9e, nous devrions avoir un nombre cons\u00e9quent d\u2019appareils sur une zone g\u00e9ographique tr\u00e8s large. Le plus accessible dans ce cas-l\u00e0 est de se baser sur un protocole existant, qui ne n\u00e9cessite pas d\u2019infrastructure \u00e0 d\u00e9ployer. En faisant le choix des r\u00e9seaux mobiles, nous n\u2019avons qu\u2019\u00e0 souscrire un abonnement aupr\u00e8s d\u2019un op\u00e9rateur mobile, et le quote de donn\u00e9es n\u2019a pas besoin d\u2019\u00eatre important. Nous \u00e9changeons peu de donn\u00e9es, \u00e0 chaque passager enregistr\u00e9 qui attendra 5 minutes, 1ko de donn\u00e9es sont re\u00e7ues\/envoy\u00e9es. Avec un quota offert de 100Mo, nous pouvons donc en th\u00e9orie g\u00e9rer 1 million d\u2019utilisateurs par mois, par borne.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Ces donn\u00e9es sont communiqu\u00e9es \u00e0 l\u2019API ThingSpeak, notre site web utilise \u00e9galement cet API pour communiquer avec nos bornes connect\u00e9es. L\u2019utilisation de ThingSpeak est tr\u00e8s simple et gratuite. Mais cela a rendu simple notre prototypage, cependant dans le cadre d\u2019une r\u00e9elle solution nous aurions d\u00e9velopp\u00e9 un API REST qui remplit les m\u00eames fonctions mais un peu plus flexible sur les quantit\u00e9s de donn\u00e9es autoris\u00e9es. Nous n\u2019avons pas choisi cette derni\u00e8re solution, car cela aurait rendu le d\u00e9veloppement de la borne d\u00e9pendant de celui du site-web, dans le temps imparti pour le projet cela aurait \u00e9t\u00e9 difficilement r\u00e9alisable.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Finalement, notre site-web est d\u00e9ploy\u00e9 sur un serveur web au ReSEL, le fournisseur internet associatif de l\u2019IMT Atlantique. Le choix s\u2019est tourn\u00e9 vers eux car le service est gratuit et simple. En effet, gr\u00e2ce \u00e0 l\u2019utilisation de leur d\u00e9p\u00f4t gitlab, nous pouvons d\u00e9ployer en quelques clics notre service web. Cela a, d\u00e8s le d\u00e9but d\u00e9fini des crit\u00e8res sur l\u2019application d\u00e9velopp\u00e9e : elle doit \u00eatre \u201ccontaineris\u00e9e\u201d.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><a style=\"color: #000000;\" href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/ddb7bb17-2939-40c3-8bbd-3f02e6aee27b.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-9637\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/ddb7bb17-2939-40c3-8bbd-3f02e6aee27b-300x230.jpg\" alt=\"\" width=\"300\" height=\"230\" \/><\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Figure 3. Diagramme de l&rsquo;architecture de communication du syst\u00e8me.<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-family: georgia, palatino, serif;\"><strong><span style=\"color: #000000; font-size: 18pt;\">4. Mat\u00e9riel utilis\u00e9 et montage \u00e9lectronique<\/span><\/strong><\/span><\/h1>\n<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><strong><span style=\"font-size: 14pt;\">\u00a0 4.1 Mat\u00e9riel utilis\u00e9<\/span><\/strong><\/span><\/h1>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Arduino UNO<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Powerbank 5v<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Shield SIM900 GSM\/GPRS<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">SIM card avec du cr\u00e9dit (SMS et Internet)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Antenne<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">2 protoboard<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">5 Tactile Momentary Push Button<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Jumpers\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Boite plastique<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Module E-Ink 2,9\u00a0\u00bb 13339<\/span><\/li>\n<\/ul>\n<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><strong><span style=\"font-size: 14pt;\">\u00a0 4.2 <strong>Montage \u00e9lectronique<\/strong><\/span><\/strong><\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Dans l&rsquo;image suivante, le sch\u00e9ma de connexion entre les diff\u00e9rents composants du syst\u00e8me impl\u00e9ment\u00e9 est pr\u00e9sent\u00e9. Il comprend un module E-paper communiqu\u00e9 avec un Arduino Mega via le protocole de communication SPI. De plus, il comporte 5 boutons connect\u00e9s en configuration pull-down pour garantir deux \u00e9tats logiques \u00e0 l&rsquo;aide de boutons normalement ouverts. En outre, la carte Shield SIM900 GSM\/GPRS est connect\u00e9e \u00e0 l&rsquo;Arduino Mega par les ports de transmission et de r\u00e9ception.<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><a style=\"color: #000000;\" href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/1b42ec33-ac35-43c9-a90e-b0e7eab91123.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9633\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/1b42ec33-ac35-43c9-a90e-b0e7eab91123-198x300.jpg\" alt=\"\" width=\"239\" height=\"362\" \/><\/a><\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Figure 4.2. Sch\u00e9ma de connexion des composants du syst\u00e8me.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Ci-dessous, le fonctionnement et l&rsquo;importance de chaque connexion entre les diff\u00e9rents composants du sch\u00e9ma de connexion de la figure 4.2 sont d\u00e9crits.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Connexion entre la carte Shield SIM900 GSM\/GPRS et l&rsquo;Arduino Mega<\/b><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">La carte Shield SIM900 est connect\u00e9e \u00e0 l&rsquo;Arduino Mega via les broches TX et RX. La broche TX de la carte SIM900 est reli\u00e9e au RX1 de l&rsquo;Arduino Mega (broche 19), et la broche RX de la carte SIM900 est reli\u00e9e au TX1 de l&rsquo;Arduino Mega (broche 18). Enfin, les broches d&rsquo;alimentation VCC et GND de la carte sont connect\u00e9es aux broches VCC et GND de l&rsquo;Arduino.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Connexion entre le module E-paper et l&rsquo;Arduino Mega<\/b><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Ci-dessous, un tableau d\u00e9taille les connexions entre le module E-paper et l&rsquo;Arduino.<\/span><\/p>\n<table class=\"aligncenter\" style=\"width: 100%; border-collapse: collapse; text-align: left;\">\n<thead>\n<tr style=\"background-color: #f4f4f4;\">\n<th style=\"padding: 10px; border: 1px solid #000000; color: #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Module E-paper<\/span><\/th>\n<th style=\"padding: 10px; border: 1px solid #000000; color: #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Arduino Mega<\/span><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">DIN (Data In)<\/span><\/td>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Pin 51<\/span><\/td>\n<\/tr>\n<tr style=\"background-color: #f9f9f9;\">\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">CLK (Clock)<\/span><\/td>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Pin 52<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">CS (Chip Select)<\/span><\/td>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Pin 53<\/span><\/td>\n<\/tr>\n<tr style=\"background-color: #f9f9f9;\">\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">DC (Data\/Command)<\/span><\/td>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Pin 6<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">RST (Reset)<\/span><\/td>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Pin 7<\/span><\/td>\n<\/tr>\n<tr style=\"background-color: #f9f9f9;\">\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">BUSY<\/span><\/td>\n<td style=\"padding: 10px; border: 1px solid #000000;\"><span style=\"font-family: georgia, palatino, serif;\">Pin 8<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Explication du contr\u00f4le et du signal du module E-paper<\/b><\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">DIN (Data In) : Le pin DIN correspond \u00e0 l&rsquo;entr\u00e9e de donn\u00e9es du module E-paper. Il est connect\u00e9 au pin 51 de l&rsquo;Arduino Mega pour transmettre des donn\u00e9es de l&rsquo;Arduino vers le module. Le pin 51 de l&rsquo;Arduino est une sortie num\u00e9rique faisant partie du protocole de communication SPI.<\/span><\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">CLK (Clock) : Il s&rsquo;agit du pin d&rsquo;horloge. Il est connect\u00e9 au pin 52 de l&rsquo;Arduino Mega et est utilis\u00e9 pour synchroniser le transfert de donn\u00e9es, en envoyant des impulsions qui indiquent le moment o\u00f9 les donn\u00e9es doivent \u00eatre lues ou \u00e9crites. Le pin 52 de l&rsquo;Arduino Mega est \u00e9galement un pin num\u00e9rique faisant partie du protocole SPI.<\/span><\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">CS (Chip Select) : Il s&rsquo;agit du pin de s\u00e9lection de puce. Il est connect\u00e9 au pin 53 de l&rsquo;Arduino Mega et est utilis\u00e9 pour activer ou d\u00e9sactiver le module E-paper. Lorsque ce pin est \u00e0 l&rsquo;\u00e9tat bas, le module E-paper est actif et peut recevoir des instructions et des donn\u00e9es.<\/span><\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">DC (Data\/Command) : Il s&rsquo;agit d&rsquo;un pin num\u00e9rique utilis\u00e9 pour indiquer si les donn\u00e9es envoy\u00e9es sont des instructions de commande ou des donn\u00e9es d&rsquo;image. Le pin 6 de l&rsquo;Arduino Mega est une sortie num\u00e9rique.<\/span><\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">RST (Reset) : Il s&rsquo;agit du pin de r\u00e9initialisation. Il est connect\u00e9 au pin 7 de l&rsquo;Arduino Mega et est utilis\u00e9 pour red\u00e9marrer le module E-paper, permettant ainsi de r\u00e9initialiser ou de restaurer son fonctionnement.<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">BUSY : Il s&rsquo;agit du pin de signal de traitement. Il est connect\u00e9 au pin 8 de l&rsquo;Arduino Mega et est utilis\u00e9 pour indiquer si le module E-paper est occup\u00e9 \u00e0 traiter une op\u00e9ration. L&rsquo;Arduino peut v\u00e9rifier ce pin pour savoir si le module est pr\u00eat \u00e0 recevoir de nouvelles commandes ou donn\u00e9es<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Connexion des boutons en configuration Pull-down<\/b><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Les cinq boutons utilis\u00e9s sont configur\u00e9s selon un sch\u00e9ma de pull-down, ce qui garantit qu&rsquo;une broche maintient un \u00e9tat d\u00e9fini en tout moment. Si une broche de l&rsquo;Arduino n&rsquo;est pas connect\u00e9e \u00e0 une source de tension sp\u00e9cifique et est &lsquo;flottante&rsquo;, son \u00e9tat est ind\u00e9fini, ce qui signifie qu&rsquo;il peut changer de mani\u00e8re al\u00e9atoire en raison d&rsquo;interf\u00e9rences \u00e9lectromagn\u00e9tiques ou de bruits ambiants. Cette configuration est utilis\u00e9e pour \u00e9viter les \u00e9tats ind\u00e9finis g\u00e9n\u00e9r\u00e9s par les boutons, assurant un fonctionnement stable et fiable du circuit.<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><strong><span style=\"font-size: 14pt;\">4.3\u00a0<strong>Bo\u00eetier contenant le dispositif<\/strong><\/span><\/strong><\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Ci-dessous, la bo\u00eete qui abrite le circuit \u00e9lectronique est pr\u00e9sent\u00e9e. Elle se compose d&rsquo;une partie arri\u00e8re et d&rsquo;une partie avant. Les deux parties se superposent \u00e0 la fin, la partie droite \u00e9tant plac\u00e9e sur la partie gauche.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">La bo\u00eete a \u00e9t\u00e9 con\u00e7ue dans SolidWorks et imprim\u00e9e en plastique \u00e0 l&rsquo;aide d&rsquo;une imprimante 3D Ultimaker. Son design est bas\u00e9 sur les dimensions des composants devant \u00eatre install\u00e9s \u00e0 l&rsquo;int\u00e9rieur. De plus, elle est \u00e9quip\u00e9e d&rsquo;un trou interne facilitant l&rsquo;allumage et l&rsquo;extinction du syst\u00e8me, ainsi qu&rsquo;un orifice pour la sortie de l&rsquo;antenne, qui est connect\u00e9e \u00e0 la carte Shield SIM900 GSM\/GPRS.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><a style=\"color: #000000;\" href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/88d0f6d0-f7c4-460b-82c4-ca83185eca9b.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9632\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/88d0f6d0-f7c4-460b-82c4-ca83185eca9b-300x201.jpg\" alt=\"\" width=\"389\" height=\"261\" \/><\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Figure 4.3. Mod\u00e8le 3D de la partie avant et arri\u00e8re de la bo\u00eete en plastique.<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><strong><span style=\"font-size: 14pt;\">4.4\u00a0<strong>Description des logiciels avec lien vers le code<\/strong><\/span><\/strong><\/span><\/h1>\n<h4 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Technologies Utilis\u00e9es dans le Projet STOPCAR<\/b><\/span><\/h4>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Django<\/b><span style=\"font-weight: 400;\"> :<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Django est un framework web Python populaire, permettant de cr\u00e9er rapidement des applications robustes et s\u00e9curis\u00e9es. Dans ce projet, il sert de base pour le site web de covoiturage, avec une configuration centralis\u00e9e dans le fichier <\/span><span style=\"font-weight: 400;\">settings.py<\/span><span style=\"font-weight: 400;\">. Django est \u00e9galement optimis\u00e9 pour les appareils mobiles, facilitant l&rsquo;adaptation du site \u00e0 diff\u00e9rents formats d&rsquo;\u00e9cran.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Docker &amp; Docker Compose<\/b><span style=\"font-weight: 400;\"> :<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Docker permet de cr\u00e9er des environnements isol\u00e9s pour les applications, garantissant leur portabilit\u00e9 et simplifient les d\u00e9ploiements. Docker Compose est utilis\u00e9 pour g\u00e9rer plusieurs services en parall\u00e8le, comme le site web, la base de donn\u00e9es, et phpMyAdmin, dans des conteneurs distincts mais interconnect\u00e9s.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>MySQL &amp; phpMyAdmin<\/b><span style=\"font-weight: 400;\"> :<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">MySQL est utilis\u00e9 pour la gestion des donn\u00e9es (utilisateurs, trajets, etc.). Pour faciliter l&rsquo;administration de la base de donn\u00e9es, <\/span><b>phpMyAdmin<\/b><span style=\"font-weight: 400;\"> offre une interface web intuitive permettant de consulter et de modifier les donn\u00e9es en temps r\u00e9el.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Progressive Web App<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Le site-web permet l\u2019installation d\u2019une PWA. Lorsqu\u2019un utilisateur se connecte sur le site, son appareil lui propose de l\u2019installer sur son t\u00e9l\u00e9phone. Assez peu de travail est n\u00e9cessaire, et on a vraiment l\u2019impression d\u2019avoir affaire avec une application native. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Cela permet \u00e9galement l\u2019envoi de notifications push, ce que nous n\u2019avons pas eu le temps de r\u00e9aliser.\u00a0<\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Mod\u00e8le MVC dans Django<\/b><\/span><\/h4>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><span style=\"font-weight: 400;\">Django suit un mod\u00e8le similaire \u00e0 <\/span><b>MVC<\/b><span style=\"font-weight: 400;\"> (Mod\u00e8le-Vue-Contr\u00f4leur), mais avec une l\u00e9g\u00e8re variation. Le mod\u00e8le Django utilise les termes <\/span><b>Mod\u00e8le<\/b><span style=\"font-weight: 400;\">, <\/span><b>Vue<\/b><span style=\"font-weight: 400;\"> et <\/span><b>Template<\/b><span style=\"font-weight: 400;\"> pour organiser l&rsquo;architecture du projet.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>1. Mod\u00e8le (Model)<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Le mod\u00e8le est le fichier o\u00f9 l&rsquo;on d\u00e9finit les classes repr\u00e9sentant les donn\u00e9es de l&rsquo;application. Chaque classe dans ce fichier correspond g\u00e9n\u00e9ralement \u00e0 une table dans la base de donn\u00e9es, et ses attributs sont les colonnes de cette table. Par exemple, dans notre projet, le fichier <\/span><b>models.py<\/b><span style=\"font-weight: 400;\"> contient la d\u00e9finition des classes comme <\/span><span style=\"font-weight: 400;\">Trajet<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">Utilisateur<\/span><span style=\"font-weight: 400;\">, etc. qui d\u00e9crivent les objets \u00e0 stocker et manipuler dans la base de donn\u00e9es.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>2.Vue (View)<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">En Django, la <\/span><b>Vue<\/b><span style=\"font-weight: 400;\"> joue en r\u00e9alit\u00e9 le r\u00f4le du <\/span><b>Contr\u00f4leur<\/b><span style=\"font-weight: 400;\"> dans l&rsquo;architecture classique MVC. Elle se trouve dans le fichier <\/span><b>views.py<\/b><span style=\"font-weight: 400;\">. La vue re\u00e7oit les requ\u00eates de l&rsquo;utilisateur, interagit avec les mod\u00e8les pour r\u00e9cup\u00e9rer ou manipuler des donn\u00e9es, puis renvoie une r\u00e9ponse appropri\u00e9e. Cela inclut l&rsquo;appel aux API externes, l&rsquo;extraction des informations de la base de donn\u00e9es et l&rsquo;envoi des donn\u00e9es aux templates pour affichage. La vue fait donc le lien entre le mod\u00e8le (donn\u00e9es) et le template (interface utilisateur).<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>3.Template (Template)<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Le template dans Django repr\u00e9sente la <\/span><b>Vue<\/b><span style=\"font-weight: 400;\"> dans l&rsquo;architecture MVC classique. Il se trouve dans le r\u00e9pertoire <\/span><b>templates<\/b><span style=\"font-weight: 400;\"> et contient le code HTML qui d\u00e9finit la structure de l&rsquo;interface utilisateur. Les templates sont remplis avec les donn\u00e9es envoy\u00e9es par la vue, et ils affichent ces informations \u00e0 l&rsquo;utilisateur sous forme de pages web dynamiques.<\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Utilisation des API Externes<\/b><\/span><\/h4>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Notre projet int\u00e8gre plusieurs API externes pour am\u00e9liorer l&rsquo;exp\u00e9rience des utilisateurs, en facilitant la g\u00e9olocalisation, la gestion des trajets et la communication avec la borne. Voici les principales API utilis\u00e9es :<\/span><\/p>\n<ol style=\"text-align: justify;\">\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>ThingSpeak<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">ThingSpeak est une plateforme IoT qui permet de collecter, stocker et analyser des donn\u00e9es issues de capteurs et appareils connect\u00e9s. Dans ce projet, elle est utilis\u00e9e pour la communication avec la <\/span><span style=\"font-weight: 400;\">borne <\/span><b>Arduino MEGA<\/b><span style=\"font-weight: 400;\">, permettant de r\u00e9cup\u00e9rer et mettre \u00e0 jour les donn\u00e9es de trajets en temps r\u00e9el.<\/span><\/span><\/li>\n<\/ol>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>ride_list<\/b><span style=\"font-weight: 400;\"> : Cette fonction r\u00e9cup\u00e8re les donn\u00e9es des trajets depuis ThingSpeak.<\/span><\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>accept_ride<\/b><span style=\"font-weight: 400;\"> : Lorsqu&rsquo;un conducteur accepte un trajet, la borne met \u00e0 jour les informations sur ThingSpeak pour refl\u00e9ter le changement.<\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Nominatim<\/b><span style=\"font-weight: 400;\"> (via l&rsquo;API OpenStreetMap)<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Nominatim est un service de g\u00e9ocodage et de g\u00e9ocodage invers\u00e9 permettant de convertir des adresses en coordonn\u00e9es g\u00e9ographiques et inversement.<\/span><\/span><\/li>\n<li style=\"list-style-type: none;\">\n<ul style=\"list-style-type: circle;\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>create_driver_ride_request<\/b><span style=\"font-weight: 400;\"> : Utilis\u00e9 pour localiser le conducteur et le passager au moment de la cr\u00e9ation du trajet. L&rsquo;API convertit les informations de localisation en coordonn\u00e9es g\u00e9ographiques.<\/span><\/span><\/li>\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>reverse_geocode<\/b><span style=\"font-weight: 400;\"> : Permet d\u2019obtenir la localisation pr\u00e9cise d&rsquo;un point \u00e0 partir de ses coordonn\u00e9es GPS, essentiel pour d\u00e9terminer l&#8217;emplacement exact des passagers et des conducteurs<\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Google Maps API<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">L&rsquo;API Google Maps permet d\u2019acc\u00e9der \u00e0 divers services de cartographie, dont la calcul de distance et de dur\u00e9e de trajet entre deux points.<\/span><\/span><\/li>\n<li style=\"list-style-type: none;\">\n<ul style=\"list-style-type: circle;\">\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>get_trip_duration<\/b><span style=\"font-weight: 400;\"> : Cette fonction calcule la dur\u00e9e d\u2019un trajet en utilisant les informations r\u00e9cup\u00e9r\u00e9es depuis <\/span><b>ThingSpeak<\/b><span style=\"font-weight: 400;\">, en int\u00e9grant les donn\u00e9es g\u00e9ographiques et le calcul d&rsquo;itin\u00e9raires via Google Maps.<\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Lien vers le d\u00e9p\u00f4t Git<\/b><span style=\"font-weight: 400;\"> :<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Le code source complet du projet est disponible sur <a style=\"color: #000000;\" href=\"https:\/\/git.resel.fr\/aviolleau\/stopcar\">GitLab.<\/a><\/span><\/span><\/p>\n<h1 style=\"text-align: justify;\"><\/h1>\n<p>&nbsp;<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-family: georgia, palatino, serif;\"><strong><span style=\"color: #000000;\"><span style=\"font-size: 14pt;\">4.5\u00a0Justification des choix techniques ; difficult\u00e9s et solutions de contournement<\/span><\/span><\/strong><\/span><\/h4>\n<h4 style=\"text-align: justify;\"><span style=\"font-size: 12pt; color: #000000; font-family: georgia, palatino, serif;\"><b>Justification des choix techniques\u00a0<\/b><\/span><\/h4>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Pourquoi utiliser l&rsquo;Arduino Mega ?<\/b><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">La carte de d\u00e9veloppement Arduino Mega poss\u00e8de une plus grande capacit\u00e9 de stockage par rapport \u00e0 d&rsquo;autres dispositifs comme l&rsquo;Arduino Uno. De plus, elle offre un plus grand nombre de broches digitales et analogiques ainsi qu&rsquo;une plus grande facilit\u00e9 pour connecter et manipuler des cartes de r\u00e9seaux mobiles, telles que la carte Shield SIM900.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Pourquoi utiliser un module E-paper ?<\/b><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Pour ce projet, un module E-paper a \u00e9t\u00e9 s\u00e9lectionn\u00e9 en raison de sa faible consommation d&rsquo;\u00e9nergie et de son excellente lisibilit\u00e9 dans diverses conditions de luminosit\u00e9, y compris en plein soleil. Sa technologie permet de maintenir l&rsquo;image visible sans consommation d&rsquo;\u00e9nergie continue. Cette technologie est id\u00e9ale puisque le prototype d\u00e9velopp\u00e9 utilise une batterie avec un stockage d&rsquo;\u00e9nergie limit\u00e9. De plus, en affichant des informations statiques ou avec peu de mises \u00e0 jour, le module optimise davantage la consommation \u00e9nerg\u00e9tique, contribuant ainsi \u00e0 prolonger la dur\u00e9e de vie de la batterie du syst\u00e8me mis en place.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Pourquoi utiliser une carte Shield SIM900 GSM\/GPRS ?<\/b><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">La carte Shield SIM900 GSM\/GPRS permet la connectivit\u00e9 aux r\u00e9seaux mobiles pour envoyer et recevoir des donn\u00e9es, des appels ou des SMS. Cette carte permet l&rsquo;acc\u00e8s \u00e0 Internet pour la transmission de donn\u00e9es. En se connectant \u00e0 des cartes comme Arduino, elle facilite la mise en place de la communication sans fil, en particulier l\u00e0 o\u00f9 l&rsquo;infrastructure Internet est limit\u00e9e ou inexistante.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 14pt; color: #000000; font-family: georgia, palatino, serif;\"><b>Difficult\u00e9s au niveau mat\u00e9riel :<\/b><\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Probl\u00e8mes avec la premi\u00e8re version de la bo\u00eete en plastique<\/b><span style=\"font-weight: 400;\"> : La version initiale de la bo\u00eete a pr\u00e9sent\u00e9 des probl\u00e8mes de conception, ce qui a n\u00e9cessit\u00e9 du temps suppl\u00e9mentaire pour r\u00e9aliser les ajustements n\u00e9cessaires et l&rsquo;adapter correctement au projet.<\/span><\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Communication entre l&rsquo;ESP32 et le module E-paper<\/b><span style=\"font-weight: 400;\"> : Des difficult\u00e9s ont \u00e9t\u00e9 rencontr\u00e9es pour \u00e9tablir la connexion entre le microcontr\u00f4leur ESP32 et le module E-paper, en raison de la complexit\u00e9 de l&rsquo;int\u00e9gration entre les deux dispositifs et du manque de documentation disponible \u00e0 ce sujet.<\/span><\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Communication entre l&rsquo;Arduino et le module E-paper<\/b><span style=\"font-weight: 400;\"> : Au d\u00e9part, quelques probl\u00e8mes mineurs ont \u00e9t\u00e9 rencontr\u00e9s lors de la tentative d&rsquo;\u00e9tablissement d&rsquo;une communication efficace entre l&rsquo;Arduino et le module E-paper. Cependant, ces probl\u00e8mes ont \u00e9t\u00e9 r\u00e9solus.<\/span><\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Limitations de stockage sur l&rsquo;Arduino Uno<\/b><span style=\"font-weight: 400;\"> : La m\u00e9moire flash de l&rsquo;Arduino Uno s&rsquo;est r\u00e9v\u00e9l\u00e9e insuffisante pour stocker les multiples images n\u00e9cessaires au module E-paper. Ce probl\u00e8me a conduit \u00e0 la d\u00e9cision de passer \u00e0 un Arduino Mega, qui offre une plus grande capacit\u00e9 de stockage et permet de r\u00e9pondre aux besoins du projet.<\/span><\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-size: 14pt; color: #000000; font-family: georgia, palatino, serif;\"><b>Difficult\u00e9s au niveau logiciel :<\/b><\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>La compr\u00e9hension de l&rsquo;objectif r\u00e9el<\/b><span style=\"font-weight: 400;\"> : au d\u00e9but, il \u00e9tait difficile de voir o\u00f9 nous allions, mais la phase de production a \u00e9t\u00e9 plus simple, nous avions une id\u00e9e et savions plus ou moins dans quelle direction nous orienter.<\/span><\/span><\/li>\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>G\u00e9olocalisation : <\/b><span style=\"font-weight: 400;\">Il a fallu r\u00e9cup\u00e9rer les donn\u00e9es de localisation automatiquement au chargement de la page, sur t\u00e9l\u00e9phone et sur ordinateur. La mani\u00e8re de faire \u00e9tait diff\u00e9rente selon les cas d&rsquo;utilisation, il a fallu s&rsquo;adapter.<\/span><\/span><\/li>\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Int\u00e9gration du mod\u00e8le de base de donn\u00e9es depuis django: <\/b><span style=\"font-weight: 400;\">Au d\u00e9part, on ne connaissait pas bien la technologie, donc il a fallu apprendre. Sous Django, la base de donn\u00e9es est cr\u00e9\u00e9e \u00e0 partir du code, c&rsquo;est quelque chose que je ne connaissais pas, mais on a d\u00fb s&rsquo;adapter, apprendre et reconna\u00eetre.\u00a0<\/span><\/span><\/li>\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>R\u00e9cup\u00e9ration de la cl\u00e9 api Google pour conna\u00eetre la dur\u00e9e des trajets pour l\u2019algorithme de matching : <\/b><span style=\"font-weight: 400;\">Pour l&rsquo;algorithme de matching, il fallait trier par dur\u00e9e les trajets, donc on a d\u00fb utiliser une cl\u00e9 d&rsquo;API Google Maps pour demander \u00e0 Google de calculer la dur\u00e9e et nous la rendre. On a d\u00fb cr\u00e9er un compte pro Google pour cela.<\/span><\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-family: georgia, palatino, serif;\"><strong><span style=\"color: #000000; font-size: 18pt;\">5. Perspectives<\/span><\/strong><\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Dans un sc\u00e9nario avec plus de temps disponible, nous aurions aim\u00e9 int\u00e9grer les aspects suivants au projet :<\/span><\/p>\n<h4 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><strong><span style=\"font-size: 14pt;\">Au niveau mat\u00e9riel :<\/span><\/strong><\/span><\/h4>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Connexion d&rsquo;un panneau solaire :<\/b><span style=\"font-weight: 400;\"> Une id\u00e9e int\u00e9ressante \u00e0 mettre en \u0153uvre dans un futur travail est d&rsquo;impl\u00e9menter un syst\u00e8me d&rsquo;alimentation autonome pour l&rsquo;Arduino en utilisant un panneau solaire. Cette solution permettrait au dispositif de fonctionner de mani\u00e8re ind\u00e9pendante des sources d&rsquo;\u00e9nergie traditionnelles.<\/span><\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Le design inclurait un panneau solaire capable de g\u00e9n\u00e9rer suffisamment d&rsquo;\u00e9nergie pour maintenir l&rsquo;Arduino et ses composants p\u00e9riph\u00e9riques. De plus, l&rsquo;id\u00e9e serait d&rsquo;int\u00e9grer un syst\u00e8me de stockage d&rsquo;\u00e9nergie, comme des batteries rechargeables, accompagn\u00e9 d&rsquo;un r\u00e9gulateur de tension pour garantir un approvisionnement constant de 5V au dispositif, m\u00eame en conditions d&rsquo;\u00e9clairage variables.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Connexion d&rsquo;une bande LED :<\/b><span style=\"font-weight: 400;\"> Une am\u00e9lioration \u00e0 envisager pour les futures phases du projet est l&rsquo;impl\u00e9mentation d&rsquo;une bande LED, afin d&rsquo;augmenter la visibilit\u00e9 de la borne et de faciliter son identification par les utilisateurs, notamment dans des conditions de faible \u00e9clairage.\u00a0<\/span><\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Bien que cette mise en \u0153uvre n&rsquo;ait pas \u00e9t\u00e9 possible \u00e0 ce stade en raison de contraintes de temps, elle reste une solution viable pour les phases futures, am\u00e9liorant ainsi de mani\u00e8re significative l&rsquo;exp\u00e9rience utilisateur et l&rsquo;efficacit\u00e9 du syst\u00e8me.<\/span><\/p>\n<h4 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><strong><span style=\"font-size: 14pt;\">Au niveau logiciel :<\/span><\/strong><\/span><\/h4>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Uniformit\u00e9 du code<\/b><span style=\"font-weight: 400;\"> : organiser le code, car la structure actuelle n&rsquo;est pas coh\u00e9rente, c&rsquo;est-\u00e0-dire que tous les \u00e9l\u00e9ments ne sont pas \u00e9crits de la m\u00eame mani\u00e8re, et parfois des formules diff\u00e9rentes sont utilis\u00e9es. Comme travail futur, l&rsquo;id\u00e9e est de standardiser le code pour obtenir une plus grande uniformit\u00e9.<\/span><\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Am\u00e9liorer l&rsquo;exp\u00e9rience utilisateur (UX)<\/b><span style=\"font-weight: 400;\"> : la proposition consiste \u00e0 int\u00e9grer des fen\u00eatres contextuelles au lieu de se limiter \u00e0 des liens redirigeant vers d&rsquo;autres pages. De plus, il est souhait\u00e9 de rendre l&rsquo;interface utilisateur plus attrayante et visuellement agr\u00e9able.<\/span><\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Mise en place d&rsquo;un syst\u00e8me de g\u00e9olocalisation<\/b><span style=\"font-weight: 400;\"> : L&rsquo;id\u00e9e est d&rsquo;impl\u00e9menter un syst\u00e8me de g\u00e9olocalisation en temps r\u00e9el permettant au passager de voir sur la carte la position actuelle de son chauffeur.<\/span><\/span><\/li>\n<li><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><b>Notification push pour chaque \u00e9v\u00e9nement : <\/b><span style=\"font-weight: 400;\">Pour valider les trajets, on met \u00e0 jour l&rsquo;API et \u00e0 ce moment-l\u00e0, on pourrait notifier l&rsquo;utilisateur en lui envoyant une notification push sur l&rsquo;application. Nous n&rsquo;avons pas eu le temps de le faire.<\/span><\/span><\/li>\n<li><strong>Am\u00e9lioration de l&rsquo;algorithme de matching<\/strong> :<br \/>\nNous pr\u00e9voyons de travailler sur un algorithme de matching plus performant, incluant de nouvelles options pour les conducteurs, telles que :<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul style=\"text-align: justify;\">\n<li><strong>Filtrage par dur\u00e9e maximale<\/strong> : Le conducteur pourra d\u00e9finir une dur\u00e9e maximale pour son trajet, en pr\u00e9cisant s\u2019il souhaite ou non effectuer des allers-retours.<\/li>\n<li><strong>Modes de v\u00e9hiculage<\/strong> : Le conducteur pourra choisir parmi diff\u00e9rents modes de transport, optimisant ainsi la compatibilit\u00e9 avec les passagers.<\/li>\n<li><strong>Filtrage par itin\u00e9raire<\/strong> : Des am\u00e9liorations seront apport\u00e9es pour permettre au syst\u00e8me de proposer des passagers se trouvant directement sur la route du conducteur, gr\u00e2ce \u00e0 l\u2019int\u00e9gration de nouveaux algorithmes plus pr\u00e9cis et efficaces.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-size: 18pt; font-family: georgia, palatino, serif;\">6. <strong>R\u00e9sultats<\/strong><\/span><\/h1>\n<h1 style=\"text-align: justify;\"><span style=\"font-family: georgia, palatino, serif;\"><strong><span style=\"color: #000000;\"><span style=\"font-size: 14pt;\">6.1 Le dispositif<\/span><\/span><\/strong><\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Apr\u00e8s avoir assembl\u00e9 le montage \u00e9lectronique \u00e0 l&rsquo;int\u00e9rieur de la bo\u00eete en plastique, le dispositif est visible sur l&rsquo;image 6.1.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><a style=\"color: #000000;\" href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/01bc4e2d-f583-4c75-8aa2-3c724e2be9a1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9634 alignnone\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/01bc4e2d-f583-4c75-8aa2-3c724e2be9a1-225x300.jpg\" alt=\"\" width=\"240\" height=\"320\" \/><\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Figure 6.1. Dispositif assembl\u00e9 dans la bo\u00eete en plastique.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Quelques images du fonctionnement du syst\u00e8me sont pr\u00e9sent\u00e9es dans les figures 6.2 et 6.3.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><a style=\"color: #000000;\" href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/4c6b46b5-db83-4108-b52a-375bd4eb800b.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-9635 alignnone\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/4c6b46b5-db83-4108-b52a-375bd4eb800b-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" \/><\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Figure 6.2. Un passager a s\u00e9lectionn\u00e9 le trajet vers Technopole.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><a style=\"color: #000000;\" href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/9c45239d-a729-4eac-b3df-f5b2b9c3a61b.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-9636 alignnone\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/2024\/12\/9c45239d-a729-4eac-b3df-f5b2b9c3a61b-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" \/><\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Figure 6.3. Un passager souhaite annuler un trajet qu&rsquo;il avait s\u00e9lectionn\u00e9.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Sur l&rsquo;image 6.1, on voit la borne con\u00e7ue pour \u00eatre utilis\u00e9e par les utilisateurs du syst\u00e8me de transport partag\u00e9. Ce dispositif sert d&rsquo;interface de communication entre l&rsquo;utilisateur et le conducteur.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">La borne comprend trois boutons bleus permettant \u00e0 l&rsquo;utilisateur de s\u00e9lectionner diff\u00e9rents trajets en fonction de sa destination. De plus, elle dispose d&rsquo;un bouton vert pour confirmer la s\u00e9lection du trajet et d&rsquo;un bouton rouge pour l&rsquo;annuler.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">L&rsquo;appareil est \u00e9quip\u00e9 d&rsquo;une antenne reli\u00e9e \u00e0 une carte Shield SIM900 GSM\/GPRS, ce qui lui permet de se connecter au r\u00e9seau mobile. Il comprend \u00e9galement un interrupteur situ\u00e9 \u00e0 gauche de l&rsquo;antenne, facilitant l&rsquo;allumage et l&rsquo;extinction du syst\u00e8me.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Enfin, la borne est dot\u00e9e d&rsquo;un module E-paper qui affiche \u00e0 l&rsquo;utilisateur les actions effectu\u00e9es avec les boutons, offrant ainsi une exp\u00e9rience interactive et claire.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h1 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\"><strong><span style=\"font-size: 14pt;\">6.2 Conclusion et remerciement<\/span><\/strong><\/span><\/h1>\n<h3 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\">Conclusion<\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\">Pour conclure, notre projet a abouti \u00e0 la cr\u00e9ation d\u2019un objet connect\u00e9 robuste et \u00e9conome en \u00e9nergie, associ\u00e9 \u00e0 un site web interactif pour offrir une solution de covoiturage spontan\u00e9. La borne connect\u00e9e, bien qu\u2019efficace, pr\u00e9sente quelques limites de r\u00e9activit\u00e9 dues \u00e0 l\u2019\u00e9cran e-paper n\u00e9cessitant plusieurs secondes pour se rafra\u00eechir, ainsi qu\u2019\u00e0 l\u2019architecture monothread de l\u2019application, emp\u00eachant l\u2019ex\u00e9cution de plusieurs t\u00e2ches simultan\u00e9es. Avec davantage de temps, ces aspects auraient pu \u00eatre optimis\u00e9s.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\">Du c\u00f4t\u00e9 du site web, nous sommes particuli\u00e8rement satisfaits d\u2019avoir r\u00e9ussi \u00e0 le d\u00e9ployer en tant que <strong>PWA (Progressive Web App)<\/strong>, ce qui permet de l\u2019utiliser comme une application native sur Android et iOS, renfor\u00e7ant ainsi l\u2019exp\u00e9rience utilisateur.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\">Remerciements<\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: georgia, palatino, serif;\">Nous tenons \u00e0 remercier chaleureusement nos professeurs et encadrants de l\u2019IMT Atlantique pour leur accompagnement tout au long de ce projet. Leur expertise et leur soutien ont \u00e9t\u00e9 essentiels pour relever les d\u00e9fis techniques et conceptuels de cette aventure. Ce projet a \u00e9galement \u00e9t\u00e9 l\u2019occasion de travailler en \u00e9quipe et de mettre en pratique nos connaissances pour concevoir une solution durable et utile.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000000; font-family: georgia, palatino, serif;\">Vid\u00e9o d&rsquo;explication du fonctionnement de notre solution.\u00a0<\/span><\/p>\n\n<p style=\"text-align: justify;\" data-pm-slice=\"0 0 []\"><span style=\"font-family: georgia, palatino, serif;\">Partie 1 : Interaction uniquement entre l&rsquo;application web<\/span><\/p>\n<p style=\"text-align: justify;\" data-pm-slice=\"0 0 []\"><span style=\"font-family: georgia, palatino, serif;\">Partie 2 : Interaction application web et borne<\/span><\/p>\n<p style=\"text-align: justify;\" data-pm-slice=\"0 0 []\"><span style=\"font-family: georgia, palatino, serif;\">Site web d\u00e9ploy\u00e9 : <a href=\"https:\/\/stopcar.projet.resel.fr\/\">https:\/\/stopcar.projet.resel.fr\/<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Solution technique : STOPCAR par \u00a0 \u00a0 Antoine VIOLLEAU\u00a0 \u00a0 \u00a0 \u00a0 Eliot WALTER\u00a0 \u00a0 \u00a0 Nantenin Sibid\u00e9\u00a0 \u00a0 \u00a0Kliser Javier REYES\u00a0 \u00a0 \u00a0Amaury Bernardin 1. Mise en contexte du projet Dans le cadre du projet fil rouge de la TAF, Conception d\u2019objets utiles, accessibles et durables de l\u2019\u00e9cole d\u2019ing\u00e9nieur IMT Atlantique, nous avons travaill\u00e9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":9581,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[113],"tags":[],"class_list":["post-9630","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couad"],"acf":{"article_projet":[10606]},"_links":{"self":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/posts\/9630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/comments?post=9630"}],"version-history":[{"count":2,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/posts\/9630\/revisions"}],"predecessor-version":[{"id":10608,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/posts\/9630\/revisions\/10608"}],"acf:post":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/10606"}],"wp:attachment":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/media?parent=9630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/categories?post=9630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/tags?post=9630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}