Outils pour utilisateurs

Outils du site


Panneau latéral

Accueil

Select other language :


Apprentissage

Enseignements

Enseignements Département Informatique SI5 et Master IFI

Enseignements Département Bâtiment Polytech'Nice

Autres Formations française et étrangère

Activités administratives, Ingénierie et Innovation Pédagogiques

Apprentissage Département Informatique SI5/Master 2 ingénierie informatique EUR DS4H


Recherche

Valorisation de la Recherche

Dépôts Logiciels à l’Agence de Protection des Programme (APP)

Valorisation des résultats de recherche et transfert

Diffusion de la Culture scientifique et Technologique

Communications de presse

Séminaire ENSI Tunis

Pédagogie Innovante

Relations industrielles et socio-économique

Organisation de Manifestations

  • Conférence sur les FabLabs, Alexandre Schneider, Professeur Agrégé en Génie Mécanique, Université de Reims Champagne-Ardenne Web
  • Journées UbiMob'14 Site Web

Animation de la Recherche

U-Santé

Privé

Outils

Sources d'Informations

cours:oc:gr5_16_17:gr5_16_17

Epine

Nom : Epine - Le Hérisson de Jardin Connecté

Groupe:

  • Stackler, Mathieu, mathieu.stackler@etu.unice.fr, IAM
  • Laborde, Quentin, qlaborde@polytech.unice.fr, IAM
  • Bin Sabari, Shafiq Daniel, bs200009@etu.unice.fr, IAM

Design

Scénario

Bob est un commercial de 45 ans. Il travaille énormément et n’a pas toujours le temps de s’occuper de son jardin. Un jour, son fils lui a acheté Epine, un hérisson connecté permettant d’obtenir des informations pratiques pour son jardin. En effet, une fois Epine planté dans le sol, il peut récolter des informations sur la luminosité, l’humidité de la terre, la hauteur de l’herbe. Ainsi ce dernier peut envoyer une notification à Bob lui disant que c’est le meilleur moment pour arroser si l’humidité de la terre est faible, que de la pluie n’est pas annoncée (API Météo) et baromètre ainsi que la luminosité. Il envoie également une notification si l’herbe est trop haute.

Équipements TIC

Produit Plateforme Input Prix unitaire (TTC) Nombre de pièces Référence SeeedStudio Référence GoTronic Référence
Raspberry Pi 2 / /39,50 (en stock) 1 https://www.seeedstudio.com/Raspberry-Pi-2-Model-B-RS-Version-p-2490.html / /
Carte SD 8goRaspberry /19,95 (en stock)1 / http://www.gotronic.fr/art-carte-sd-8-gb-noobs-1-4-ada1583-21564.htmADA1583
GrovePi//23.99 (en stock)1https://www.seeedstudio.com/GrovePi-p-1672.htmlhttp://www.gotronic.fr/art-module-grovepi-103010002-23075.htm103010002
Clef Wi-fiRaspberry USB13,30 (en stock)1/http://www.gotronic.fr/art-module-usb-wifi-pour-raspberry-19662.htm/
Capteur de luminositéGrovePiA3,301https://www.seeedstudio.com/Grove---Light-Sensor-%28P%29-v1.1-p-2693.htmlhttp://www.gotronic.fr/art-detecteur-de-lumiere-grove-101020014-18970.htm101020014
Capteur de distanceGrovePiD6,501https://www.seeedstudio.com/Grove---IR-Distance-Interrupter-p-1278.htmlhttp://www.gotronic.fr/art-detecteur-de-distance-ir-grove-101020040-18973.htm101020040
Capteur d’humidité de la terreGrovePiA5,401https://www.seeedstudio.com/Grove---Moisture-Sensor-p-955.htmlhttp://www.gotronic.fr/art-capteur-d-humidite-grove-101020008-18962.htm 101020008
Capteur d'humidité + températureGrovePiA6,501https://www.seeedstudio.com/Grove-Temp%26Humi-Sensor-p-745.htmlhttp://www.gotronic.fr/art-capteur-d-humidite-et-de-t-grove-101020011-18963.htm 101020011
Baromètre GrovePiI2C15,401https://www.seeedstudio.com/Grove-Barometer-Sensor-p-1199.htmlhttp://www.gotronic.fr/art-module-barometre-grove-101020032-18953.htm 101020032
Total capteurs 37.10 5
Total 133.84 9

