Terrarium pour dendrobate connecté : Différence entre versions
(→Conclusion) |
(→Implémentation du système réactif) |
||
(5 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 247 : | Ligne 247 : | ||
* Des récepteurs pour les actionneurs et l’affichage (une carte arduino + shield ethernet + actionneur ou afficheur). | * Des récepteurs pour les actionneurs et l’affichage (une carte arduino + shield ethernet + actionneur ou afficheur). | ||
− | [Fichier:DemoMQTT.png|Schéma de principe de l’architecture du système]] | + | [[Fichier:DemoMQTT.png|Schéma de principe de l’architecture du système]] |
Le code des émetteurs et des récepteurs se trouve sur mon github : [https://github.com/carole-laitong/InternetOfFrogs] | Le code des émetteurs et des récepteurs se trouve sur mon github : [https://github.com/carole-laitong/InternetOfFrogs] | ||
− | L’interconnexion logicielle se fait grace au logiciel NodeRed qu'il faut installer sur le Raspberry Pi. | + | L’interconnexion logicielle se fait grace au logiciel [[Mettre en oeuvre NodeRed sur un Raspberry Pi|NodeRed]] qu'il faut installer sur le Raspberry Pi. |
== Conclusion == | == Conclusion == | ||
Ce projet est encore à l'état de prototype mais depuis fin aout 2015, il héberge 3 grenouilles dendrobates qui semblent pas malheureuses de leur habitat. | Ce projet est encore à l'état de prototype mais depuis fin aout 2015, il héberge 3 grenouilles dendrobates qui semblent pas malheureuses de leur habitat. | ||
− | [[Fichier:Grenouilles on proto.jpg]] | + | |
+ | [[Fichier:Grenouilles on proto.jpg|640px]] | ||
+ | |||
+ | {{#ev:youtube|PDYvRlWefKQ}} | ||
== Liens == | == Liens == | ||
Ligne 261 : | Ligne 264 : | ||
* [http://www.internet-of-frogs.com/ Site du projet Internet Of Frogs] | * [http://www.internet-of-frogs.com/ Site du projet Internet Of Frogs] | ||
* [https://github.com/carole-laitong/InternetOfFrogs Github du projet] | * [https://github.com/carole-laitong/InternetOfFrogs Github du projet] | ||
+ | |||
+ | == Références == | ||
<references /> | <references /> | ||
Version actuelle en date du 3 janvier 2016 à 16:44
Sommaire
- 1 Présentation
- 2 Contexte du projet
- 3 Présentation du travail réalisé
- 4 Conclusion
- 5 Liens
- 6 Références
Présentation
Ce projet vise à la réalisation d'un prototype de vivarium connecté pour maintenir dans des conditions adaptées des grenouilles dendrobates. Ce projet s'inscrit dans une collaboration entre le L.A.B et la société W4 qui viserait à créer un "vivarium café" interconnectant l'ensemble des terrariums identiques à celui créé. Dans cette page je détaille comment j'ai construit mon prototype de terrarium et détail le système domotique open-source servant de base pour les futurs vivariums connectés.
Ce projet concret nécessitait la mise en oeuvre d’un système complexe mettant en œuvre divers compétences. Ce système comportait à la fois une partie physique (le terrarium), une partie électronique (les capteurs et les actionneurs) et une partie informatique (le code qui mettait tout cela en musique).
La partie électronique s’appuie sur la plateforme open source Arduino. C’est une carte électronique permettant de mettre en oeuvre facilement un microcontrôleur. Ce microcontrôleur peut être programmé pour des tâches diverses telles que la domotique, la gestion des appareils d'une maison.
Le système informatique de régulation s’appuie quant à lui sur un protocole dédié à l’Internet de Objet, inventé par IBM, appelé MQTT. Le logiciel est exécuté sur un nano-ordinateur open-source appelé Raspberry Pi qui a l’avantage d’être peu encombrant (de la taille d’une carte bleue), peu coûteux (environs 30€) et peu énergivore (moins de 5W).
Makeuse/Développeuse | Carole LAI TONG |
Année | 2014-2015 |
Raison sociale | W4 |
Responsable W4 | Anne BERLANCOURT |
Responsable L.A.B | Sébastien NEDJAR |
Mission | Construction d'un prototype de terrarium tropical, développement de programmes de domotique open-source, installation du système de domotique et rédaction de guides d'installation du système et de construction de terrarium |
Plateforme et système | Ordinateur fixe sous Windows 7, GitHub, Arduino |
Outils logiciels et langages | Sublime Text, IDE Arduino, Eclipse, Mosquitto, Grafana, GitHub |
Mots clés | Arduino, embarqué, open-source, domotique, travaux manuels, environnement, terrarium, grenouille |
Contexte du projet
W4 travaille depuis février 2015 à la création d’un laboratoire urbain dédié à l’environnement, en partenariat avec le Laboratoire d’Aix-périmentation et de Bidouille (Fab Lab d’Aix-en-Provence). Ce projet nécessite de développer et mobiliser plusieurs approches et moyens : processus d’innovation, systèmes et techniques, Think Tank, lieux dédiés.
« Si les collectivités territoriales et les services publics peuvent être pionnier et novateurs , ils ont quelquefois du mal à trouver l'espace et le temps nécessaires pour investir dans l'avenir : trop souvent, le système de gestion se concentre sur la performance du système actuel, les mécanismes budgétaires sont fondés sur la continuité historique, et les bureaucraties rejettent l'expérimentation et le changement. De plus en plus, les leaders politiques – notamment à l’étranger, conscients de ces enjeux, créent les structures, les capacités et l'espace nécessaires pour permettre l'innovation. Ces démarches s’appuient toutes sur un mouvement qui s’inspire des connaissances et des pratiques développées dans d'autres domaines et les adapte au service public. En puisant dans les disciplines du design et de l'engagement de l'utilisateur, du prototypage, de l'innovation ouverte et la collaboration intersectorielle, de la mobilisation des données et les savoirs, il est ainsi possible de faire émerger de nouveaux type de gouvernance » (extrait d’un texte rédigé par W4). »
Le projet Internet-Of-Frog est né d'une collaboration entre W4 et le LAB. En termes d’entreprise, il a plusieurs objectifs :
- Renforcer le partenariat LAB/W4 par la mise en commun de ressources et la co-fabrication ;
- Tester des approches de prototypage et d’innovation ouverte mobilisant des expertises variées : consultants, développeurs, makers, artistes ;
- Concevoir un lieu un lieu d’échange favorisant les frottements créatifs entre le monde de l’entreprise, de l’art et du design, des geeks et makers (Le vivarium cafe). Ce lieu sera partie intégrante du futur laboratoire urbain.
Voici comment W4 décrit la vision artistique du projet : «Nous imaginons un espace de détente et d’échanges organisé autour d’une installation interactive de terrariums peuplés de grenouilles tropicales. L’espace lui-même est conçu comme un environnement immersif, où plantes, niches, ambiance sonore et effets de lumières font écho aux terrariums, créant ainsi un jeu d’échelle propre à l’évasion et à la contemplation. La créativité naît du frottement dynamique entre disciplines, cultures, idées : la cohérence née du contraste entre éléments géométriques et exubérance luxuriante qui structure le lieu en est un rappel. Ce contraste est prolongé par l’utilisation du digital, qui est à la fois élément de fonctionnement des écosystèmes imbriqués et vecteur d’interaction avec le monde extérieur. Jeux et complexité d’échelles, harmonie née des contrastes, inter-relations entre structures, vie et virtuel : miroir du territoire urbain, l’espace est aussi une réflexion sur le rapport entre le lieu, les émotions, le fonctionnement des communautés et les processus créatifs. Il s’inscrit et prolonge une initiative plus large visant à la création d’un lieu dédié à la co-fabrication public/entreprises/citoyens des politiques environnementales.»
Présentation du travail réalisé
L’objectif principal du projet est de réaliser un prototype de terrarium connecté et son système de domotique. La réalisation s’est déroulé en plusieurs phases très différentes les unes des autres.
Matériel et outils logiciels
MQTT (Message Queuing Telemetry Transport) est un protocole open-source de messagerie léger basé sur le protocole TCP/IP. Le principe de fonctionnement de ce protocole est basé sur un mécanisme de publication/souscription de messages dans lequel les émetteurs (publisher, littéralement : éditeurs) ne destinent pas a priori les messages à des destinataires (subscriber, littéralement : abonné).
Dans le monde réel, de nombreux projets mettent en œuvre MQTT :
- Facebook Messenger : Facebook a utilisé des aspects de MQTT dans Facebook Messenger.
- La dernière version du système de contrôle de signalisation de IECC Scalable DeltaRail utilise MQTT pour les communications entre les différentes parties du système et les composants du système de signalisation.
Son mode de fonctionnement créant un couplage faible entre les émetteurs et les receveurs en font un standard potentiel pour interopérabilité de l’Internet des Objets.
Mosquitto est un serveur léger implémentant le protocole MQTT. Il est codé en C pour pouvoir être utilisé par des machines peu puissantes ne pouvant pas faire tourner de JVM (Java Virtual Machine) tels que des capteurs et des actionneurs, la cible principale du protocole MQTT.
InfluxDB est une base de données temporelle, c’est à dire que son modèle de données intègre la notion du temps et qu’elle facilite grandement les requêtes SQL incluant cette grandeur. Les calculs complexes (moyenne, etc…) sur une période définie sont bien plus performants qu’avec une base de données classique.
Grafana est une solution libre permettant de réaliser des tableaux de bords depuis des métriques extraites de bases de données temporelles comme InfluxDB.
Arduino est une carte électronique libre (les plans de la carte elle-même sont publiés en licence libre) sur lequel se trouve un microcontrôleur qui peut être programmé pour analyser et produire des signaux électriques, de manière à effectuer des tâches très diverses comme la domotique, le pilotage d'un robot, des installations interactives, etc. C'est une plateforme basée sur une interface entrée/sortie simple. Il était destiné à l'origine principalement mais pas exclusivement à la programmation multimédia interactive en vue de spectacle ou d'animations artistiques.
Arduino peut être utilisé pour construire des objets interactifs indépendants (prototypage rapide), ou bien peut être connecté à un ordinateur pour communiquer avec ses logiciels.
Il doit une grande partie de son succès à son accessibilité, son ouverture et à son prix raisonnable. L’IDE (Environnement de Développement Intégré) fournit la majorité des fonctionnalités attendues par un débutant.
Le Raspberry Pi est un nano-ordinateur monocarte qui a la taille d'une carte de crédit. Il est destiné à encourager l'apprentissage de la programmation informatique; il permet l'exécution de plusieurs variantes du système d'exploitation libre GNU/Linux et des logiciels compatibles.
Étapes du travail
Le travail est découpé en plusieurs étapes: la recherche documentaire, le choix de solutions techniques et du design du terrarium, la programmation du système de domotique, la réalisation du terrarium et la documentation de mon travail.
Définition des paramètres vitaux idéaux des dendrobates
Le maintien en captivité des grenouilles dendrobates nécessite une reproduction fidèle des conditions environnementales du milieu naturel. Le bien être de l’animal conditionnera grandement la qualité de son maintien et sa durabilité.
Les dendrobates vivent à une température d’environ 24 à 26 °C le jour (2° de moins la nuit); le milieu tropical est très humide: humidité relative de 70 à 80 %. Elles ne doivent pas être exposées à la lumière directe du soleil et nécessitent donc un éclairage artificiel adapté. Un éclairage dont le spectre contient des UVB n’est pas indispensable (contrairement aux reptiles), mais il favorise la croissance des grenouilles et des plantes. Le cycle jour/nuit peut être de 12 et 12 heures mais il est possible de l’inverser par rapport à la longueur du jour (jusqu’à 10/14h). Les changements importants et manipulations sont source de stress chez les animaux et sont donc à éviter.
Les dendrobates nécessitent un abreuvoir. Les points d’eau doivent être peu profond (inférieurs à 2 cm) afin qu’elles ne se noient pas. Pour augmenter l’humidité, il est possible de faire une cascade et/ou un petit bassin avec une pompe pour faire circuler l’eau. Pour éviter les proliférations bactériennes et fongiques, il ne faut pas laisser d’eau stagnante. Il est recommandé d’utiliser de l’eau en bouteille avec une composition minérale adaptée ou de l’eau filtrée pour éliminer le calcaire, les bactéries et les résidus de chlore.
Les parois du terrarium sont en verre pour une meilleure visibilité sous tous les angles. Il est surmonté d'une rampe d'éclairage et d'un aérateur. Toutes les ouvertures doivent être obturées par un grillage assez fin pour ne pas laisser s'enfuir les insectes vivants qui sont la source d'alimentation principale des grenouilles (classiquement des mouches du vinaigre (environ 2mm)).
Le nombre d’individus est à adapter en fonction de la taille du terrarium. Par exemple, dans terrarium moyen de 45 cm de coté, on peut maintenir de un à trois individus.
Fonctionnement du terrarium
Il doit être possible d’aérer, humidifier, chauffer et éclairer l’atmosphère du terrarium pour réguler l'environnement en fonction des besoins de l’écosystème qu’il abrite: des dendrobates, des plantes tropicales et des drosophiles emprisonnées dans une boîte comme nourriture pour les grenouilles.
Principe de fonctionnement
Le système de régulation s'appuiera sur l’architecture matérielle et logicielle du projet DomoduLAB. Les programmes Arduino du projet sont sur mon dossier github InternetOfFrogs (github.com/carole-laitong/InternetOfFrogs).
Cette architecture s’appuie sur le protocole MQTT. Comme indiqué plus haut, ce protocole s’appuie sur un principe de souscription. Chaque acteur souhaitant être notifié d’un événement (ce que l’on nommera récepteurs par la suite) doit s’abonner aux sujets qui l'intéressent. Régulièrement les capteurs publieront des données en les associant à des sujets particuliers. Ces capteurs poussant les données sur ces sujets seront nommé des émetteurs. Dans MQTT, il y a un troisième type d’acteur que l’on nomme le broker. Son rôle est de récupérer les données des émetteurs et de notifier tous les récepteurs qui souhaitent la recevoir.
Régulation de la température
La régulation se base sur un capteur de température et un câble chauffant. Le capteur de température branché sur l'Arduino relève la valeur puis la publie sur un sujet MQTT auquel l’Arduino actionneur approprié est abonné. L’émetteur MQTT est donc l’Arduino capteur, et le récepteur l’actionneur.
Le câble chauffant est un actionneur du type “tout ou rien”: il faudra donc le piloter à travers d’un relais. Un relais, est un composant qui permet de laisser passer le courant ou non grâce à une simple impulsion électrique. Pour simplifier la mise en oeuvre, il est possible d’utiliser un shield[1] relais avec l’Arduino actionneur. Le câble chauffant se situera dans le socle du terrarium.
En cas de température trop élevée, un récepteur connecté à une ventilation mécanique s’activera pour extraire l’air chaud. Si la température de l'atmosphère extérieure est supérieure à 28°, le système de régulation deviendra inopérant. Il faudra donc veiller à positionner le terrarium dans une pièce relativement fraîche.
Régulation de l’humidité
De la même manière que pour le paramètre précédent, la régulation de l’humidité s’appuie sur un capteur dédié et un actionneur. Dans le système proposé, il y aura deux manière d’augmenter l’humidité. On pourra soit utiliser un brumisateur à ultrason pour augmenter rapidement l’humidité, soit activer la cascade pour l’augmenter plus doucement.
Comme pour le câble chauffant, le brumisateur et la pompe seront utilisés comme des actionneurs du type “tout ou rien”. Ils seront donc eux aussi pilotés à travers des relais. Pour disperser la brume produite par le brumisateur à ultrason, il sera couplé à une ventilation mécanique de faible intensité (type ventilateur d’ordinateur).
Comme pour la température, la ventilation mécanique ne pourra être utilisée si l’atmosphère extérieure est trop humide.
Régulation de l’éclairage
Le seul élément de régulation de l’éclairage à ce stade est le temps d’allumage par période de 24h. L’émetteur associé à cette fonction devra donc posséder une horloge RTC (Real Time Clock). Le récepteur qui commandera l’activation de l’éclairage, consultera régulièrement l’horloge pour savoir quand ouvrir ou fermer le circuit.
Comme le câble chauffant, l’éclairage est un actionneur du type “tout ou rien”, il faudra donc le piloter à travers un relais.
Aménagement du terrarium
La problématique de l’aménagement doit répondre à des impératifs autant fonctionnels et techniques qu’esthétiques.
Structure générale
La structure du terrarium se compose de plusieurs éléments :
- Le socle
- Le circuit d’eau
- La réserve d’eau
- La galerie
- L’armoire technique
Le socle
Le socle du terrarium peut être constitué d’un double fond. Cette méthode n’a pas été utilisée pour le prototype et ne sera pas détaillée dans ce document. Le socle créé pour le prototype est un ensemble de plaques de polystyrène. Ces plaques sont recouvertes de mousse expansive découpée selon les formes voulues puis recouvertes de colle à carrelage. Le tout est ensuite recouvert de peinture acrylique marron mat puis de verni approprié (type elastopur). Le tout sera recouvert de 3 à 6cm de substrat imputrescible (exemple: fibre de coco, sphaigne). Il est bien de prévoir des emplacements pour les plantes. S’ils sont sur le côté ou dans la mousse, il faudra que les trous disposent d’un tunnel d’évacuation de l’eau en excès.
Le terrarium doit présenter des ameublements tels que des supports de plantes, des bouts de bois (imputrescibles) et des cachettes. Les dendrobates étant territoriales, plusieurs cachettes sont nécessaires. Les plantes elles-mêmes peuvent servir de cachettes si elles sont assez touffues. Un pot découpé verticalement peut aussi faire l’affaire.
La réserve d’eau
Le bac à eau du prototype est intérieur, donc un espace réservé a été découpé dans un coin du terrarium et recouvert d’un morceau de polystyrène amovible, afin de permettre l’accès à la pompe. Il faudra veiller à ce que le niveau de la réserve reste suffisant.
Le circuit d’eau
Il est possible de construire une cascade et/ou d’aménager un ruisseau. L’eau doit couler vers le réservoir (ou le fond s’il y a un double fond) où elle est filtrée et pompée vers le haut du circuit. Il faudra veiller à ce que des poches d’eau stagnante ne se créent pas. Dans le prototype, l’eau monte directement au-dessus du bac à eau et coule dans un bassin en hauteur
La galerie
La galerie se situe au-dessus du bac. Elle contient la rampe d’éclairage ainsi que l’aérateur et éventuellement certains capteurs. Elle est donc placée au-dessus du couvercle grillagé du terrarium.
L’armoire technique
L’armoire technique est la partie du terrarium où se situeront toutes les cartes électroniques (Principalement des Arduinos et un Raspberry Pi). Elle doit être extérieure au bac principal pour ne pas être soumise à des contraintes environnementales fortes. Il faut prévoir dès le début le câblage des différents capteurs/actionneurs pour ne pas avoir de difficulté de longueur et de passage. L’intégration de cette armoire technique devra prévoir aussi le besoin d’accessibilité pour pouvoir intervenir sur le système après sa mise en fonction. On pourrait imaginer ajouter des afficheurs pour permettre de contrôler l’état du terrarium sans accès à internet.
Développement informatique de la régulation
La problématique de la régulation est la clé du fonctionnement du terrarium. Le système de régulation s'appuie sur l’architecture matérielle et logicielle du projet DomoduLAB. Dans l’implémentation actuelle du système, les différents sous-systèmes sont interconnectés par un réseau IP de type Ethernet.
Événements/actions
Dans le principe, le système doit se comporter comme un système réactif ou chaque actionneur ne pourra être activé qu’en réponse à un événement. Voici la liste des événements et les actions associées que j’ai identifiés pour le prototype :
- La température passe en dessous de la température minimale
- Allumer le chauffage
- La température est convenable
- Éteindre le chauffage
- Éteindre le ventilateur principal et le brumisateur
- La température est trop haute
- Allumer le ventilateur principal et le brumisateur
- L'hygrométrie relative est trop faible
- Allumer le brumisateur et le ventilateur associé
- L'hygrométrie relative est convenable
- Éteindre le brumisateur et le ventilateur associé
- Éteindre le ventilateur principal
- L'hygrométrie relative est trop haute
- Allumer le ventilateur principal
- L’heure de début de période lumineuse est atteinte
- Allumer l’éclairage
- L’heure de fin de période lumineuse est atteinte
- Éteindre l’éclairage
À ces différents événements liés au fonctionnement automatique du vivarium, il faut aussi rajouter une activation/désactivation manuelle pour permettre à l’utilisateur de reprendre la main sur le système lorsqu’il le souhaite.
Implémentation du système réactif
Pour implémenter le système de régulation, le projet s’appuie sur le protocole MQTT. Le principe de fonctionnement de ce protocole est basé sur un mécanisme de publication/souscription de messages dans lequel les émetteurs ne destinent pas a priori les messages à des destinataires. Chaque tiers souhaitant être informé d’un message devra au préalable s’abonner à son émetteurs.
Ce protocole nécessite plusieurs sous systèmes :
- Un Broker pour dispatcher les informations (une carte Raspberry Pi).
- Des émetteurs pour les capteurs (une carte arduino + shield ethernet + capteur).
- Des récepteurs pour les actionneurs et l’affichage (une carte arduino + shield ethernet + actionneur ou afficheur).
Le code des émetteurs et des récepteurs se trouve sur mon github : [1]
L’interconnexion logicielle se fait grace au logiciel NodeRed qu'il faut installer sur le Raspberry Pi.
Conclusion
Ce projet est encore à l'état de prototype mais depuis fin aout 2015, il héberge 3 grenouilles dendrobates qui semblent pas malheureuses de leur habitat.
Liens
Références
- ↑ Dans l’écosystème Arduino, on appelle Shield les cartes additionnelle venant ajouter des fonctionnalités à l’Arduino. Il en existe un panel très large permettant de prototype des systèmes de manière modulaire (comme des Lego).