Système pour plante connecté : Différence entre versions

De Wiki d'activités IMA
(Codes)
 
(21 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
__TOC__
 
__TOC__
 
<br style="clear: both;"/>
 
<br style="clear: both;"/>
 +
 +
== Poster ==
 +
 +
[[Fichier:Poster_IOT_Casier_Charnet_2.png|1200px|]]
 +
  
 
==Contexte & Présentation générale du projet==  
 
==Contexte & Présentation générale du projet==  
  
Le projet se base sur un constat simple : certaines personnes ne savent pas réellement s'occuper d'une plante, que ce soit en pot, ou en terre. L'idée ce projet est de réaliser un système qui mesurerait des éléments essentiels de l'environnement d'une plante et les comparerait à une "base de données". L'utilisateur pourrait alors consulter ces données et serait informé si une de composantes n'est pas dans la plage correspondante à la plante.
+
Le projet se base sur un constat simple : certaines personnes ne savent pas réellement s'occuper d'une plante, que ce soit en pot, ou en terre. L'idée ce projet est de réaliser un système qui mesurerait des éléments essentiels de l'environnement d'une plante et les comparerait à une "base de données". L'utilisateur pourrait alors consulter ces données et serait informé par e-mail si une de composantes n'est pas dans la plage correspondante à la plante.
 
 
Par exemple, l'ANUBIAS BARTERI ´COIN LEAF´ (famille des Rhizomes) doit être à une température ambiante comprise entre 22°C et 28°C. Si la température extérieure est de 20°C, l'utilisateur est informé (depuis son smartphone ou ordinateur) qu'il doit s'arranger pour modifier la température de l'environnement de la plante.
 
  
 
==Objectif du projet==
 
==Objectif du projet==
Ligne 12 : Ligne 15 :
 
L'objectif de notre projet est de réaliser un système connecté dédié à la surveillance des plantes pour les particuliers.  
 
L'objectif de notre projet est de réaliser un système connecté dédié à la surveillance des plantes pour les particuliers.  
  
Le système mesurera trois éléments essentiels de la plante et de son environnement :
+
Le système mesurera deux éléments essentiels de la plante et de son environnement :
 
* La luminosité perçue par la plante
 
* La luminosité perçue par la plante
* La température ambiante
 
 
* L'humidité dans la terre
 
* L'humidité dans la terre
  
 
==Choix techniques : matériel et logiciel==
 
==Choix techniques : matériel et logiciel==
  
* Capteur d'humidité & luminosité : Chirp! The Plant Watering Alarm (OK)
+
* Capteur d'humidité & luminosité : Chirp! The Plant Watering Alarm <span style="color:green">(Ok, reçu)</span>
* Microcontrôleur & communication Wifi : Adafruit HUZZAH ESP8266 (OK)
+
* Microcontrôleur & communication Wifi : Adafruit HUZZAH ESP8266 <span style="color:green">(Ok, reçu)</span>
* Capteur de température : TMP36 (OK)
+
* Capteur de température : TMP36 <span style="color:green">(Ok, reçu)</span> (Non utilisé)
* Alimentation : A définir
+
* Alimentation : Batterie 
  
=== Architecture matérielle (provisoire au 05/01) ===
+
=== Architecture matérielle ===
  
 
[[Fichier:Architecture_materielle_provisoire.PNG]]
 
[[Fichier:Architecture_materielle_provisoire.PNG]]
  
=== Capteur de température (TMP36) ===
 
  
Le montage utilisé pour le capteur est le suivant :
+
=== Acquisition des données du capteur ===
 +
 
 +
Le microcontrôleur ESP8266 va lire les registres du microcontrôleur de chirp! afin de récupérer les données des capteurs (luminosité & humidité).
 +
 
 +
Il s'agit d'une connexion I2C.
  
[[Fichier:iot2017_TMP36.PNG|300px|]]
+
=== Envoi des données au serveur ===
 +
 
 +
Un serveur MQTT (Mosquitto) est installé sur un PC (sous linux). Il se lance au démarrage du PC et gère la connexion entre le microcontrôleur ESP8266 et l'application Python (IHM utilisateur) du PC.
 +
 
 +
Le code sur l'ESP8266 est un publisher MQTT et l'application Python est un subscriber MQTT. Le microcontrôleur publie donc les données sur le serveur, qui les communiquera à l'application.
 +
 
 +
=== Affichage des données en temps réel ===
 +
 
 +
Une application Python a été développée pour permettre à l'utilisateur de consulter à chaque instant les niveaux d'humidité et de luminosité perçus par la plante.
 +
 
 +
Les seuils de déclenchement d'envoi de mails sont visualisables directement sur le graphique.
 +
 
 +
=== Envoi de mails ===
 +
 
 +
Le système Internet Of Plants possède sa propre adresse e-mail : internetofplant@gmail.com
 +
 
 +
Grâce au serveur smtp.gmail.com, le système peut donc envoyer des e-mails à l'utilisateur lorsque les niveaux de luminosité et d'humidité sont sous les seuils tolérables.
 +
 
 +
Pour ne pas "spammer" l'utilisateur d'e-mails si celui ci maltraite ses plantes domestiques,
 +
 
 +
* Pour la luminosité, l'envoi d'e-mails est paramétré sur un front descendant
 +
* Pour l'humidité, l'utilisateur peut choisir la fréquence d'envoi des e-mails (uniquement si la mesure est en dessous du seuil)
 +
 
 +
== Avancée du travail ==
 +
 
 +
=== Séance n°1 (06/01/2017) ===
 +
 
 +
* Choix du sujet
 +
* Détail des fonctionnalités
 +
* Etude de l'architecture matérielle
 +
 
 +
=== Séance n°2 (05/01/2017) ===
 +
 
 +
* Documentation pour matériel
 +
* Installation serveur MQTT (mosquitto)
 +
* Flash d'un subscriber MQTT sur l'ESP8266
 +
 
 +
=== Séance n°3 (10/01/2017) ===
 +
 
 +
* Installation capteur de température (câblage & code)
 +
* Première utilisation du capteur d'humidité
 +
* Affichage de la courbe d'humidité sur une application PC en Python
 +
* Paramétrage du RESET du capteur d'humidité
 +
 
 +
=== Séance n°4 (12/01/2017) ===
 +
 
 +
* Test sur le capteur de température & le capteur de luminosité
 +
* Affichage de plusieurs courbes sur l'application
 +
* Paramétrage de l'envoi de mails de l'ESP8266 vers l'adresse mail utilisateur
 +
* Détermination d'un seuil d'humidité pour l'envoi du mail
 +
 
 +
=== Séance n°5 (13/01/2017) ===
 +
 
 +
* Choix de ne pas utiliser de capteur de température
 +
* Envoi des mails OK
 +
* Consultation des graphes en temps réel OK
 +
 
 +
== Résultats du projet ==
 +
 
 +
Les objectifs du projet ont été atteints. Le système "Internet Of Plants" est capable d'envoyer un e-mail à l'utilisateur lorsque le taux d'humidité et la quantité de lumière reçue sont en dessous des seuils acceptables.
 +
 
 +
[[Fichier:Mail_eau_plate.PNG]]
 +
 
 +
L'utilisateur peut également en temps réel accéder aux mesures de luminosité et d'humidité depuis une interface graphique simple et pratique.
 +
 
 +
 
 +
[[Fichier:16128030_1068008039994873_1063996068_n.png]]
  
Le type de package de notre capteur est TO-92
 
  
 
== Base de données pour culture des plantes ==
 
== Base de données pour culture des plantes ==
Ligne 45 : Ligne 115 :
  
 
<!--https://jsutton.co.uk/monitoring-houseplants-with-mqtt-and-the-esp8266/-->
 
<!--https://jsutton.co.uk/monitoring-houseplants-with-mqtt-and-the-esp8266/-->
 +
 +
== Codes ==
 +
 +
La machine qui fait tourner le script pyhton doit faire fonctionner le server Mosquitto.
 +
 +
Server MQTT "Mosquitto" : https://mosquitto.org/download
 +
 +
Codes (script python et programme de l'ESP8266) : [[Média:Codes_InternetOfPlants.zip]]

Version actuelle datée du 23 janvier 2017 à 01:23


Poster

Poster IOT Casier Charnet 2.png


Contexte & Présentation générale du projet

Le projet se base sur un constat simple : certaines personnes ne savent pas réellement s'occuper d'une plante, que ce soit en pot, ou en terre. L'idée ce projet est de réaliser un système qui mesurerait des éléments essentiels de l'environnement d'une plante et les comparerait à une "base de données". L'utilisateur pourrait alors consulter ces données et serait informé par e-mail si une de composantes n'est pas dans la plage correspondante à la plante.

Objectif du projet

L'objectif de notre projet est de réaliser un système connecté dédié à la surveillance des plantes pour les particuliers.

Le système mesurera deux éléments essentiels de la plante et de son environnement :

  • La luminosité perçue par la plante
  • L'humidité dans la terre

Choix techniques : matériel et logiciel

  • Capteur d'humidité & luminosité : Chirp! The Plant Watering Alarm (Ok, reçu)
  • Microcontrôleur & communication Wifi : Adafruit HUZZAH ESP8266 (Ok, reçu)
  • Capteur de température : TMP36 (Ok, reçu) (Non utilisé)
  • Alimentation : Batterie

Architecture matérielle

Architecture materielle provisoire.PNG


Acquisition des données du capteur

Le microcontrôleur ESP8266 va lire les registres du microcontrôleur de chirp! afin de récupérer les données des capteurs (luminosité & humidité).

Il s'agit d'une connexion I2C.

Envoi des données au serveur

Un serveur MQTT (Mosquitto) est installé sur un PC (sous linux). Il se lance au démarrage du PC et gère la connexion entre le microcontrôleur ESP8266 et l'application Python (IHM utilisateur) du PC.

Le code sur l'ESP8266 est un publisher MQTT et l'application Python est un subscriber MQTT. Le microcontrôleur publie donc les données sur le serveur, qui les communiquera à l'application.

Affichage des données en temps réel

Une application Python a été développée pour permettre à l'utilisateur de consulter à chaque instant les niveaux d'humidité et de luminosité perçus par la plante.

Les seuils de déclenchement d'envoi de mails sont visualisables directement sur le graphique.

Envoi de mails

Le système Internet Of Plants possède sa propre adresse e-mail : internetofplant@gmail.com

Grâce au serveur smtp.gmail.com, le système peut donc envoyer des e-mails à l'utilisateur lorsque les niveaux de luminosité et d'humidité sont sous les seuils tolérables.

Pour ne pas "spammer" l'utilisateur d'e-mails si celui ci maltraite ses plantes domestiques,

  • Pour la luminosité, l'envoi d'e-mails est paramétré sur un front descendant
  • Pour l'humidité, l'utilisateur peut choisir la fréquence d'envoi des e-mails (uniquement si la mesure est en dessous du seuil)

Avancée du travail

Séance n°1 (06/01/2017)

  • Choix du sujet
  • Détail des fonctionnalités
  • Etude de l'architecture matérielle

Séance n°2 (05/01/2017)

  • Documentation pour matériel
  • Installation serveur MQTT (mosquitto)
  • Flash d'un subscriber MQTT sur l'ESP8266

Séance n°3 (10/01/2017)

  • Installation capteur de température (câblage & code)
  • Première utilisation du capteur d'humidité
  • Affichage de la courbe d'humidité sur une application PC en Python
  • Paramétrage du RESET du capteur d'humidité

Séance n°4 (12/01/2017)

  • Test sur le capteur de température & le capteur de luminosité
  • Affichage de plusieurs courbes sur l'application
  • Paramétrage de l'envoi de mails de l'ESP8266 vers l'adresse mail utilisateur
  • Détermination d'un seuil d'humidité pour l'envoi du mail

Séance n°5 (13/01/2017)

  • Choix de ne pas utiliser de capteur de température
  • Envoi des mails OK
  • Consultation des graphes en temps réel OK

Résultats du projet

Les objectifs du projet ont été atteints. Le système "Internet Of Plants" est capable d'envoyer un e-mail à l'utilisateur lorsque le taux d'humidité et la quantité de lumière reçue sont en dessous des seuils acceptables.

Mail eau plate.PNG

L'utilisateur peut également en temps réel accéder aux mesures de luminosité et d'humidité depuis une interface graphique simple et pratique.


16128030 1068008039994873 1063996068 n.png


Base de données pour culture des plantes

http://dennerle.com/fr/service/base-de-donnees-des-plantes

Sources et liens utiles

Registres I2C : https://github.com/Miceuz/i2c-moisture-sensor


Codes

La machine qui fait tourner le script pyhton doit faire fonctionner le server Mosquitto.

Server MQTT "Mosquitto" : https://mosquitto.org/download

Codes (script python et programme de l'ESP8266) : Média:Codes_InternetOfPlants.zip