Résumé :
Afin de faciliter la supervision de la culture de la spiruline, nous avons développé un système de capteurs mesurant la température, la luminosité et l’humidité de la serre ainsi que la température, la turbidité et le pH de l’eau des bassins de culture. Il permet de récupérer et de stocker ces mesures et de les afficher sur un écran grâce à un site web.
Objectifs :
Pour simplifier la surveillance de la culture nous nous proposons de :
-
Faciliter le remplissage du journal de bord pour le spirulinier.
-
Automatiser le relevé des mesures.
-
Permettre la supervision à distance de la culture.
-
Avoir un budget inférieur à 250 €.
Développement technique :
Comme on peut le voir sur le schéma de la figure 1, notre système est décomposable en quatre sous parties :
– Un regroupement de 5 capteurs lié à un premier Arduino afin de collecter les données environnementales ;
– Une communication sans fil via une liaison radio pour permettre une certaine mobilité des capteurs ;
– Une base de données qui stocke toutes les mesures réalisées par les capteurs depuis leur mise en service ;
– Un site web permettant la consultation et l’édition du journal de bord du spirulinier ainsi que la visualisation graphique de l’évolution des mesures au cours du temps.
Matériel |
– 2 Arduino UNO avec les câbles USB pour connecter avec l’ordinateur ; |
– Un sonde PH Smecatronix DF028 ; |
– Un sonde de température étanche DS18B20 ; |
– Un capteur lumière TSL2561 ; |
– Un capteur de température ( dans l’air ) et humidité RHT03(DHT22) ; |
– Un capteur de turbidité que nous avons fabriqué à l’aide d’une photorésistance, d’une résistance de 1,16KOhm et d’une LED; |
– Un transmetteur FS1000A ; |
– Un récepteur XY-FST ; |
– 3 résistances : 2 de 4.7kOhm. |
- Un système de 5 capteurs :
Un capteur de température et d’humidité. Sa référence est RHT03 (DHT22). Il existe de nombreux tutoriels sur internet qui nous permettent de bien apprendre à l’utiliser. Il est cependant nécessaire d’installer la bibliothèque DHT.
Un capteur de température étanche dont la référence est DS18B20.
Une sonde pour mesurer le pH de référence Smecatronix DF028.
Un capteur de luminosité TSL2561. Nous avons réussi comme précédemment à trouver des montages et des codes pour les faire fonctionner. Si nécessaire, il faut aussi installer la bibliothèque pour le capteur.
Enfin, nous avons associé tous les capteurs. Nous avons également rassemblé les différents codes pour faire fonctionner notre système sur l’Arduino.
Notre principal défi a été de créer par nous même un capteur de turbidité. La difficulté réside dans le fait que ce capteur n’existe pas pour le moment. Mme Ménard nous a montré comment elle évaluait la turbidité avec un disque de Secchi. Cette mesure n’est pas très précise, elle est faite pour évaluer en gros la turbidité. C’est pourquoi pour ce capteur nous avons décidé d’utiliser une photorésistance plutôt qu’un capteur de luminosité plus précis. Face à cette photorésistance nous avons fixé une LED qui s’allume à intervalle régulier quand la photorésistance prend des valeurs. La structure ainsi créé est étanchéifiée grâce à du film plastique. On la place alors dans le bassin. Plus l’eau est trouble plus elle absorbe la lumière donc plus la valeur renvoyée par la photorésistance. On peut ainsi estimer la turbidité de l’eau.
-
Une transmission radio :
Notre cliente souhaite une communication sans fil entre les capteurs collectant les résultats des mesures et le lieu où ceux-ci sont stockés puis analysés. Pour ce faire, nous avons opté pour l’utilisation d’une liaison radio. Nous travaillons avec les modules radio FS1000A/XY-FST RF, émetteur et récepteur, utilisant la fréquence 433 MHz (cf figure 6). Ceux-ci sont peu chers et facile d’utilisation.
Nous avons utilisé la librairie VirtualWire, disponible en téléchargement libre sur internet, où les fonctions prennent en compte cette faille et introduisent de la redondance dans leur code. Par précaution, nous avons introduit dans notre propre code une méthode semblable à celle du bit de parité. En effet, lorsque le transmetteur envoie des données, il envoie également leur somme. Le récepteur, quant à lui, reçoit les données, en fait la somme et compare celle-ci à la somme reçue (celle qui a été envoyé par l’émetteur). Si les sommes sont différentes, c’est qu’il y a probablement eu une erreur dans la transmission donc le récepteur refuse les données. Elles ne seront pas enregistrées dans la base de données. Cependant, cette méthode ne nous permet pas d’identifier l’erreur ni de la corriger. Elle peut donc être améliorée.
-
Une base de données persistante :
Pour récupérer les données reçues par l’Arduino et les mettre dans une base de données, nous avons utilisé le langage de programmation Python. En effet, son utilisation est simple et les ressources sont nombreuses sur internet pour nous aider à implémenter un code nous permettant de récupérer les informations sur l’ordinateur, de les afficher et de les placer dans une base de données MySQL . Notre base de données est composées de tuples (lignes) et d’attributs (colonnes) permettant d’enregistrer et de retrouver aisément l’information recherchée par l’utilisateur c’est-à-dire le spirulinier. On utilise phpMyAdmin pour visualiser rapidement l’état de notre base de données (Figure 2). Il nous permet également de la modifier sans avoir à écrire de requêtes SQL comme décrite précédemment. Ceci simplifie le processus. En outre, il possède un outil d’importation et d’exportation des tables qui nous permettra par la suite d’accéder à notre base de données sur Internet lorsque nous mettrons notre site en ligne.
Figure 2: Capture d’écran de notre base de données
-
Un site web :
Pour créer notre site web, nous utilisons le langage PHP. Cependant, le PHP ne permet pas de gérer le contenu de la page web autrement dit sa mise en page. On leur associe alors généralement le langage CSS pour combler cette lacune (Figure 3).
Nous avons besoin d’un site web dynamique qui doit afficher de nouvelles données toutes les heures. Les principaux outils que nous utilisons sont donc :
– le serveur web Apache ;
– le programme PHP qui permet au serveur web d’exécuter des pages PHP ;
– la navigateur qui affiche la page sous forme de fichier HTML.
Figure 3 : Capture d’écran de l’affichage du journal de bord sur notre site web
Perspective d’amélioration :
-
Intégrer d’autres capteurs au dispositif existant (couleur, niveau d’eau…).
-
Ajouter un Système d’alerte.
-
Créer une nouvelle fonction d’actions directes sur le milieu (régulation à distances des paramètres).
Fichier zip des codes utilisés :
salut a tous,
Je suis a la recherche de développeur pour un projet opensource similaire, Nous somme déjà 3 sur ce projet.
Ce projet consiste a rendre accessible aux plus novices les fonctionnalités du rapberry pi et arduino combinés dans le but de gérer des systêmes domotiques annexes tel qu’une ruche, un jardin, un aquarium, une cave a vin, une champignonnière, un terrarium, une serre, enfin presque tout enfaite.
Une interface graphique seras accessible depuis partout. Un systême de scénarios configurable permettra la régulation ainsi que l’alerte mail et sms du systême.
Le But étant de pouvoir partager depuis un site communautaire des données créer par la communauté dans un esprit de DRY (don’t repeat yourself), pour éviter que chacun écrive sont petit morceau de code dans sont coin alors qu’il pourrais le rendre accessible a toute une communauté. Quel gains de temps pour toute une communauté!!!.
n’hésitez pas à nous rejoindre, on ne mort pas lol!!! les projets open sources ont besoin de vous!!
https://ardui-farm.sonetin.com/
Notre ONG est crée pour luter contre la dénutrition en Colombie, (chaque jour des enfant et adulte meurs de faim ici hélas ). Je ne suis pas programmateur mais je peut monter et trouver sur place tout le materiel . Donc si une personne a l’âme charitable peut nous aider a développer cette base ce serait génial… merci d’avance pour notre Fondation
je doit pouvoir gérée la culture de 8 bassins et j’ai penser que mettre des Arduino par bassin serait la solution.
je doit mesurée deux fois par jour les élément suivant;
PH, Température de l’eau, Température aire, niveau d’eau, Opacité ou plus exactement concentration algue (disque se selchi), ensoleillement, Salinité. Conjointement je doit pouvoir Contrôler que le brassage fonctionne bien et régler la fréquence de brasage (4h et arrêt 20mn), et pour finir le pilotage de 4 vannes avec compteur de débit pour; Eau d’apport, Purge ver extraction, Apport aliment liquide, Apport en CO2.
Lecture et contrôle a distance;
l’idée est que cette culture puisse ce contrôler via internet , chaque Arduino peuvent recevoir un câble RJ 45 pour regrouper ceci sur mon PC labo, Mais le contrôle doit ce faire sur une page HTML de cette façon si je suis en déplacement je peux aider les operateurs a distance et avoir des alarme en cas de problème de culture. si j’utilise mon téléphone pour accéder a la page je peut contrôler les vannes d’aliment si besoin etc….