Smart Sensor WiFi : Différence entre versions

De Wiki d'activités IMA
(Analyse du sujet)
Ligne 9 : Ligne 9 :
 
Les fichiers sources du projet sont disponibles [http://git.svartbergtroll.fr/smartsensor.git via Git]. ''Alexandre : Il n'est pas possible de faire un Git en interne à Polytech ?''
 
Les fichiers sources du projet sont disponibles [http://git.svartbergtroll.fr/smartsensor.git via Git]. ''Alexandre : Il n'est pas possible de faire un Git en interne à Polytech ?''
 
''Thomas M: Pas pour le moment, l'école n'a pas la machine qui va bien.''
 
''Thomas M: Pas pour le moment, l'école n'a pas la machine qui va bien.''
 +
 +
== Liste du matériel nécessaire ==
 +
<table border="1">
 +
  <th>Désignation</th>
 +
  <th>Quantité</th>
 +
  <th>Référence</th>
 +
  <th>Prix</th>
 +
  <th>Disponible ?</th>
 +
 +
  <tr>
 +
    <td>Arduino Nano (prototype)</td>
 +
    <td>1</td>
 +
    <td>[http://www.ebay.com/itm/Nano-V3-0-Mini-USB-ATmega328-5V-16M-Micro-controller-board-Arduino-compatible-/181235521373?pt=LH_DefaultDomain_0&hash=item2a327a975d Lien eBay]</td>
 +
    <td>$7 sur ebay</td>
 +
    <td>Oui</td>
 +
  </tr>
 +
 +
  <tr>
 +
    <td>Platine CC3000 (pour proto)</td>
 +
    <td>1</td>
 +
    <td>[http://www.adafruit.com/products/1469 Adafruit]</td>
 +
    <td>$34.95 + frais de ports</td>
 +
    <td>Nope</td>
 +
  </tr>
 +
 +
  <tr>
 +
    <td>Capteur de température TMP36</td>
 +
    <td>5</td>
 +
    <td>[http://fr.farnell.com/analog-devices/tmp36gt9z/ic-sensor-temp-to-92-3/dp/1438760 Farnell]</td>
 +
    <td>1.65€ pce</td>
 +
    <td>Nope</td>
 +
  </tr>
 +
 +
  <tr>
 +
    <td></td>
 +
    <td></td>
 +
    <td></td>
 +
    <td></td>
 +
    <td></td>
 +
  </tr>
 +
</table>
 +
  
 
== Énoncé initial du projet ==
 
== Énoncé initial du projet ==

Version du 5 février 2014 à 13:35

Informations générales

Page de wiki du projet Smart Sensor WiFi

Étudiants Thomas Maurice et Benoit Maliar

Tuteurs Alexandre Boé et Thomas Vantroys

Les fichiers sources du projet sont disponibles via Git. Alexandre : Il n'est pas possible de faire un Git en interne à Polytech ? Thomas M: Pas pour le moment, l'école n'a pas la machine qui va bien.

Liste du matériel nécessaire

Désignation Quantité Référence Prix Disponible ?
Arduino Nano (prototype) 1 Lien eBay $7 sur ebay Oui
Platine CC3000 (pour proto) 1 Adafruit $34.95 + frais de ports Nope
Capteur de température TMP36 5 Farnell 1.65€ pce Nope


Énoncé initial du projet

L'objectif du projet consiste en la conception et la réalisation de capteurs autonomes communiquant en WiFi afin de pouvoir remonter régulièrement des informations sur l'état des salles de cours. Les capteurs seront par exemple des détecteurs de lumières, de pression, de qualité de l'air, ...

La communication sera obligatoirement réalisée en WiFi sur le réseau de l'université en respectant les contraintes de sécurité (WPA2, ...).

Deux options sont possibles :

  • Refaire complètement une carte avec un microcontroleur et une puce wifi (comme par exemple les spark)
  • Réaliser un shield pour raspberry pi contenant les différents capteurs.

Analyse du sujet

On a ici affaire à un réseau de capteurs reliés à une base de donnée centrale qui est chargée de recevoir les données des différents capteurs de manière à pouvoir présenter à un utilisateur un état des différentes pièces dans lesquelles on aura disposé les capteurs. Cela peut notamment impliquer :

  • Un accès à ces données via une interface web
  • Un accès à ces données via une application mobile

Alexandre : On pourrait tout rassembler en une BDD avec un accès à travers un navigateur ?

On identifie donc deux parties au projet :

  • La partie capteur
  • La partie serveur

Cahier des charges

Spécifications des capteurs

Les caractéristiques souhaitées pour les capteurs sont :

  • Être capable de mesurer l'environnement dans lequel évolue le capteur (Pression, température, lumière, présence, ouverture de porte...)
  • Contacter le serveur via le WiFi pour actualiser la base. Alexandre : ce qui implique la prise en compte de la sécurité type WPA2
  • Éventuellement, être reconfigurable à distance (via un serveur web embarqué dans le microcontrôleur)
  • Être capable de gérer sa consommation d'énergie.
  • Agir en temps que datalogger si le réseau n'est pas accessible.

Spécifications du serveur

Les caractéristiques souhaitées pour le serveur sont :

  • Être capable de contacter ou d'être contacté par les capteurs via le réseau.
  • Respecter les contraintes de sécurité (WPA2)
  • Être capable d'authentifier les clients
  • Stocker les données reçues dans une base de données et éventuellement faire des calculs et des statistiques sur ces données.
  • Présenter sous format compréhensibles les données au client (web ou appli)
  • Vérifier l'état des capteurs et notifier un responsable en cas d'anomalie (déconnexion du réseau, valeur anormale d'un capteur...)

Propositions de solutions technologiques

Les capteurs

Nous proposons de réaliser une carte basée sur un ATmega328 dans lequel on pourra flasher du code Arduino. Pour gérer le WiFi, nous proposons une solution utilisant le board CC3000 d'Adafruit lien ici.

L'avantage de cette solution est que la carte est optimisée pour les breadboards et peut du coup facilement être clipsée sur la carte. Elle possède également l'avantage d'être fournie avec la bibliothèque Arduino qui va bien (et qui est bien open source) de manière à pouvoir être pilotée depuis un Arduino ou dans notre cas un AVR tout simple. Enfin, le dernier avantage est qu'Adafruit travaille en mode "Open Hardware" ce qui signifie que les plans de la carte sont disponibles en ligne, ce qui nous permettrait d'intégrer la carte WiFi au sein de notre projet facilement dans un second temps.

L'inconvénient de cette solution est qu'elle ne gère malheureusement pas les identifications PEAP utilisées sur le réseau de l'Université. Cependant aucune puce utilisable répondant à nos critères n'a pu être trouvée lors de nos recherche. En revanche, le réseau WPA2 usuel est parfaitement géré. Il faut donc trouver un mécanisme d'authentification alternatif pour le réseau.

Dans un premier temps, on se concentrera sur la mise en place d'un prototype fonctionnel a base d'un simple capteur de température. On étendra ensuite les capacités de la chose à des capteurs peut être plus complexes style I2C ou SPI.

Le serveur

On propose une solution à base d'une machine sous Linux hébergeant un serveur MySQL et PHP.

Le SGBD utilisé sera MySQL.

La partie web du serveur destinée à présenter à l'utilisateur une vue des données serait développée en PHP/HTML5/CSS3. Les capteurs enverront les données sous forme JSON au serveur web qui se chargera du traitement.