{"id":8882,"date":"2024-01-15T15:09:20","date_gmt":"2024-01-15T14:09:20","guid":{"rendered":"https:\/\/telefab.fr\/?p=8882"},"modified":"2026-04-30T17:33:30","modified_gmt":"2026-04-30T15:33:30","slug":"projet-rivercleaner","status":"publish","type":"post","link":"https:\/\/hub.imt-atlantique.fr\/fablab\/projet-rivercleaner\/","title":{"rendered":"RiverCleaner &#8211; solution technique"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><span style=\"color: #333333\"><em><span style=\"font-size: 10pt\">22\/12\/2023<\/span><\/em><\/span><\/p>\n<p><strong><span style=\"color: #333333\"><em><span style=\"font-size: 10pt\">Auteurs:<\/span><\/em><\/span><\/strong><br \/>\n<strong><span style=\"color: #333333\"><em><span style=\"font-size: 10pt\">Anna Terra GOMES GUERRA, Mathieu BOURGES, Dely Catalina ARDILA MEDINA<\/span><\/em><\/span><\/strong><\/p>\n<h3><strong>TABLE DES MATI\u00c8RES<\/strong><\/h3>\n<ol style=\"list-style-type: upper-roman\">\n<li><a href=\"\/fablab\/#intro\">Introduction<\/a>\n<ol style=\"list-style-type: upper-alpha\">\n<li><a href=\"\/fablab\/#Objectif\">Objectif du projet (et les domaines\/technologies qu&rsquo;il couvre)<\/a><\/li>\n<li><a href=\"\/fablab\/#Specifications\">Sp\u00e9cifications du projet<\/a>\n<ol style=\"list-style-type: lower-alpha\">\n<li><a href=\"\/fablab\/#Diagrammeutilisation\">Diagramme de cas d\u2019utilisation<\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"\/fablab\/#Diagrammearchitecture\">Diagramme de blocs d\u2019architecture<\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"\/fablab\/#Hardware\">Hardware<\/a>\n<ol style=\"list-style-type: upper-alpha\">\n<li><a href=\"\/fablab\/#Conception3d\">Conception 3D<\/a><\/li>\n<li><a href=\"\/fablab\/#conceptiondecoupeuse\">Conception dans la d\u00e9coupeuse laser<\/a><\/li>\n<li><a href=\"\/fablab\/#Environnementtest\">Environnement de test<\/a>\n<ol style=\"list-style-type: lower-alpha\">\n<li><a href=\"\/fablab\/#Liste\">Liste mat\u00e9riel pour configuration<\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"\/fablab\/#Electronique\">\u00c9lectronique (RiverCleaner)<\/a>\n<ol style=\"list-style-type: lower-alpha\">\n<li><a href=\"\/fablab\/#ListeMateriel\">Liste du mat\u00e9riel<\/a><\/li>\n<li><a href=\"\/fablab\/#ParlonsCode\">Parlons bien, parlons code<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li><a href=\"\/fablab\/#Software\">Software<\/a>\n<ol style=\"list-style-type: upper-alpha\">\n<li><a href=\"\/fablab\/#ServeurTTN\">Serveur TTN<\/a><\/li>\n<li><a href=\"\/fablab\/#ServeurBaseDonnees\">Serveur base de donn\u00e9es<\/a><\/li>\n<li><a href=\"\/fablab\/#ServeurWEB\">Monter un serveur WEB<\/a>\n<ol style=\"list-style-type: lower-alpha\">\n<li><a href=\"\/fablab\/#Raspberry\">Setup de la raspberry<\/a><\/li>\n<li><a href=\"\/fablab\/#Apache\">Apache2<\/a><\/li>\n<li><a href=\"\/fablab\/#phpInstallation\">Installation de php<\/a><\/li>\n<li><a href=\"\/fablab\/#InstallationServeur\">Installation du serveur de base de donn\u00e9e<\/a><\/li>\n<li><a href=\"\/fablab\/#phpMyAdmin\">phpMyAdmin, notre interface pour configurer la base de donn\u00e9es<\/a><\/li>\n<li><a href=\"\/fablab\/#Miseenplace\">Mise en place des utilisateurs<\/a><\/li>\n<li><a href=\"\/fablab\/#Installation2\">Installation de la base de donn\u00e9e<\/a><\/li>\n<li><a href=\"\/fablab\/#InstallationSiteWeb\">Installation du site web<\/a><\/li>\n<li><a href=\"\/fablab\/#CreationAPI\">Cr\u00e9ation de l\u2019API MQTT de TTN<\/a><\/li>\n<li><a href=\"\/fablab\/#SetupPython\">Setup python sur la raspberry<\/a><\/li>\n<li><a href=\"\/fablab\/#ScriptMQTT\">Script pour la r\u00e9cup\u00e9ration des donn\u00e9es en MQTT sur la raspberry<\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"\/fablab\/#PageWeb\">Page Web 25<\/a>\n<ol style=\"list-style-type: lower-alpha\">\n<li><a href=\"\/fablab\/#Fonctionnalites\">Fonctionnalit\u00e9s<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li><a href=\"\/fablab\/#PeC\">Perspectives et conclusiones<\/a>\n<ol style=\"list-style-type: upper-alpha\">\n<li style=\"list-style-type: none\">\n<ol style=\"list-style-type: upper-alpha\">\n<li><a href=\"\/fablab\/#Perspectiva\">Perspectives<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol style=\"list-style-type: upper-alpha\">\n<li style=\"list-style-type: none\">\n<ol style=\"list-style-type: upper-alpha\">\n<li><a href=\"\/fablab\/#Conclusao\">Conclusions<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/li>\n<\/ol>\n<h1><a id=\"intro\"><\/a>I. Introduction<\/h1>\n<h2><a id=\"Objectif\"><\/a>A. Objectif du projet (et les domaines\/technologies qu&rsquo;il couvre)<\/h2>\n<p>Conception d&rsquo;un mod\u00e8le novateur de syst\u00e8me de collecte des d\u00e9chets flottants dans les rivi\u00e8res, con\u00e7u pour att\u00e9nuer la pollution de l&rsquo;eau avant d&rsquo;atteindre l&rsquo;oc\u00e9an. Ce syst\u00e8me int\u00e8gre des bou\u00e9es rotatives \u00e9l\u00e9gantes qui dirigent avec habilet\u00e9 les d\u00e9chets flottants vers un conteneur intelligent connect\u00e9 via la technologie LoRa. Cette solution contribue non seulement \u00e0 la pr\u00e9servation de l&rsquo;environnement, mais recueille \u00e9galement des donn\u00e9es pr\u00e9cieuses dans une base de donn\u00e9es, offrant un acc\u00e8s ais\u00e9 pour les futures recherches et observations. De plus, elle propose une exp\u00e9rience interactive via une page web conviviale, permettant aux utilisateurs de visualiser de mani\u00e8re intuitive l&rsquo;\u00e9tat du syst\u00e8me gr\u00e2ce aux lectures pr\u00e9cises des capteurs, soulignant ainsi notre engagement envers un avenir plus propre et durable.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/1.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8931 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/1.png\" alt=\"\" width=\"201\" height=\"201\" \/><\/a><\/p>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n<h2><a id=\"Specifications\"><\/a>B. Sp\u00e9cifications du projet<\/h2>\n<h3><a id=\"Diagrammeutilisation\"><\/a>a. Diagramme de cas d\u2019utilisation<\/h3>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8930 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/2.png\" alt=\"\" width=\"512\" height=\"351\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Ce sch\u00e9ma met en lumi\u00e8re les caract\u00e9ristiques mises en \u0153uvre par le syst\u00e8me et les divers acteurs associ\u00e9s \u00e0 ces actions. Les acteurs cl\u00e9s qui interagissent comprennent les responsables du syst\u00e8me de bou\u00e9es, les citoyens et les responsables des d\u00e9chetteries. Les responsables des bou\u00e9es initient les interactions en \u00e9valuant l&rsquo;ad\u00e9quation environnementale, les citoyens jouent un r\u00f4le pr\u00e9pond\u00e9rant dans le processus d&rsquo;entretien du syst\u00e8me et dans la collecte manuelle des d\u00e9chets, tandis que les responsables des d\u00e9chetteries se chargent du traitement des d\u00e9chets au-del\u00e0 des responsabilit\u00e9s du citoyen ordinaire. Cette collaboration dynamique entre ces acteurs cr\u00e9e un \u00e9cosyst\u00e8me efficace pour la pr\u00e9servation de notre environnement.<\/p>\n<p>&nbsp;<\/p>\n<h2><a id=\"Diagrammearchitecture\"><\/a>C. Diagramme de blocs d\u2019architecture<\/h2>\n<p>Ce sch\u00e9ma offre un aper\u00e7u captivant de la conception du syst\u00e8me et des interconnexions qui le caract\u00e9risent. Il met en lumi\u00e8re les flux de donn\u00e9es entre les capteurs, la carte Arduino avec son module Lora Groove Wio E5, les serveurs d\u00e9di\u00e9s au traitement et au stockage des donn\u00e9es, ainsi que le site Web permettant une visualisation ais\u00e9e. Il illustre \u00e9galement le cheminement des d\u00e9chets flottants, depuis les bou\u00e9es rotatives jusqu&rsquo;au conteneur \u00e0 ordures interconnect\u00e9.<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8929 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/3.jpg\" alt=\"\" width=\"512\" height=\"323\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>En r\u00e9sum\u00e9, ce sch\u00e9ma offre une vision claire des interactions entre les \u00e9l\u00e9ments cl\u00e9s du syst\u00e8me, mettant en avant les flux de donn\u00e9es et de d\u00e9chets qui facilitent le fonctionnement harmonieux du syst\u00e8me de collecte des d\u00e9chets flottants RiverCleaner.<\/p>\n<p>&nbsp;<\/p>\n<h1><a id=\"Hardware\"><\/a>II. Hardware<\/h1>\n<h2><a id=\"Conception3d\"><\/a>A. Conception 3D<\/h2>\n<p><span style=\"font-weight: 400\">Voici une repr\u00e9sentation 3D immersive des 3 bou\u00e9es tournantes, vue sous diff\u00e9rentes perspectives pour une appr\u00e9ciation maximale.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8928\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/4.png\" alt=\"\" width=\"270\" height=\"245\" \/><\/a> <a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8927\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/5.png\" alt=\"\" width=\"270\" height=\"246\" \/><\/a> <a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8924 size-medium\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/8-300x220.png\" alt=\"\" width=\"300\" height=\"220\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: left\">Pour la conception de la bou\u00e9e rotative, l&rsquo;inspiration a \u00e9t\u00e9 puis\u00e9e d&rsquo;un projet existant sur https:\/\/rivercleaning.com. Le mod\u00e8le a \u00e9t\u00e9 adapt\u00e9 aux exigences sp\u00e9cifiques du syst\u00e8me, en tenant compte des caract\u00e9ristiques uniques de notre environnement d&rsquo;essai. Ainsi, la d\u00e9cision a \u00e9t\u00e9 prise d&rsquo;\u00e9quiper la bou\u00e9e de pales de ventilateur pour optimiser sa rotation selon le flux d&rsquo;eau des rivi\u00e8res, avec un diam\u00e8tre r\u00e9fl\u00e9chi \u00e0 80 mm pour s&rsquo;int\u00e9grer harmonieusement \u00e0 l&rsquo;environnement environnant.<\/p>\n<p style=\"text-align: left\">De mani\u00e8re similaire, trois de ces bou\u00e9es ont \u00e9t\u00e9 d\u00e9ploy\u00e9es pour assurer un acheminement continu des d\u00e9chets flottants vers le panier \u00e0 ordures. Ces bou\u00e9es sont fix\u00e9es au fond gr\u00e2ce \u00e0 un axe adaptable, offrant une flexibilit\u00e9 d&rsquo;impl\u00e9mentation qui permet non seulement le passage ais\u00e9 de petits bateaux si n\u00e9cessaire, mais aussi le respect de la vie marine des rivi\u00e8res. De plus, leur adaptabilit\u00e9 au niveau de l&rsquo;eau, sujet \u00e0 des variations fr\u00e9quentes au fil du temps, renforce leur efficacit\u00e9 dans des conditions changeantes. Cette approche ing\u00e9nieuse garantit une solution robuste et adaptable pour la collecte efficace des d\u00e9chets flottants.<\/p>\n<p>&nbsp;<\/p>\n<h2><a id=\"conceptiondecoupeuse\"><\/a>B. Conception dans la d\u00e9coupeuse laser<\/h2>\n<p>Voici la conception innovante des faces du panier \u00e0 ordures, pens\u00e9e avec des filtres et des tiges pour garantir la rotation fluide des bou\u00e9es au sein de notre environnement de test :<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/11.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8921 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/11.png\" alt=\"\" width=\"470\" height=\"299\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Initialement con\u00e7ue comme une poubelle parfaite de 90x90x90 mm, la conception du panier \u00e0 ordures s&rsquo;est r\u00e9duite au fil du processus \u00e0 la mise en \u0153uvre de seulement 4 faces, dont l&rsquo;une arbore un filtre en forme de poisson pour injecter de la personnalit\u00e9 dans le projet et renforcer l&rsquo;image de la marque. Deux barres de 14 x 274,5 mm ont \u00e9t\u00e9 ing\u00e9nieusement int\u00e9gr\u00e9es en tant que poutres, maintenant les bou\u00e9es rotatives pour optimiser l&rsquo;utilisation du mat\u00e9riau et assurer une adaptabilit\u00e9 accrue \u00e0 l&rsquo;environnement. Cette approche cr\u00e9ative ajoute non seulement du caract\u00e8re au projet, mais renforce \u00e9galement l&rsquo;esth\u00e9tique globale et l&rsquo;attrait visuel de la marque.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">En outre, \u00e0 la suite de tests visant \u00e0 affiner le syst\u00e8me de collecte des d\u00e9chets, une d\u00e9cision innovante a \u00e9t\u00e9 prise de remplacer l&rsquo;arri\u00e8re du conteneur par une structure en maille imprim\u00e9e en 3D avec des trous de 6 mm x 6 mm et un espacement de 2 mm entre eux. Cette modification est con\u00e7ue pour favoriser une circulation optimale de l&rsquo;eau tout en am\u00e9liorant la r\u00e9tention des d\u00e9chets dans le syst\u00e8me.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8918\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/14.png\" alt=\"\" width=\"270\" height=\"166\" \/><\/a> <a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8917\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/15.png\" alt=\"\" width=\"270\" height=\"176\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><a id=\"Environnementtest\"><\/a>C. Environnement de test<\/h2>\n<h3><a id=\"Liste\"><\/a>a. Liste mat\u00e9riel pour configuration<\/h3>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 grand conteneur<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 Pompe \u00e0 eau<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 mur de s\u00e9paration<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Supports pour panier \u00e0 ordures<\/span><\/li>\n<li>Fil de fer<\/li>\n<li>Ruban isolant<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Eau<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8916\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/16.png\" alt=\"\" width=\"280\" height=\"334\" \/><\/a> <a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/21.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8911\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/21.png\" alt=\"\" width=\"188\" height=\"335\" \/><\/a><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/24.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8908 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/24.png\" alt=\"\" width=\"350\" height=\"196\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Pour la mise en \u0153uvre de l&rsquo;environnement de test, nous avons choisi un grand <span style=\"font-weight: 400\">r\u00e9cipient <\/span>d&apos;eau, dans lequel une pompe \u00e0 eau a \u00e9t\u00e9 strat\u00e9giquement install\u00e9e pour cr\u00e9er un courant simul\u00e9, imitant l&apos;\u00e9coulement d&apos;une rivi\u00e8re. En outre, un mur de s\u00e9paration a \u00e9t\u00e9 plac\u00e9 au centre du conteneur afin d&apos;assurer une circulation uniforme autour de celui-ci. Cette disposition intelligente emp\u00eache tout croisement inattendu des courants, \u00e9vitant ainsi tout comportement ind\u00e9sirable des bou\u00e9es, comme des virages inattendus ou des interruptions du mouvement cin\u00e9tique. Cette configuration permet une simulation r\u00e9aliste et contr\u00f4l\u00e9e, cr\u00e9ant un environnement d&apos;essai id\u00e9al pour \u00e9valuer les performances du syst\u00e8me. Pour fixer les bou\u00e9es au mod\u00e8le, nous avons choisi d&apos;utiliser des fils moulables, en les faisant passer verticalement \u00e0 travers les bou\u00e9es, et un fil horizontalement pour assurer la stabilit\u00e9, comme l&apos;illustrent les images. \u00c9tant donn\u00e9 la proximit\u00e9 de ces fils avec l&apos;eau, nous avons appliqu\u00e9 du ruban isolant \u00e0 titre pr\u00e9ventif afin d&apos;\u00e9viter tout probl\u00e8me futur.<\/p>\n<p>\u00a0<\/p>\n\n<p>\u00a0<\/p>\n<h2><a id=\"Electronique\"><\/a>D. \u00c9lectronique (RiverCleaner)<\/h2>\n<h3><a id=\"ListeMateriel\"><\/a>a. Liste du mat\u00e9riel<\/h3>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 Module Lora Grove Wio E5<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 Arduino Leonardo<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 Capteur de niveau d\u2019eau<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 D\u00e9tecteur de distance \u00e0 ultrason.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">1 Arduino Grove Base Shield<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Chacun de ces modules occupe un r\u00f4le clef dans le projet :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Le capteur \u00e0 ultrason, va d\u00e9tecter quand la poubelle est pleine<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Le capteur de niveau d\u2019eau, va nous donner des informations sur le niveau de la rivi\u00e8re (si il est sup\u00e9rieur ou inf\u00e9rieur \u00e0 la normale)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Le buzzer, va fournir une information sonore sur l\u2019\u00e9tat du syst\u00e8me<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Le LoRa-E5, va nous permettre d\u2019envoyer les donn\u00e9es en LoRa sur un serveur.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">\u00a0Vous trouverez ci-dessous le sch\u00e9mas de montage du syst\u00e8me :<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/26.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8906\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/26.png\" alt=\"\" width=\"350\" height=\"341\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Sur le port UART, nous retrouvon le module LoRa-E5<\/span><\/p>\n<p><span style=\"font-weight: 400\">Sur le port D6, se trouve le Buzzer<\/span><\/p>\n<p><span style=\"font-weight: 400\">Sur le port D7, le d\u00e9tecteur \u00e0 ultrason (Ultrasonic Ranger)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Sur le port I2C Droit, se trouve le capteur de niveau d\u2019eau<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><a id=\"ParlonsCode\"><\/a>b. Parlons bien, parlons code<\/h3>\n<p>Notre projet est fait sur arduino, nous avons donc d\u00e9velopp\u00e9 notre code sur cette plateforme. L\u2019ensemble du code du projet se trouve sur un gitlab h\u00e9berg\u00e9 sur les serveurs de IMT Atlantique. Le gitlab est disponible en suivant ce lien dans la section arduino : <a href=\"https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner\" target=\"_blank\" rel=\"noopener\">https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner<\/a><br \/>\nPlusieurs remarques sont \u00e0 faire \u00e0 cette \u00e9tape :<\/p>\n<ul>\n<li>Assurez-vous d\u2019avoir une Arduino L\u00e9onardo. LE CODE NE FONCTIONNE PAS POUR D\u2019AUTRE TYPES DE CARTES !!!!<\/li>\n<li>Assurez-vous d\u2019avoir une liaison s\u00e9rie entre le PC et la carte. Le programme ne se lancera pas tant qu\u2019il n\u2019aura pas r\u00e9ussi \u00e0 \u00e9tablir une liaison s\u00e9rie. (Vous pouvez shunter cette s\u00e9curit\u00e9 en commentant la ligne 55 \u201cwhile (!USB_Serial);\u201d ).<\/li>\n<\/ul>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/27.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8905 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/27.png\" alt=\"\" width=\"470\" height=\"167\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Dans le fichier config_application.h Changez le DevEUI (mettez celui qui vous est fourni par TTN)<\/li>\n<li>Dans le fichier config_application.h Changez l\u2019AppKey (mettez aussi celui qui vous est fourni par TTN)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/28.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8904 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/28.png\" alt=\"\" width=\"337\" height=\"363\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h1><a id=\"Software\"><\/a>III. Software<\/h1>\n<h2><a id=\"ServeurTTN\"><\/a>A. Serveur TTN<\/h2>\n<p>Pour \u00e9tablir la connexion avec le serveur TTN, il est imp\u00e9ratif de cr\u00e9er un \u00ab\u00a0End device\u00a0\u00bb, dans notre cas, le module Lora Grove Wio E5, charg\u00e9 de communiquer les donn\u00e9es lues par la carte Arduino avec The Things Network.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/29.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8903 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/29.png\" alt=\"\" width=\"512\" height=\"340\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Cette d\u00e9marche permet d&rsquo;obtenir les informations d&rsquo;identification essentielles pour une connexion r\u00e9ussie et une lecture correcte des donn\u00e9es r\u00e9cup\u00e9r\u00e9es. Ult\u00e9rieurement, ces donn\u00e9es servent \u00e9galement \u00e0 \u00e9tablir des liens entre les bases de donn\u00e9es et les serveurs qui interagissent de mani\u00e8re transparente avec l&rsquo;utilisateur. Ce processus garantit une int\u00e9gration harmonieuse et efficace des donn\u00e9es dans l&rsquo;\u00e9cosyst\u00e8me du projet.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8902 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/30.png\" alt=\"\" width=\"512\" height=\"340\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><a id=\"ServeurBaseDonnees\"><\/a>B. Serveur base de donn\u00e9es<\/h2>\n<p>Dans cette \u00e9tape cruciale, les donn\u00e9es captur\u00e9es sont m\u00e9ticuleusement archiv\u00e9es dans une base de donn\u00e9es, offrant ainsi la possibilit\u00e9 de les consulter en fonction de divers param\u00e8tres tels que la date, l&rsquo;heure, la quantit\u00e9 de d\u00e9chets, le niveau d&rsquo;eau, et bien d&rsquo;autres. Cette approche r\u00e9fl\u00e9chie permet une analyse approfondie et une visualisation personnalis\u00e9e des informations, fournissant ainsi une compr\u00e9hension holistique des tendances et des sch\u00e9mas li\u00e9s \u00e0 la gestion des d\u00e9chets flottants.<\/p>\n<p>Pour le serveur de base de donn\u00e9es, nous avons fait le choix d\u2019utiliser un serveur mySQL. Ce choix pr\u00e9sente plusieurs avantages :<\/p>\n<ul>\n<li>Facilit\u00e9 de mise en place<\/li>\n<li>Bonne gestion d\u2019une grosse quantit\u00e9 de donn\u00e9e<\/li>\n<li>Facilit\u00e9 de lien avec diff\u00e9rents autres services<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">La base de donn\u00e9e est construit sur le sch\u00e9mas suivant :<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/31.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8901 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/31.png\" alt=\"\" width=\"251\" height=\"191\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>user d\u00e9signe les utilisateurs. Un utilisateur est repr\u00e9sent\u00e9 par :<\/p>\n<ul>\n<li>Un ID (num\u00e9ro d\u2019utilisateur)<\/li>\n<li>Name (un nom)<\/li>\n<li>Firstname, un pr\u00e9nom<\/li>\n<li>Password (un mot de passe)<\/li>\n<\/ul>\n<p>tool d\u00e9signe l\u2019outil riverCleaner. Il est repr\u00e9sent\u00e9 par :<\/p>\n<ul>\n<li>Un ID<\/li>\n<li>Location, la localisation de la station<\/li>\n<li>LoRa address : L\u2019adresse LoRa pour contacter l\u2019outil<\/li>\n<li>River name : le nom de la rivi\u00e8re ou l\u2019outil est install\u00e9<\/li>\n<\/ul>\n<p>Etant donn\u00e9 qu\u2019un utilisateur peut avoir un ou plusieurs outils nous avons une table de liaison \u201chaveTool\u201d qui fait le lien entre user et tool.<\/p>\n<p>Enfin, vu qu\u2019un outils peut faire des mesures, nous avons une table measurement qui contient l\u2019ensemble des mesures des outils, une mesure est d\u00e9crite par :<\/p>\n<ul>\n<li>Un ID<\/li>\n<li>L\u2019identifiant de l\u2019outil qui \u00e0 fait la mesure<\/li>\n<li>State : d\u00e9signe l\u2019\u00e9tat du syst\u00e8me<\/li>\n<li>Full : un boolean qui indique si la poubelle est pleine ou non<\/li>\n<li>Water_level : donne une information sur le niveau d\u2019eau de la rivi\u00e8re<\/li>\n<li>Date : horodatage de la mesure (cr\u00e9\u00e9 automatiquement par la base de donn\u00e9e).<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><a id=\"ServeurWEB\"><\/a>C. Monter un serveur WEB<\/h2>\n<p>Mat\u00e9riel :<\/p>\n<ul>\n<li>Raspberry PI 4 B+<\/li>\n<li>Carte micro SD (4 Go minimum requis)<\/li>\n<li>Moniteur, clavier, souri, connexion internet<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a id=\"Raspberry\"><\/a>a. Setup de la raspberry<\/h3>\n<p><span style=\"font-weight: 400\">Dans un premier temps, nous allons pr\u00e9parer la raspberry. Pour cela nous allons avoir besoin d\u2019un OS. Dans un premier temps, allez chercher une Image sur le site de raspberry (<\/span><a href=\"https:\/\/www.raspberrypi.com\/software\/operating-systems\/\"><span style=\"font-weight: 400\">https:\/\/www.raspberrypi.com\/software\/operating-systems\/<\/span><\/a><span style=\"font-weight: 400\"> ). Pour vous faciliter la t\u00e2che, je vous recommande une image Raspberry Pi OS with desktop and recommended software. Bien qu\u2019elle soit plus grosse, elle dispose de quelques outils pr\u00e9-install\u00e9s, qui vous aideront lors du d\u00e9bugage.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Flashez la carte SD avec l\u2019image de Raspberry PI OS avec l&rsquo;outil de votre choix (je vous recommande balena Eatcher <\/span><a href=\"https:\/\/etcher.balena.io\/\"><span style=\"font-weight: 400\">https:\/\/etcher.balena.io\/<\/span><\/a><span style=\"font-weight: 400\"> ).\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Une fois la carte SD flash\u00e9e, ins\u00e9r\u00e9e la dans la raspberry, et mettez le syst\u00e8me sous tension. Au bout de quelques minutes, vous devriez arriver sur l\u2019outil d\u2019aide \u00e0 l\u2019installation.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si cela ne fonctionne pas :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">V\u00e9rifiez que le moniteur est sous tension, et qu\u2019il a la bonne source<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">V\u00e9rifiez la pr\u00e9sence de fichier sur la carte SD (vous avez peut-\u00eatre flasher autre chose, comme une clef USB)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">V\u00e9rifiez que vous avez bien flasher un image de raspberry pi OS (non de Raspberry Pi OS for VM)<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Suivez le guide d\u2019installation, et faites les \u00e9ventuelles mise \u00e0 jour. Une fois la raspberry compl\u00e8tement install\u00e9e, red\u00e9marrez la.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><a id=\"Apache\"><\/a>b. Apache2<\/h3>\n<p><span style=\"font-weight: 400\">Nous allons maintenant passer \u00e0 la configuration de la raspberry afin de la transformer en serveur web.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Tapez \u2018<em>sudo \/etc\/init.d\/apache2 restart<\/em>\u2019. Si vous avez un message de red\u00e9marrage, vous pouvez passer \u00e0 l\u2019\u00e9tape de l\u2019installation de php.<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/32.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8900 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/32.png\" alt=\"\" width=\"512\" height=\"39\" \/><\/a><\/p>\n<p>Sinon, nous allons installer manuellement le serveur apache.<\/p>\n<p>Tapez \u2018sudo apt install apache2\u2019 Cette commande va installer un serveur apache (eq serveur web html) sur la raspberry.<\/p>\n<p>Afin de v\u00e9rifier si le serveur est bien install\u00e9, ouvrez un navigateur, et tapez dans la barre de recherche \u2018localhost\u2019 ou \u2018127.0.0.1\u2019. Vous devriez arriver sur une page comme celle-ci :<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/33.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8899 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/33.png\" alt=\"\" width=\"512\" height=\"469\" \/><\/a><\/p>\n<p>Si ce n\u2019est pas le cas :<\/p>\n<ul>\n<li>Faites une MAJ sur la carte (\u2018sudo apt-get update\u2019 puis \u2018sudo apt-get upgrade\u2019, puis reboot)<\/li>\n<li>Tentez de r\u00e9installer le serveur (\u2018sudo apt-get install apache2\u2019)<\/li>\n<li>Essayez la commande \u2018\/etc\/init.d\/apache2 restart\u2019<\/li>\n<li>demandez \u00e0 chatGPT de l\u2019aide<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a id=\"phpInstallation\"><\/a>c. Installation de php<\/h3>\n<p><span style=\"font-weight: 400\">Nous allons maintenant passer \u00e0 l\u2019installation de php.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Dans votre terminal, tapez la commande \u2018sudo nano \/var\/www\/html\/example.php\u2019.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Une fen\u00eatre devrait s\u2019ouvrir. Entrez les lignes de code suivantes :\u00a0<\/span><\/p>\n<p><code><span style=\"font-weight: 400\">&lt;!DOCTYPE html&gt;<br \/>\n<\/span><span style=\"font-weight: 400\">&lt;html&gt;<br \/>\n<\/span><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;?php<br \/>\n<\/span><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0print(\u201c&lt;h1&gt;HELLO WORLD !!!!&lt;\/h1&gt;\u201d);<br \/>\n<\/span><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0?&gt;<br \/>\n<\/span><span style=\"font-weight: 400\">&lt;\/html&gt;<\/span><\/code><\/p>\n<p><span style=\"font-weight: 400\">Dans votre navigateur, dans la barre d\u2019adresse, tapez \u2018localhost\/example.php\u2019. Si vous observez un HELLO WORLD !!!! marqu\u00e9 en tr\u00e8s gros. Vous pouvez passer \u00e0 la partie installation du serveur sql.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si vous avez une erreur, vous avez sans doute mal recopi\u00e9 le code donn\u00e9 ci-dessus. V\u00e9rifiez bien la pr\u00e9sence de \u201c;\u201d \u00e0 la fin de la ligne de code.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si vous avez seulement une page balance, cela signifie que php n\u2019est pas install\u00e9 sur la raspberry.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Nous allons installer php \u00e0 la main. Pour cela, tapez la commande \u2018sudo apt-get install php\u2019. Cette commande devrait installer automatiquement la derni\u00e8re version de php. Confirmez cela en regardant la version de php (\u2018php -v\u2019). R\u00e9essayez de charger la page \u201clocalhost\/example.php\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cela ne fonctionne toujours pas :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">V\u00e9rifiez l\u2019URL<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Red\u00e9marrez le serveur apache \u201c\/etc\/init.d\/apache2 restart\u201d<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Red\u00e9marrez la raspberry<\/span><\/li>\n<li><span style=\"font-weight: 400\">Renseignez vous sur internet<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a id=\"InstallationServeur\"><\/a>d. Installation du serveur de base de donn\u00e9e<\/h3>\n<p><span style=\"font-weight: 400\">Les \u00e9tapes qui vont suivre sont un peu plus complexes. Je vous recommande de suivre les documentations en ligne.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Nous allons passer \u00e0 l\u2019installation du serveur de base de donn\u00e9es mysql. Pour cela tapez la commande \u2018sudo apt-get install mysql-server\u2019. Cette commande va permettre d\u2019installer un serveur mysql sur la raspberry. Bien que dans une certaine mesure c\u2019est mieux, je vous d\u00e9conseille de faire la s\u00e9cure installation de mysql, cela peut bloquer votre base de donn\u00e9e, et vous serez oblig\u00e9 de flasher \u00e0 nouveau la carte SD.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Afin de v\u00e9rifier sa bonne installation, tapez la commande \u2018sudo mysql\u2019.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si vous avez ce message (\u00e0 quelques diff\u00e9rences pr\u00e8s), f\u00e9licitation, vous avez un serveur SQL, vous pouvez passer \u00e0 l\u2019installation de phpmyadmin.<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/34.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8898 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/34.png\" alt=\"\" width=\"484\" height=\"173\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Afin de sortir du terminal mysql tapez la commande exit.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si la commande ne fonctionne pas, regardez la documentation en ligne.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><a id=\"phpMyAdmin\"><\/a>e. phpMyAdmin, notre interface pour configurer la base de donn\u00e9es<\/h3>\n<p><span style=\"font-weight: 400\">Une fois votre base de donn\u00e9es install\u00e9e, nous allons proc\u00e9der \u00e0 l\u2019installation de l\u2019outil qui va la g\u00e9rer : phpMyAdmin.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Pour cela, tapez la commande \u2018sudo apt-get install phpmyadmin\u2019.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Dans un premier temps phpmyadmin vous demandera des acc\u00e8s \u00e0 la base de donn\u00e9e faites Entr\u00e9e pour accepter <\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/35.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8897 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/35.png\" alt=\"\" width=\"340\" height=\"203\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Ensuite, il vous demandera quel serveur web nous souhaitons reconfigurer. Faites ESPACE afin de s\u00e9lectionner apache2, et appuyer sur Entr\u00e9e<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/36.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8896 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/36.png\" alt=\"\" width=\"445\" height=\"119\" \/><\/a><\/p>\n<p>Normalement c\u2019est tout bon. Allez sur la page de connexion de phpmyadmin en tapant dans votre navigateur \u2018localhost\/phpmyadmin\/\u2019<br \/>\nSi vous avez une page qui ressemble \u00e0 cela, vous avez r\u00e9ussi \u00e0 setup phpmyadmin :<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/37.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8895 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/37.png\" alt=\"\" width=\"263\" height=\"234\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Si cela ne fonctionne pas :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Red\u00e9marrez apache \u2018\/etc\/init.d\/apache2 restart\u2019<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Red\u00e9marrez la raspberry<\/span><\/li>\n<li style=\"font-weight: 400\">Cherchez dans la documentation en ligne (<a href=\"https:\/\/pimylifeup.com\/raspberry-pi-phpmyadmin\/\">https:\/\/pimylifeup.com\/raspberry-pi-phpmyadmin\/<\/a>)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a id=\"Miseenplace\"><\/a>f. Mise en place des utilisateurs<\/h3>\n<p><span style=\"font-weight: 400\">Dans cette \u00e9tape, nous allons mettre en place les utilisateurs de la base de donn\u00e9es.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Tapez \u2018sudo mysql\u2019 Vous devriez ouvrir un terminal mysql.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ensuite tapez la commande :\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">CREATE USER &lsquo;[username]&rsquo;@&rsquo;localhost&rsquo; IDENTIFIED BY &lsquo;[password]&rsquo;;<\/span><\/p>\n<p><span style=\"font-weight: 400\">Remplacez [username] par un nom d\u2019utilisateur ex :\u00a0 &lsquo;user&rsquo;@&rsquo;localhost&rsquo;<br \/>\n<\/span><span style=\"font-weight: 400\">Remplacez [password] par le mot de passe de votre choix ex : &lsquo;password&rsquo;<br \/>\n<\/span><span style=\"font-weight: 400\">N\u2019oubliez pas le \u201c;\u201d \u00e0 la fin de la requ\u00eate.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ensuite, nous allons attribuer des droits \u00e0 cet utilisateur. Pour cela tapez la commande :<\/span><\/p>\n<p><span style=\"font-weight: 400\">GRANT ALL PRIVILEGES ON *.* TO &lsquo;[username]&rsquo;@&rsquo;localhost&rsquo; IDENTIFIED BY &lsquo;[password]&rsquo; WITH GRANT OPTION;<\/span><\/p>\n<p><span style=\"font-weight: 400\">Remplacez [username] par un nom d\u2019utilisateur ex :\u00a0 &lsquo;user&rsquo;@&rsquo;localhost&rsquo;<br \/>\n<\/span><span style=\"font-weight: 400\">Remplacez [password] par le mot de passe de votre choix ex : &lsquo;password&rsquo;<br \/>\n<\/span><span style=\"font-weight: 400\">N\u2019oubliez pas le \u201c;\u201d \u00e0 la fin de la requ\u00eate.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Retournez sur la page de connexion de phpmyadmin et entrez le couple login mot de passe que vous venez de cr\u00e9er. (utilisez [username] pour le login, pas besoin du @\u2019localhost\u2019)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si vous \u00eates connect\u00e9, f\u00e9licitation ! Vous avez phpmyadmin \u00e0 votre disposition.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Sinon :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">V\u00e9rifiez que vous avez bien le bon couple login mot de passe<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Red\u00e9marrez apache2 \u2018sudo \/etc\/init.d\/apache2 restart\u2019<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Red\u00e9marrez la raspberry<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Cherchez de l\u2019aide en ligne<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a id=\"Installation2\"><\/a>g. Installation de la base de donn\u00e9e<\/h3>\n<p><span style=\"font-weight: 400\">Nous allons maintenant passer \u00e0 l\u2019installation de la base de donn\u00e9es.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Dans un terminal tapez \u2018sudo mysql\u2019<\/span><\/p>\n<p><span style=\"font-weight: 400\">Puis\u00a0 : CREATE DATABASE riverCleaner;<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cette commande va cr\u00e9er une base de donn\u00e9e dans le serveur mysql.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Retournez dans phpmyadmin et retrouvez la base de donn\u00e9e rivercleaner, cliquez dessus (cela permet de la s\u00e9lectionner) <\/span><span style=\"font-weight: 400\">et importez la base de donn\u00e9e river cleaner disponible sur le gitlab : <\/span><a href=\"https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner\"><span style=\"font-weight: 400\">https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner<\/span><\/a><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/38.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8894 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/38.png\" alt=\"\" width=\"512\" height=\"365\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Maintenant, vous avez une base de donn\u00e9es pour votre projet !<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><a id=\"InstallationSiteWeb\"><\/a>h. Installation du site web<\/h3>\n<p><span style=\"font-weight: 400\">Mettez sur une clef USB le code du site web disponible sur le gitlab <\/span><a href=\"https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner\"><span style=\"font-weight: 400\">https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400\">Sur la raspberry, d\u00e9placez le fichier \u2018WEB\u2019 sur le bureau<\/span><\/p>\n<p><span style=\"font-weight: 400\">Dans un terminal taper la commande suivante :\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">sudo cp -R .\/Desktop\/WEB\/ \/var\/www\/html\/<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cette commande \u00e0 pour effet de copier le dossier WEB et le coller dans le dossier \/var\/www\/html<\/span><\/p>\n<p><span style=\"font-weight: 400\">Dans un navigateur recherchez l\u2019adresse \u2018localhost\/WEB\/\u2019. Vous devriez arriver sur la page d\u2019accueil de <strong>riverCleaner<\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Notre objectif est maintenant de r\u00e9aliser le montage suivant :<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/39.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8893 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/39.png\" alt=\"\" width=\"423\" height=\"199\" \/><\/a><\/p>\n<p>Pour cela, nous allons avoir besoin de cr\u00e9er un lien entre la base de donn\u00e9es et le serveur SQL. Cela va se faire en deux temps. Dans un premier temps nous allons faire en sorte que le serveur nous envoie les informations, puis nous allons les r\u00e9cup\u00e9rer avec un code python<\/p>\n<p>&nbsp;<\/p>\n<h3><a id=\"CreationAPI\"><\/a>i. Cr\u00e9ation de l\u2019API MQTT de TTN<\/h3>\n<p><span style=\"font-weight: 400\">Nous allons maintenant cr\u00e9er l\u2019API MQTT qui servira \u00e0 r\u00e9cup\u00e9rer les informations \u00e9mises en LoRa par la carte arduino.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Pour cela connectez vous \u00e0 TTN. Dans application -&gt; tp-lora-cooc -&gt; MQTT.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cliquez sur \u201cgenerate new API key\u201d. Ceci va g\u00e9n\u00e9rer une clef API pour que l\u2019on puisse se connecter en MQTT \u00e0 l\u2019ensemble du service \u201ctp-lora-cooc\u201d. Notez bien aussi le username \u201ctp-lora-cooc@ttn\u201d, celui-ci nous sera tr\u00e8s utile pour la suite.<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/40.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8892 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/40.png\" alt=\"\" width=\"512\" height=\"317\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><a id=\"SetupPython\"><\/a>j. Setup python sur la raspberry<\/h3>\n<p><span style=\"font-weight: 400\">Pour commencer, installons pythons sur la raspberry :\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">sudo apt-get install python3-full<\/span><\/p>\n<p><span style=\"font-weight: 400\">C\u2019est une version plus compl\u00e8te de python (qui int\u00e8gre un peu plus d\u2019outils d\u00e8s le d\u00e9part).<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ensuite nous avons besoin d\u2019installer diff\u00e9rentes librairies :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">paho-mqtt -&gt; permet de recevoir des flux en MQTT<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">mysql-connector -&gt; qui permet de s\u2019interfacer facilement avec la base de donn\u00e9e<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Vous pouvez les installer facilement avec pip :\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">pip install paho-mqtt<br \/>\n<\/span><span style=\"font-weight: 400\">pip install mysql-connector<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si cela ne fonctionne pas :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Red\u00e9marrez la raspberry (surtout si vous venez tout juste d\u2019installer python)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Renseignez vous sur les probl\u00e8me de virtual environnement (les .venv)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">T\u00e9l\u00e9chargez pip (le script get-pip.py disponible sur le site officiel de pip fonctionne bien)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Regardez la documentation en ligne<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a id=\"ScriptMQTT\"><\/a>k. Script pour la r\u00e9cup\u00e9ration des donn\u00e9es en MQTT sur la raspberry<\/h3>\n<p><span style=\"font-weight: 400\">Nous allons pouvoir installer le script qui permet de faire la liaison entre le serveur TTN et la base de donn\u00e9es SQL. Dans un premier temps r\u00e9cup\u00e9rez le script python disponible sur le gitlab : <\/span><a href=\"https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner\"><span style=\"font-weight: 400\">https:\/\/gitlab.imt-atlantique.fr\/m21bourg\/rivercleaner<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Mettez les valeurs ad\u00e9quat pour lier votre raspberry au serveur TTN.<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/41.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8891 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/41.png\" alt=\"\" width=\"512\" height=\"186\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Et \u00e0 la fin du document remplissez les champs avec vos informations de connexion avec la base de donn\u00e9es : <\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/42.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8890 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/42.png\" alt=\"\" width=\"361\" height=\"143\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Une fois ceci fait, vous pouvez ex\u00e9cuter le script python avec la commande :\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">python3 [VotreScript].py<br \/>\n<\/span><span style=\"font-weight: 400\">ou [VotreScript] est le nom de votre script.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Si vous recevez des informations sur votre serveur, celles-ci seront automatiquement transmises dans le terminal, et si elles sont compatibles, elles iront dans la base de donn\u00e9es.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><a id=\"PageWeb\"><\/a>D. Page Web<\/h2>\n<h3><a id=\"Fonctionnalites\"><\/a>a. Functionnalit\u00e9s<\/h3>\n<p>La page web permet \u00e0 l\u2019utilisateur d\u2019avoir une vue sur son syst\u00e8me. Combien de polluants, il a retir\u00e9 de la rivi\u00e8re, l\u2019\u00e9tat du syst\u00e8me, \u2026<\/p>\n<p>La page web est h\u00e9berg\u00e9e sur un serveur apache. Elle est li\u00e9e \u00e0 la base de donn\u00e9es. La page web dispose aussi d\u2019une API sur laquelle les scientifiques peuvent se connecter afin de recevoir des mesures des diff\u00e9rents outils.<\/p>\n<p>Bien que nous n&rsquo;ayons pas eu le temps de mettre en place l\u2019API, nous avons pu commencer \u00e0 travailler sur le site web. Le site web \u00e0 un front-end en html, un backend en php et bootstrap 3 pour toute la partie \u201cCSS\u201d.<\/p>\n<p><span style=\"font-weight: 400\">Le site est compos\u00e9 de plusieurs pages :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Page d&rsquo;accueil<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Page de relev\u00e9 des mesures<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Page de cr\u00e9ation de compte<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Page de login<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">La page d&rsquo;accueil regroupe diff\u00e9rentes informations sur ce qu\u2019est le projet riverCleaner, ce qu\u2019il fait, \u00e0 quoi il sert \u2026\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">La page de relev\u00e9 des mesures, se contente d\u2019afficher les mesures pr\u00e9sentes dans la base de donn\u00e9es. A terme, le but sera d\u2019afficher les mesures relatives \u00e0 un utilisateur, avec des options de filtrage (filtrer par appareil, filtrer par date, \u2026)<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/Interface-RC-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9124\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2023\/12\/Interface-RC-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1440\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Page de cr\u00e9ation de compte. Cette page sert \u00e0 se cr\u00e9er un compte riverCleaner. Elle prend comme entr\u00e9e Nom, Pr\u00e9nom et mot de passe. Il est possible de faire de l\u2019injection de code dans la page.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Page de login, cette page sert juste \u00e0 se logger sur le site. Pour l\u2019instant elle affiche juste un message pour indiquer que l\u2019authentification \u00e0 r\u00e9ussi, mais \u00e0 terme, il faudra mettre les m\u00e9canismes de session PHP, pour garder l\u2019authentification.<\/span><\/p>\n<p><span style=\"font-weight: 400\">function.php est un fichier central dans ce site. Il permet de centraliser des fonctions php communes au site web. Par exemple, il centralise les fonctions relatives au header, footer, navbar, connexion \u00e0 la base de donn\u00e9es, imports bootstrap \u2026 Si vous souhaitez r\u00e9cup\u00e9rer le site, vous devrez passer un peu de temps pour comprendre ce fichier.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h1><a id=\"PeC\"><\/a>IV. Perspectives et conclusiones<\/h1>\n<h2><a id=\"Perspectiva\"><\/a>A. Perspectives<\/h2>\n<p>Les perspectives d&rsquo;avenir de ce projet sont prometteuses. La technologie utilis\u00e9e pour collecter les d\u00e9chets flottants dans les rivi\u00e8res pourrait \u00eatre adapt\u00e9e \u00e0 d&rsquo;autres applications, notamment dans les grandes rivi\u00e8res. En outre, l&rsquo;ajout de fonctionnalit\u00e9s, telles que la d\u00e9tection de la qualit\u00e9 de l&rsquo;eau ou la surveillance de la faune, pourrait encore am\u00e9liorer l&rsquo;efficacit\u00e9 et l&rsquo;impact environnemental du syst\u00e8me. Enfin, la collaboration avec les autorit\u00e9s locales et les organisations environnementales pourrait permettre d&rsquo;\u00e9tendre le syst\u00e8me \u00e0 une plus grande \u00e9chelle, contribuant ainsi \u00e0 la pr\u00e9servation de l&rsquo;environnement \u00e0 l&rsquo;\u00e9chelle mondiale.<\/p>\n<h2><a id=\"Conclusao\"><\/a>B. Conclusions<\/h2>\n<p>En conclusion, ce projet de collecte des d\u00e9chets flottants dans les rivi\u00e8res repr\u00e9sente une avanc\u00e9e significative dans la lutte contre la pollution de l&rsquo;eau. La combinaison de la conception innovante des bou\u00e9es rotatives, de l&rsquo;utilisation de capteurs avanc\u00e9s et de la mise en place d&rsquo;une infrastructure logicielle solide d\u00e9montre l&rsquo;efficacit\u00e9 de l&rsquo;approche multidisciplinaire adopt\u00e9e. Ce syst\u00e8me offre une solution pratique et adaptable pour la collecte efficace des d\u00e9chets flottants, tout en fournissant des donn\u00e9es pr\u00e9cieuses pour des recherches futures. Il incarne l&rsquo;engagement envers un environnement plus propre et durable, tout en ouvrant la voie \u00e0 de nouvelles possibilit\u00e9s d&rsquo;am\u00e9lioration et d&rsquo;expansion.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; 22\/12\/2023 Auteurs: Anna Terra GOMES GUERRA, Mathieu BOURGES, Dely Catalina ARDILA MEDINA TABLE DES MATI\u00c8RES Introduction Objectif du projet (et les domaines\/technologies qu&rsquo;il couvre) Sp\u00e9cifications du projet Diagramme de cas d\u2019utilisation Diagramme de blocs d\u2019architecture Hardware Conception 3D Conception dans la d\u00e9coupeuse laser Environnement de test Liste mat\u00e9riel pour configuration \u00c9lectronique (RiverCleaner) Liste du [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8907,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[113],"tags":[],"class_list":["post-8882","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couad"],"acf":{"article_projet":[10619]},"_links":{"self":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/posts\/8882","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=8882"}],"version-history":[{"count":2,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/posts\/8882\/revisions"}],"predecessor-version":[{"id":10621,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/posts\/8882\/revisions\/10621"}],"acf:post":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/10619"}],"wp:attachment":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/media?parent=8882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/categories?post=8882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/tags?post=8882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}