Services TIC & API

Récoltes de données

  • Hauteur de l'herbe
  • Pression atmosphérique
  • Humidité de la terre
  • Température
  • Humidité ambiante

Utilisation des données

  • Envoie une notification si c’est l’heure d’arroser
  • Envoie une notification si l’herbe est trop haute

Données paramétrables

  • Réglage de la hauteur d’herbe désirée

Schéma de connexion

Description des différents éléments :

  • Orchestrateur : c'est le cœur de notre système, c'est lui qui récupère les informations de chaque serveur et qui les envoie aux serveurs qui en ont besoin.
  • Serveur hérisson : notre objet contenant les capteurs, utilisation de REST pour l'envoie des données avec l'orchestrateur car besoin d'envoyer les données une fois toutes les heures seulement.
  • Serveur météo : utilisation de l'API OpenWeatherMap permettant d'avoir des données météorologiques à un endroit donné (ici avec longitude/latitude).
  • Serveur algorithme : c'est lui qui récupère les données du serveur hérisson et du serveur météo et qui fait les calculs pour répondre à nos services : “quand faut-il arroser ?” et “faut-il couper l'herbe ?”.
  • Serveur IHM : permet de créer une web app utilisable par l'utilisateur.
  • Serveur communication : dialogue avec l'utilisateur, via SMS.

Enveloppe de l'Objet 3D

Croquis

Emplacement Matériel et Connectique

La Raspberry Pi, la Grove Pi, la clef Wi-Fi et la batterie sont situés dans le corps du hérisson dans une boite étanche avec une ouverture étanche sur l’un des côté pour pouvoir rechercher la batterie (ouverture assez large pour débrancher la batterie de la Raspberry et la brancher sur une source externe).

Pour les capteurs :

  • Capteur d’humidité de la terre situé sous le hérisson (présence d’une partie conique sous le hérisson permettant de le planter dans le sol et de mettre ce capteur).
  • Capteur de luminosité situé sur son dos (extrusion d'un côté de l'hérisson) + vitre pour protéger
  • Capteur de distance situé sur le côté (extrusion d’un côté de l’hérisson)
  • Capteur de température situé dans la queue du hérisson

Prototype

/!\ N'ayant pas eu notre modèle 3D à temps, nous avons utilisé une Coccinelle comme coque /!\

Modèle 3D

Pour ce projet, nous voulons créer un modèle de la forme d'un hérisson. Pour cela, nous allons créer deux coques:

-une boîte étanche (dimensions : 130x80x60)

  • 4 trous pour les capteurs (dimensions : 15×10) (voir croquis)
  • une partie ouvrable à l'arrière (rechargement de la batterie, changement de matériel défectueux) qui reste étanche.

-une coque en forme de hérisson en ABS (dimensions : environ 200x100x80) (voir croquis)

  • petite boîte étanche pour le capteur de luminosité (dimensions : 30x30x15) (voir croquis).
  • une partie ouvrable à l'arrière permettant d'accéder à la partie ouvrable de la boîte étanche

- une partie conique creuse (voir croquis)

- une partie correspondant à la queue du Hérisson (dimensions : 40x20x20). Cette pièce doit être percée avant de laisser passer l'air (capteur de pression/température à l'intérieur).

Lien Google Drive pour la modèle 3D: Coque 3D

Pour toutes questions, n'hésitez pas à nous envoyer un mail.

Rendu Final

Code du projet (Sources et Binaires)

WComp

Le Code Sources et les dll : wcomp_sources_et_dll_.zip

Serveur UPNP sur raspbian

Le Code Sources python : serveur_upnp_sur_raspbian.zip

