PILBI-2016-Team1 : Différence entre versions

De fablab
Aller à : navigation, rechercher
m (Livrable)
m (Livrable)
Ligne 136 : Ligne 136 :
 
Tous ces scripts peuvent être récupérés sur [https://github.com/malletgu/domotiqueFablab/tree/master/scripts GitHub]
 
Tous ces scripts peuvent être récupérés sur [https://github.com/malletgu/domotiqueFablab/tree/master/scripts GitHub]
  
= Livrable =  
+
= Livrables =
 +
== Code source ==
 
La partie code du projet peut être retrouvé sur [https://github.com/malletgu/domotiqueFablab GitHub].
 
La partie code du projet peut être retrouvé sur [https://github.com/malletgu/domotiqueFablab GitHub].
 
Les capteurs quant à eux sont fixés de façon permanente dans le Fablab, aux emplacements énoncés plus haut.
 

Version du 19 janvier 2017 à 10:56

Introduction

Membres de l'équipe

  • Valérian BAILLET
  • Matthias BEAUPERE
  • Pierre GRAUX
  • Guillaume MALLET
  • Canelle MICHEL
  • Simon REY

Problématique

Le but de ce projet est de mettre en place un système de sécurité dans le Fablab, permettant de détecter une intrusion éventuelle ainsi que de la notifier à l'administrateur du FabLab.
Cet administrateur disposera d'un application dédiée où il pourra visualiser toute intrusion en temps réel.

Il recevra également un mail d'alerte pour toute intrusion.
Toutes les interactions possibles avec le système sont détaillées dans le cas d'usage plus bas.

Le serveur OpenHab devra tourner sur un rapsberry PI pour que tout nouveau projet puisse se rattacher à un serveur central.

Contraintes

Ce système doit s'intégrer dans un système plus large, englobant les projets des autres équipes. Il faut donc avoir des scripts d'installations pour qu'un serveur soit déployés rapidement sur une machine. Cela permettra aux autres équipes de faire des tests en local avant de déployer leur projet sur le serveur global.

Le réseau wifi a un serveur proxy qui bloque les requêtes http et smtp.


/* à compléter *

Technologies et matériel

Ce projet s'appuie sur trois technologies existantes :

  • Le logiciel OpenHab (logiciel opensource)
  • Un serveur Mosquitto
  • Des capteurs EnOcean : capteur de détection d'ouverture de portes.
  • Raspberry pi


OpenHab

OpenHab est un logiciel open-source qui permet de représenter très facilement une maison intelligente et tous les objets connectés qui s'y trouvent.
Il crée une interface web qui peut être visualisé sur PC, ou mobile de façon simple et pratique en utilisant simplement une URL.

La configuration d'OpenHab se fait de la façon suivante. L'utilisateur commence par renseigner tous les items (capteurs de mouvements, capteurs de portes, etc...) qu'il va utiliser et peut les regrouper en différents groupes. {

|
Items d'un groupe
|
Groupe de capteurs d'ouvertures de portes

}

Les items créés peuvent être des items statiques (pour indiquer un numéro par exemple) ou des items dont la valeur va être modifié au cours du temps (comme les capteurs d'ouverture de portes). La différenciation de ses items se fera dans l'instanciation des items dans le fichier de configuration d'OpenHab. Dans notre cas, les signaux reçus par notre serveur OpenHab nécessite un serveur mosquitto (voir section le serveur mosquitto) donc il faut aussi le déclarer dans la configuration des items.

fichier de configuration des items

Une fois ces étapes passés, un avantage très intéressant des serveurs OpenHAB est la création de règles. Les règles permettent de déclencher des actions (envoi de mails, requêtes sur des sites web, etc...). La création de règle se fait de la manière suivante:

  • un bloc "when" pour savoir quand la règle doit se déclencher
  • un bloc "then" avec toutes les actions que la règle doit faire
Fichier de règles

Pour conclure, il faut noter que lorsque openHAB, lorsqu'il est configuré en tant que service, recharge automatiquement sa configuration lors qu'elle est modifiée. Cela évite de le relancer à chaque modification.


Le serveur Mosquitto

Eclipse Mosquitto est un message broker pour le protocole MQTT. Il est spécialisé dans l'internet des objets (voir le site web).

Message broker : Un message broker est un carrefour de communication, qui permet le dialogue de deux machines ayant des protocoles différents.

Exemple d'utilisation : Un broker placé en amont d'un serveur de production permet par exemple de recevoir toutes les requêtes destinées au serveur et de les formater pur qu'elles s'adaptent au serveur. Ainsi, dans le cas d'un changement de serveur, il est uniquement nécessaire de modifier les règles du broker pour s’adapter au nouveau serveur, sans avoir à informer tous les clients.

Le protocole MQTT : MQTT est un protocole basé sur la méthode publish-subscribe avec TCP/IP. La méthode publish-subscribe consiste à avoir des producteurs qui soumettent des messages dans certains fils d'informations et des consommateur qui s'abonnent aux fils d'informations pour les traiter. Ce protocole est très utilisé dans l'internet des objets car il permets aux producteurs, dans ce cas les objets possédant la technologie embarquée, de publier un message au moment voulu, sans attente. Les appareils n'ont ainsi besoin que d'un court laps de temps pour émettre leurs informations, et par conséquence ils peuvent fonctionner à basse consommation de ressources.

Les capteurs EnOcean

Les capteurs EnOcean sont de tout nouveaux capteurs présentant un système de récupération d'énergie. C'est-à-dire que les capteurs sont auto-alimenté grâce à l'énergie environnante. Par exemple, un interrupteur capte l'énergie nécessaire par la pression sur lui, les capteurs par des cellules photovoltaïques ou des différences de températures. Cela permet de réduire efficacement le coup des capteurs. Dans notre projet nous avons utilisé principalement deux types de capteurs:

  • Capteurs détectant les ouvertures de portes
  • Interrupteurs


Capteur détectant les ouvertures de portes:
Ces capteurs sont composés de deux parties : une partie principale avec la cellule photovoltaïque et les outils nécessaires pour envoyer un signal, et une partie secondaire avec un aimant qui permet de déclencher le signal. Ce capteur envoie deux signaux: 0 quand la porte se ferme et 1 quand la porte s'ouvre. Il possède une faible autonomie quand ils ne sont pas exposés vivement à la lumière. Il se peut donc qu'un message mette du temps à partir car le capteur n'a pas assez de puissance pour l'envoyer.

capteur détectant les ouvertures de portes

Interrupteurs:
Ces capteurs sont composés d'une seule partie qui permet d'envoyer un message lorsqu'on le presse. Contrairement au précédent, ce capteur utilise uniquement l'énergie faite par la pression du doigt pour envoyés son message. Il n'y a donc pas de problème de batterie et de retard de message.

interrupteur EnOcean


Les signaux des deux capteurs sont reçus par une clé usb fournit par EnOcean. Cette clé usb reçoit tous les signaux envoyés par les capteurs et peut les retransmettre au serveur mosquitto de EnOcean. Ce serveur permet de faire la jonction entre le serveur mosquitto nécessaire au serveur OpenHab et les capteurs de EnOcean.

Scénarios d'usage

L'utilisateur est un administrateur du fablab. Il doit pouvoir en temps réel savoir quelles sont les portes ouvertes du fablab. Le serveur OpenHab fonctionnera sur un Raspberry Pi connecté au WIFI du fablab.

Scénario d'usage

De plus, le serveur OpenHab doit être opérationnel et facile de modification pour que les autres groupes de projets puissent rajouter leurs composants aux serveurs. Il faut donc un dossier de scripts contenant les scripts nécessaires à la mise en place d'un serveur openHab qui fonctionne avec les serveurs mosquitto installé pour pouvoir utiliser les capteurs EnOcean.

Architecture du projet

Architecture d'intégration

Architecture d'intégration


Notre système est composé de 5 capteurs qui envoient un signal lorsque une porte s'ouvre ou se ferme. Le serveur mosquitto EnOcean permet de transformer le signal pour savoir de quel capteur vient le signal. Le serveur mosquitto EnOcean va ensuite transmettre le signal au serveur mosquitto de OpenHab. Pour terminer, le serveur OpenHab va pourvoir changer l'affichage de son interface web.

Position des capteurs de portes

Exemple de fonctionnement On peut voir qu'initialement la porte principale est fermée. Sur le serveur openHab, on peut voir qu'elle est notée closed. Lors de l'ouverture de la porte, on peut voir que le serveur mosquitto capte un signal venant du capteur. On peut voir que la porte est maintenant ouverte. /* photos a rajoute*/

Note Pour voir l'application web donnée par le serveur openHab:

  • Se connecter en Wifi sur le wifi du fablab
  • Se connecter en ssh sur le Raspberry Pi : ssh pi@192.168.0.77
  • Ouvrir un navigateur et entrée l'adresse : 192.168.0.77:8080/openhab.app?sitemap=fablab#

Scripts d'installation

Pour pouvoir faciliter le travail des autres groupes, nous avons mis en place des scripts d'installations pour tous les clients que nous avons utilisé : OpenHab, mosquitto, mosquitto EnOcean, capteur Enocean. Cela permet de créer un serveur local opérationnel pour pouvoir travailler en local avant d'intégrer sur le serveur OpenHab du Fablab.

De plus, pour pouvoir utiliser internet alors que l'on est connecté sur le Wi-Fi fablab, il est nécessaire d'utiliser un proxy. Pour cela, nous avons aussi créer des scripts qui permettent d'ouvrir une fenêtre internet avec le proxy directement configurer.

Tous ces scripts peuvent être récupérés sur GitHub

Livrables

Code source

La partie code du projet peut être retrouvé sur GitHub.