Projet IMA3 P4, 2017/2018, TD2
Sommaire
Projet IMA3-SC 2017-2018
Projet informatique
Cahier des charges
Titre du sujet
Maison Connectée
Description du système
L'objectif est de réaliser une maison connectée de 3 pièces à l'aide de la maquette suivante :
Chaque pièce dispose d'une LED, pour éclairer la pièce. À l'entrée de chaque pièce se trouve une porte commandée par un servo-moteur. Lorsqu'une personne s'approche d'une pièce (la personne étant détectée par un capteur ultra-son), la porte s'ouvre automatiquement et une fois à l’intérieur la lumière s'allume automatiquement et la porte se referme derrière elle.
Sur le site web, nous afficherons le nombre de personnes présentes dans chaque pièce ainsi que l'état allumée ou éteint des LED. Nous allons simuler les personnes interagissant avec la maison avec une figurine ou un objet.
Matériel nécessaire
- 1 Arduino UNO
- 3 LEDs
- 3 capteurs ultra-sons
- 3 Servo-Moteurs
- 1 Breadboard
- Plusieurs Câbles
- Du contre-plaqué pour la maquette
Séance 1
- Mise en place du projet
Lors de la première séance nous avons fait le choix de notre sujet. Nous voulions un sujet ni très simple ni très compliqué afin de pouvoir le mener à bien entièrement. Nous nous sommes donc mis d'accord sur le fonctionnement de notre système ainsi que sur le matériel nécessaire à sa réalisation.
Nous avons ensuite procédé à la répartition des tâches les uns travaillant sur la partie informatique et les autres sur la partie électronique.
- Partie informatique
Nous avons pris en main la Raspberry Pi 3 à travers un tutoriel qui nous a été fournit. Le travail dans cette première séance consistait essentiellement à installer un système d'exploitation (Raspbian), à configurer la Raspberry Pi comme un point d'accès Wi-fi en installant le paquetage Hostapd et en exécutant quelques commandes. Nous avons rencontrés quelques erreurs au final notre réseau wi-fi était bien visible depuis un téléphone portable.
Les objectifs de notre prochaine séance pour cette partie, seront d'arriver à instruire la configuration IP des clients Wi-fi afin d'autoriser la Raspberry Pi a gérer son réseau en attribuant des adresses IP aux différents clients, ainsi que l'installation du serveur Web comme support pour l'interface utilisateur permettant à un utilisateur de communiquer avec l'Arduino depuis le site internet.
- Partie électronique
Durant cette première séance nous avons, essentiellement pris en main le logiciel de conception Altium allié à une carte FPGA en suivant un tutoriel afin de générer un compteur 4 bits.
La plupart des membres de notre groupe découvrant le prototypage avec arduino, il nous a fallut nous familiariser avec les divers composants mis à notre disposition. Nous avons donc, à l'aide de quelques tutoriels florissant sur internet, pu très rapidement tester nos capteurs et moteurs; connaître les branchements associés à chacun d'eux; ainsi que les fonctions Arduino nécessaires pour les faire fonctionner.
Séance 2
- Partie informatique
Nous avons poursuivi notre configuration de la Raspberry:
- Terminer la configuration IP des clients Wi-fi, pour que la Raspberry puisse fournir des adresses IP aux périphériques connectés.
- L'ajout d'un nom réseau pour la Raspberry pi.
- L'installation d'un serveur web.
À la fin de la séance nous avons pu établir un accès à distance par Wi-fi depuis un téléphone mobile. Ainsi nous pouvons bien contrôler avec un smartphone notre Raspberry Pi l'allumer ou l'éteindre depuis une page web grâce à un simple code que l'on écrit. Allié à la partie électronique, nous avons commencé à implémenter le code Arduino qui gérera les différents capteurs et actionneurs. Nous avons débuté avec un capteur ultrason dont la distance renvoyée si inférieur à celle qu'on s'est fixé, nous permettait de savoir quel signal à envoyer au moteur.
- Partie électronique
Nous nous sommes attardés sur le montage Arduino final (sans maquette). N'ayant pas, initialement, prévu un nombre suffisant de câbles pour réaliser le montage nous n'avons pas pu utiliser tout les capteurs et moteurs. Nous nous sommes donc limités à monter deux moteurs reliés chacun à leurs capteurs respectifs. La séance suivante ou lors de nos séance complémentaires, nous tenterons de finir le montage Arduino mais aussi celui de la maquette.
Coté FPGA, après avoir terminé le tutoriel, nous avons essayé de tester la communication par FPGA en utilisant le code permettant d'allumer/éteindre une led.
Le temps nous faisant défaut, nous ne sommes pas arrivés, durant cette séance, à établir correctement une communication fiable.
- Travail supplémentaire
Une partie de notre travail, en dehors des séances officielles, a été de réaliser notre maquette. Nous avons donc, au préalable, définis les dimensions nécessaires pour sa réalisation complète. Nous sommes partis sur une maquette de taille 30cm x 30cm avec des hauteurs de murs de 10cm. L'épaisseur des du contre plaqué utilisé devait être suffisamment fin et solide pour nous permettre d'y fixer nos trois capteurs ultrasons sur les parois. Il fallait donc tenir compte aussi dans nos mesures, des différentes dimensions des capteurs afin que les parois soient de taille suffisantes pour les contenir. Une fois le matériau en notre possession, à l'aide d'une découpe, nous avons obtenus toutes les parois nécessaires pour construire la maquette.
D'autre part, nous avons commencé l'implémentation de la page HTML de notre projet. JavaScript étant nouveau pour nous, nous devions en apprendre davantage sur ce langage tout en réfléchissant sur son utilisation pour gérer notre communication.
Séance 3
- Partie informatique
Ayant pratiquement configuré complètement la Raspberry Pi, nous nous sommes attardés durant cette séance sur la communication série adapté à notre projet qui est la partie la plus importante du projet.
Nous avons également configuré notre websocket qui allait nous servir dans la liaison série entre notre site web et la raspberry. Cette liaison est activée dès que l'on allume la raspberry Pi et l'arduino.
Afin d'établir notre communication série, nous avons, dans notre code Arduino nous avons associé à chaque capteur une valeur déterminée. Cette valeur est envoyée en liaison série à travers notre serveur Websocket. Un code Javascript que l'on a écrit vient à travers des fonctions comparer si la valeur reçue correspond à celle du capteur correspondant.
Dans l'image ci-dessus nous avons le pièce occupées allumées en orange (les pièces A et C) et les pièces non occupées en noir (la pièce B).
- Partie électronique
L’essentiel de cette partie a été de terminer le montage Arduino complètement comme on peut le voir sur l'image ci-dessous.
Nous avons aussi travaillé sur la partie FPGA, en essayant cette fois-ci de tester nos capteurs suite à la réception de signaux envoyés par liaison série. Malheureusement nous n'y sommes pas arrivés.
Séances complémentaires
Durant ces séances, nous avons montés notre maquette comme on peut le voir ci-dessous
[fichier: Maison_connectee|200px|thumb|center|Maquette_envisagée]