Interface Utilisateur (Serveur RESTful)

Environnement Hard/Soft

  • WComp : SharpDevelop avec l'extentions WComp (sur Windows)
  • Interface Utilisateur : Interpréteur Python (sur Ubuntu ou mac)
  • Serveur UPNP sur raspbian (sur l'objet) : Connexion SSH avec la Raspberry + interpréteur Python

How To

WComp (sur windows)

Installation et lancement

Pour utiliser notre composition wcomp sur sharkDevelop :

→ Inclure tout les beans disponible ci-dessus :

  1. Newtonsoft.Json.dll dans le dossier SharpDevelop/3.0/Beans (dans l'installation de SharpDevelop)
  2. Le reste des beans dans Documents/WComp.NET/Beans (le dossier WComp.NET créer à l'installation de SharpDevelop)

→ Ouvrir un nouveau container dans l'IDE, importer le fichier testBean23.wcc (dernière version stable).

(Si des dépendances ne marchent pas, vérifier bien que vous avez tous les beans aux bons endroits)

La composition :

Utilisation et paramétrage

La composition à 6 parties interconnectées :

  1. Le bean Epine qui interagie avec le service UPNP de notre objet (A gauche au centre)
    1. The_smart_epine.UPnP2Bean
  2. L'affichage des events de l'objet (A gauche en haut)
  3. Les textboxs pour modifier certains paramètres (A gauche en bas)
  4. Une partie Orchestrateur (Au centre)
    1. UpDateValeurBoolCapteur
    2. UpDateValeurDoubleCapteur
    3. VerificationStatusJardin
  5. Une partie serveur de calcul (A droite en haut)
    1. serveurAlgo
  6. Les interfaces avec les API autre que l'objet (A droite en bas)
    1. ClientInterface (connection avec le serveur RESTful)
    2. MessagingBean (API mail)
    3. Weather (API météo)

La partie 3 permet de choisir :

  • URI de l'objet : l'IP et le port utilisé par l'objet avec Device Spy (le port est fixé dans le code).
  • L'adresse mail de l'utilisateur : l'adresse à laquelle est envoyé les informations sur le jardin.
  • URL de l'interface (à travers un service RESTful) : l'IP de la machine où s’exécute le serveur RESTful python.

Problèmes courants

- Si l'objet se déconnecte du réseau, il faut réimporter la composition pour de nouveau se connecté avec l'objet.

Serveur UPNP sur raspbian (sur l'objet)

1a. Démarrage depuis la carte SD fournie:

  • Être sur le réseau de l'Ubiquarium ou se connecter par Ethernet
  • Connexion avec nom utilisateur: pi et le mot de passe : epine
    • Par exemple avec ssh:
      ssh pi@epine.local
  • Aller dans le dossier upnp : cd upnp
  • Brancher les capteurs (voir partie 2)
  • Lancer le fichier “epine.py” :
    sudo python epine.py

1b. Démarrage sans la carte SD:

  • Installer Grove Pi : git clone https://github.com/DexterInd/GrovePi.git
  • Copier le dossier upnp sur la raspberry : scp -rp chemin_vers_upnp/upnp pi@nom.local:~
  • Aller dans upnp : cd upnp
  • Brancher les capteurs (voir partie 2)
  • Lancer le service :
    sudo python grovepi.py

2. Branchement des capteurs:

  • Capteur tempétature et humidité: branché sur le port D4
  • Capteur de distance: branché sur le port D3
  • Capteur luminosité: branché sur le port A0
  • Capteur humidité de la terre: branché sur le port A1
  • Capteur de pression: branché sur un des ports I2C

Interface Utilisateur (Serveur RESTful)

Afin d'avoir l'accès au interface web de l'Epine, il faut démarrer le serveur REST de l'interface en suivant la consigne de README dans le dossier EpineRest, puis en allant sur <adresse IP serveur>:5000 dans un navigateur web.

cours/oc/gr5_16_17/gr5_16_17.txt · Dernière modification: 2017/02/19 13:59 par sbinsabari