{"id":2650,"date":"2015-06-25T10:37:18","date_gmt":"2015-06-25T09:37:18","guid":{"rendered":"http:\/\/telefab.fr\/?p=2650"},"modified":"2026-04-30T17:33:59","modified_gmt":"2026-04-30T15:33:59","slug":"projet-5-un-systeme-de-surveillance-a-distance-de-la-spiruline","status":"publish","type":"projet","link":"https:\/\/hub.imt-atlantique.fr\/fablab\/projet\/projet-5-un-systeme-de-surveillance-a-distance-de-la-spiruline\/","title":{"rendered":"Projet 5 : Un syst\u00e8me de surveillance \u00e0 distance de la spiruline"},"content":{"rendered":"<p lang=\"fr-FR\"><span style=\"font-family: Arial,sans-serif;\"><span style=\"font-size: large;\"><b>R\u00e9sum\u00e9 :<\/b><\/span><\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Afin de faciliter la supervision de la culture de la spiruline, nous avons d\u00e9velopp\u00e9 un syst\u00e8me de capteurs mesurant la temp\u00e9rature, la luminosit\u00e9 et l\u2019humidit\u00e9 de la serre ainsi que la temp\u00e9rature, la turbidit\u00e9 et le pH de l\u2019eau des bassins de culture. Il permet de r\u00e9cup\u00e9rer et de stocker ces mesures et de les afficher sur un \u00e9cran gr\u00e2ce \u00e0 un site web.<\/span><\/p>\n<p lang=\"fr-FR\"><span style=\"font-family: Arial,sans-serif;\"><span style=\"font-size: large;\"><b>Objectifs :<\/b><\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\">Pour simplifier la surveillance <\/span><\/span><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-CA\">de<\/span><\/span><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"> la culture nous nous proposons de :<\/span><\/span><\/p>\n<ul>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Faciliter le remplissage du journal de bord pour le spirulinier.<\/span><\/p>\n<\/li>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Automatiser le relev\u00e9 des mesures.<\/span><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Permettre la supervision \u00e0 distance de la culture.<\/span><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Avoir un budget inf\u00e9rieur \u00e0 250 \u20ac.<\/span><\/p>\n<\/li>\n<\/ul>\n<p lang=\"fr-FR\"><span style=\"font-family: Arial,sans-serif;\"><span style=\"font-size: large;\"><b>D\u00e9veloppement technique :<\/b><\/span><\/span><\/p>\n<p align=\"center\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/06\/SchemaTechniquePr5DevV2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2667\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/06\/SchemaTechniquePr5DevV2-212x300.jpg\" alt=\"SchemaTechniquePr5DevV2\" width=\"212\" height=\"300\" \/><\/a><\/p>\n<p lang=\"fr-FR\"><span style=\"font-family: Arial,sans-serif;\">Comme on peut le voir sur le sch\u00e9ma de la figure 1, notre syst\u00e8me est d\u00e9composable en quatre sous parties :<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un regroupement de 5 capteurs li\u00e9 \u00e0 un premier Arduino afin de collecter les donn\u00e9es environnementales ;<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Une communication sans fil via une liaison radio pour permettre une certaine mobilit\u00e9 des capteurs ;<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Une base de donn\u00e9es qui stocke toutes les mesures r\u00e9alis\u00e9es par les capteurs depuis leur mise en service ;<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un site web permettant la consultation et l\u2019\u00e9dition du journal de bord du spirulinier ainsi que la visualisation graphique de l&rsquo;\u00e9volution des mesures au cours du temps.<\/span><\/p>\n<table width=\"643\" cellspacing=\"1\" cellpadding=\"4\">\n<colgroup>\n<col width=\"631\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\"><span style=\"font-family: Arial,sans-serif;\"><b>Mat\u00e9riel<\/b><\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">2 Arduino UNO avec les c\u00e2bles USB pour connecter avec l&rsquo;ordinateur ;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un sonde PH Smecatronix DF028 ;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un sonde de temp\u00e9rature \u00e9tanche DS18B20 ;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un capteur lumi\u00e8re TSL2561 ;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un capteur de temp\u00e9rature ( dans l&rsquo;air ) et humidit\u00e9 RHT03(DHT22) ;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un capteur de turbidit\u00e9 que nous avons fabriqu\u00e9 \u00e0 l\u2019aide d\u2019une photor\u00e9sistance, d\u2019une r\u00e9sistance de 1,16KOhm et d\u2019une LED;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un transmetteur FS1000A ;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">Un r\u00e9cepteur XY-FST ;<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"631\">\n<p lang=\"fr-FR\">\u2013 <span style=\"font-family: Arial,sans-serif;\">3 r\u00e9sistances : 2 de 4.7kOhm.<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"><b>Un syst\u00e8me de 5 capteurs :<\/b><\/span><\/span><\/li>\n<\/ul>\n<p align=\"justify\"><span style=\"font-family: Arial Rounded MT Bold,sans-serif;\"><span lang=\"fr-FR\">Un capteur de temp\u00e9rature et d\u2019humidit\u00e9<\/span><\/span><span style=\"font-family: Arial Rounded MT Bold,sans-serif;\"><span lang=\"fr-FR\">. <\/span><\/span><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\">Sa r\u00e9f\u00e9rence est RHT03 (DHT22). Il existe de nombreux tutoriels sur internet qui nous permettent de bien apprendre \u00e0 l&rsquo;utiliser. Il est cependant n\u00e9cessaire d&rsquo;installer la biblioth\u00e8que DHT.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-family: Arial Rounded MT Bold,sans-serif;\"><span lang=\"fr-FR\">Un capteur de temp\u00e9rature \u00e9tanche<\/span><\/span><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"> dont la r\u00e9f\u00e9rence est DS18B20.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-family: Arial Rounded MT Bold,sans-serif;\"><span lang=\"fr-FR\">Une sonde pour mesurer le pH<\/span><\/span><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"> de r\u00e9f\u00e9rence Smecatronix DF028.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-family: Arial Rounded MT Bold,sans-serif;\"><span lang=\"fr-FR\">Un capteur de luminosit\u00e9<\/span><\/span><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"> TSL2561. Nous avons r\u00e9ussi comme pr\u00e9c\u00e9demment \u00e0 trouver des montages et des codes pour les faire fonctionner. Si n\u00e9cessaire, il faut aussi installer la biblioth\u00e8que pour le capteur.<\/span><\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"> Enfin, nous avons associ\u00e9 tous les capteurs. Nous avons \u00e9galement rassembl\u00e9 les diff\u00e9rents codes pour faire fonctionner notre syst\u00e8me sur l&rsquo;Arduino.<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"> Notre principal d\u00e9fi a \u00e9t\u00e9 de cr\u00e9er par nous m\u00eame un capteur de turbidit\u00e9. La difficult\u00e9 r\u00e9side dans le fait que ce capteur n\u2019existe pas pour le moment. Mme M\u00e9nard nous a montr\u00e9 comment elle \u00e9valuait la turbidit\u00e9 avec un disque de Secchi. Cette mesure n\u2019est pas tr\u00e8s pr\u00e9cise, elle est faite pour \u00e9valuer en gros la turbidit\u00e9. C\u2019est pourquoi pour ce capteur nous avons d\u00e9cid\u00e9 d\u2019utiliser une photor\u00e9sistance plut\u00f4t qu\u2019<\/span><span style=\"font-family: Arial,sans-serif;\">un capteur de luminosit\u00e9 plus pr\u00e9cis. Face \u00e0 cette photor\u00e9sistance nous avons fix\u00e9 une LED qui s\u2019allume \u00e0 intervalle r\u00e9gulier quand la photor\u00e9sistance prend des valeurs. La structure ainsi cr\u00e9\u00e9 est \u00e9tanch\u00e9ifi\u00e9e gr\u00e2ce \u00e0 du film plastique. On la place alors dans le bassin. Plus l\u2019eau est trouble plus elle absorbe la lumi\u00e8re donc plus la valeur renvoy\u00e9e par la photor\u00e9sistance. On peut ainsi estimer la turbidit\u00e9 de l\u2019eau. <\/span><\/p>\n<ul>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"><b>Une transmission radio\u00a0:<\/b><\/span><\/p>\n<\/li>\n<\/ul>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"> Notre cliente souhaite une communication sans fil entre les capteurs collectant les r\u00e9sultats des mesures et le lieu o\u00f9 ceux-ci sont stock\u00e9s puis analys\u00e9s. Pour ce faire, nous avons opt\u00e9 pour l&rsquo;utilisation d&rsquo;une liaison radio. Nous travaillons avec les modules radio FS1000A\/XY-FST RF, \u00e9metteur et r\u00e9cepteur, utilisant la fr\u00e9quence 433 MHz (cf figure 6). Ceux-ci sont peu chers et facile d&rsquo;utilisation.<\/span><\/p>\n<p align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"> Nous avons utilis\u00e9 la librairie VirtualWire, disponible en t\u00e9l\u00e9chargement libre sur internet, o\u00f9 les fonctions prennent en compte cette faille et introduisent de la redondance dans leur code. Par pr\u00e9caution, nous avons introduit dans notre propre code une m\u00e9thode semblable \u00e0 celle du bit <\/span><\/span><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\">de parit\u00e9. En effet, lorsque le transmetteur envoie des donn\u00e9es, il envoie \u00e9galement leur somme. Le r\u00e9cepteur, quant \u00e0 lui, re\u00e7oit les donn\u00e9es, en fait la somme et compare celle-ci \u00e0 la somme re\u00e7ue (celle qui a \u00e9t\u00e9 envoy\u00e9 par l&rsquo;\u00e9metteur). Si les sommes sont diff\u00e9rentes, c&rsquo;est qu&rsquo;il y a probablement eu une erreur dans la transmission donc le r\u00e9cepteur refuse les donn\u00e9es. Elles ne seront pas enregistr\u00e9es dans la base de donn\u00e9es. Cependant, cette m\u00e9thode ne nous permet pas d&rsquo;identifier l&rsquo;erreur ni de la corriger. Elle peut donc \u00eatre am\u00e9lior\u00e9e.<\/span><\/span><\/p>\n<ul>\n<li>\n<p lang=\"fr-FR\"><span style=\"font-family: Arial,sans-serif;\"><b>Une base de donn\u00e9es persistante\u00a0:<\/b><\/span><\/p>\n<\/li>\n<\/ul>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"> Pour r\u00e9cup\u00e9rer les donn\u00e9es re\u00e7ues par l\u2019Arduino et les mettre dans une base de donn\u00e9es, nous avons utilis\u00e9 le langage de programmation Python. En effet, son utilisation est simple et les ressources sont nombreuses sur internet pour nous aider \u00e0 impl\u00e9menter un code nous permettant de r\u00e9cup\u00e9rer les informations sur l\u2019ordinateur, de les afficher et de les placer dans une base de donn\u00e9es MySQL . Notre base de donn\u00e9es est compos\u00e9es de tuples (lignes) et d&rsquo;attributs (colonnes) permettant d\u2019enregistrer et de retrouver ais\u00e9ment l&rsquo;information recherch\u00e9e par l&rsquo;utilisateur c&rsquo;est-\u00e0-dire le spirulinier. On utilise phpMyAdmin pour visualiser rapidement l&rsquo;\u00e9tat de notre base de donn\u00e9es (Figure 2). Il nous permet \u00e9galement de la modifier sans avoir \u00e0 \u00e9crire de requ\u00eates SQL comme d\u00e9crite pr\u00e9c\u00e9demment. Ceci simplifie le processus. En outre, il poss\u00e8de un outil d&rsquo;importation et d&rsquo;exportation des tables qui nous permettra par la suite d&rsquo;acc\u00e9der \u00e0 notre base de donn\u00e9es sur Internet lorsque nous mettrons notre site en ligne.<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/06\/CaptureBDD.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-2668 aligncenter\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/06\/CaptureBDD-300x160.jpg\" alt=\"CaptureBDD\" width=\"300\" height=\"160\" \/><\/a><\/p>\n<p align=\"center\"><span style=\"color: #000000;\"><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"><i>Figure 2: Capture d&rsquo;\u00e9cran de notre base de donn\u00e9es<\/i><\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"><b>Un site web\u00a0:<\/b><\/span><\/p>\n<\/li>\n<\/ul>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"> Pour cr\u00e9er notre site web, nous utilisons le langage PHP. Cependant, le PHP ne permet pas de g\u00e9rer le contenu de la page web autrement dit sa mise en page. On leur associe alors g\u00e9n\u00e9ralement le langage CSS pour combler cette lacune (Figure 3).<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Nous avons besoin d\u2019un site web dynamique qui doit afficher de nouvelles donn\u00e9es toutes les heures. Les principaux outils que nous utilisons sont donc :<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\">\u2013 <span style=\"font-family: Arial,sans-serif;\">le serveur web Apache ;<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\">\u2013 <span style=\"font-family: Arial,sans-serif;\">le programme PHP qui permet au serveur web d&rsquo;ex\u00e9cuter des pages PHP ;<\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"color: #000000;\">\u2013 <span style=\"font-family: Arial,sans-serif;\">la navigateur qui affiche la page sous forme de fichier HTML.<\/span><\/span><\/p>\n<p lang=\"fr-FR\" style=\"text-align: center;\" align=\"justify\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/06\/CaptureSite.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2669\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/06\/CaptureSite-300x142.jpg\" alt=\"CaptureSite\" width=\"300\" height=\"142\" \/><\/a><\/p>\n<p align=\"center\"><span style=\"color: #000000;\"><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\"><i>Figure 3 : Capture d&rsquo;\u00e9cran de l&rsquo;affichage du journal de bord sur notre site web<\/i><\/span><\/span><\/span><\/p>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\"><span style=\"font-size: large;\"><b>Perspective d&rsquo;am\u00e9lioration\u00a0:<\/b><\/span><\/span><\/p>\n<ul>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Int\u00e9grer d&rsquo;autres capteurs au dispositif existant (couleur, niveau d&rsquo;eau\u2026).<\/span><\/p>\n<\/li>\n<li>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Ajouter un Syst\u00e8me d&rsquo;alerte.<\/span><\/p>\n<\/li>\n<li>\n<p class=\"en-t\u00eate\"><span style=\"font-family: Arial,sans-serif;\"><span lang=\"fr-FR\">Cr\u00e9er une nouvelle fonction d&rsquo;actions directes sur le milieu (r\u00e9gulation \u00e0 distances des param\u00e8tres).<\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p lang=\"fr-FR\" align=\"justify\"><span style=\"font-family: Arial,sans-serif;\">Fichier zip des codes utilis\u00e9s :<br \/>\n<\/span><\/p>\n<p><span style=\"font-family: Arial,sans-serif;\"><span style=\"font-size: large;\"><b><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/06\/Code_Arduino-Python.zip\">Code_Arduino+Python<\/a><\/b><\/span><\/span><\/p>\n","protected":false},"author":1,"featured_media":2669,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"categories":[15,20],"type_projet":[],"class_list":["post-2650","projet","type-projet","status-publish","has-post-thumbnail","hentry","category-formation","category-projets"],"acf":{"objectifs":"","categorie":false,"fichiers_associes":null},"_links":{"self":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/2650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet"}],"about":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/types\/projet"}],"author":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/2650\/revisions"}],"predecessor-version":[{"id":10515,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/2650\/revisions\/10515"}],"wp:attachment":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/media?parent=2650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/categories?post=2650"},{"taxonomy":"type_projet","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/type_projet?post=2650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}