Projets-2015-2016-OpenSmartCampus

From air
Revision as of 11:55, 15 February 2016 by Jeremy.Hammerer (talk | contribs) (Sprint 2 (du 1 Février au 7 Février))
Jump to: navigation, search

Présentation du Projet

Introduction

Le projet nommé smart Campus est un projet étudiant visant à rendre un domaine universitaire intelligent. Il a vu le jour il y a 3 ans et il a comme but principal de rendre plus pratique la vie sur le campus ainsi que la gestion de celui-ci.

Le projet en 2014-2015 : SmartCampus2014-2015

Le projet en 2013-2014 : SmartCampus2013-2014

L'équipe

RICM5 :

  • Quentin Torck
  • Vivien Michel
  • Jérémy Hammerer
  • Rama Codazzi
  • Zhengmeng Zhang

DUT :

  • Andréas Gillet-Pascal

Encadrants :

  • Didier Donsez
  • Vivien Quéma

Organisation du Projet

Dans le but de mener à bien notre projet, nous avons décider d'utiliser la méthode agile Scrum. Le projet étant à faire dans un court intervalle de temps (2 mois), nous avons décidé de faire des sprints d'une semaine chacun.

Sprint 1 (du 25 Janvier au 31 Janvier)

Matériel récupéré:

Travail effectué:

    • Etude de l'existant
    • Etude des données de la métro de Grenoble, savoir si l'on peut leur apporter de nouvelles données ou non.

A voir

Sprint 2 (du 1 Février au 7 Février)

Architecture réalisée avec Didier Donsez :

Architecture SmartCampus 2016.png

L'utilisation de Météor avec une base de donnée MongoDB est possible . Une alternative à explorer est Sails.js. Étant donné le caractère exploratoire de ce sprint, l'architecture peut être amenée à changer. Notamment en ce qui concerne l'utilisation de Météor ou la base de donnée MongoDB.

Taches :

  • Explorer l'utilisation de Météor et de Kadira à travers des tutoriels. Installation locale pour l'instant.
  • Installer un serveur Mosquito/MQTT(S) pour les communications avec les cartes

Tutoriel pour connecter Node-Red avec serveur MQTT. Ceci est à adapter suivant la configuration dans settings.json

Regarder ce flux existant proposant un envoie sécurisé sur le serveur

Regarder ce flux existant pour envoyer des données reçues par la Z-Wave

  • Explorer l'utilisation de Twilio pour l'envoie de sms automatique depuis les cartes. Technologies JavaScript utilisable sur serveur Node.js

Prendre en main sa rasberry pi à distance

http://www.framboise314.fr/prenez-la-main-a-distance-sur-votre-raspberry-pi-avec-vnc/

Installation sur Rasberry Pi Wheezy

  • Lancer node-red sur la rasberry-pi B+ grâce aux commandes suivantes dans un script. Sur l'OS Debian wheezy.
#!/bin/bash
#install nodered
sudo apt-get  remove nodered
wget http://node-arm.herokuapp.com/node_archive_armhf.deb
sudo dpkg -i node_archive_armhf.deb
sudo apt-get install build-essential python-dev python-rpi.gpio
# install Node-red
sudo npm install -g --unsafe-perm node-red
echo  nmp--------------------->[OK]

Tentatives de démarrer le serveur au boot de la carte sur l'OS Wheezy. Malgré plusieurs tentatives (utilisation de update.rc, de PM2) le serveur ne démarre pas au lancement.

Utilisation de la plateforme AWS d'Amazon

  • Création d'un compte gratuit sur Amazon d'une validité d'un an.
  • Création d'une machine virtuelle Ubuntu sur la plateforme.
  • Installation et mise en marche d'un serveur Mosquitto (broker) sur la machine virtuelle. (voir installation)

Sur l'OS Debian Jessie : Une version de node-red est pré-installée.

Pour passer de Wheezy à Jessie (solution adoptée) : installation de NOOBS puis de Debian Jessie via cet utilitaire. Il est nécessaire d'avoir une carte SD vierge ou de la formater.

Mise à jour des logiciels :

sudo apt-get update
sudo apt-get upgrade

le système pré-installé sur Jessie permet de lancer au démarrage et, en cas de panne, de relancer le serveur node-red grâce à nodered.service.

Pour l'activer, taper la commande :

sudo systemctl enable nodered.service

Installation des noeuds RFXcom pour le récepteur 433 Mhz et du noeud pour le récepteur Zwave

Installation des noeuds Zwave

Noeud Zwave

Ce noeud dépend d'une version d'Openzwave avec nodejs : node-openzave. Il faut donc installer la librairie OpenZwave.

Téléchargement de la version 1.4 OpenZwave 1.4 en zip.

Dans le répertoire décompressé.

make
sudo make install

La commande make, provoquant la compilation, peut mettre du temps. Il est possible qu'une librairie soit manquante et provoque une erreur.

Pour y remédier :

sudo apt-get install libudev libudev-dev

La commande make install copie les librairies openzwave dans /usr/local/lib. Si node-red n'est pas dans /usr/local/lib/node_modules/ il faut déplacer les librairies dans /usr/lib/.

Pour vérifier la bonne installation, lors de lancement de node-red, un noeud Zwave in et Zwave out sont respectivement dans Input et Output.

Téléchargement du noeud RFXcom

Noeud RfxCom

Sprint 3 (du 8 Février au 14 Février)

Mise en place d'un VPN

Dans le but de pouvoir avancer plus facilement dans le projet, nous avons dû mettre en place un serveur VPN car les ports utilisés par MQTT sont bloqués sur le réseau de l'université. Il est donc impossible pour une Raspberry Pi de communiquer avec un serveur mosquitto basé sur la plateforme AWS sans passer par un VPN (en utilisant le réseau de l'université). L'avantage d'utiliser un VPN est aussi de sécuriser les communications entre les Raspberry pi et le serveur mosquitto. Les étapes de la mise en place de notre VPN sont les suivantes :

  • Création d'une nouvelle machine virtuelle dans le but d'installer un serveur VPN openVPN dans le cluster d'amazon (voir installation).
  • Installation d'un client VPN sur une Raspberry