Table des matières

Maison Lego connectée

But du projet

Le but de ce projet est de créer une maison en Lego avec laquelle on peut interagir via une interface web.

Les fonctionnalités souhaitées sont les suivantes :

Matériel utilisé

Le matériel suivant sera utilisé :

Installation

La première étape sera d'installer et configurer le système d'exploitation Raspbian sur la carte MicroSD.

Installation de Raspbian

Depuis un PC sous Linux, on va copier la dernière version de Raspbian Jessie sur la carte MicroSD, après l'avoir téléchargée et décompressée depuis la page https://www.raspberrypi.org/downloads/raspbian/ :

dd bs=4M if=/home/freddy/Téléchargements/2016-02-26-raspbian-jessie.img of=/dev/sdd

Une fois la carte prête, on va l'insérer dans le Raspberry Pi et le démarrer, après avoir branché tous les périphériques (Clavier, souris, écran et clé USB WiFi)

Configuration de Raspbian

La configuration de Raspbian s'effectue via le menu Preferences/Raspberri Pi Configuration :

On redémarre ensuite le système et on se connecte au réseau WiFi

On notera l'adresse IP obtenue (192.168.1.23) pour faire le reste de l'installation à distance (Sans clavier/souris/écran branché au Raspberry Pi)

Mise à jour de Raspbian

On se connecte en ssh au Raspberry Pi avec le compte pi (mot de passe raspberry) :

ssh pi@192.168.1.23

On installe ensuite toutes les mises à jour de Raspbian

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Installation d'Apache

On installe ensuite Apache :

sudo apt-get install apache2

Puis on corrige les droits de la racine du site web :

sudo chown -R www-data:pi /var/www/html/
sudo chmod -R 770 /var/www/html/

On vérifie enfin qu'Apache fonctionne en affichant la page web http://192.168.1.23 depuis le PC Linux (Une page “Apache2 Debian Default Page” s'affiche)

Installation de PHP

On installe PHP :

sudo apt-get install php5

On corrige la page par défaut du site web :

sudo rm /var/www/html/index.html
sudo echo "<?php phpinfo(); ?>" > /var/www/html/index.php

Et on vérifie sur la page web http://192.168.1.23 que PHP fonctionne (Une page “PHP Version 5;6;17-0+deb8u1” s'affiche)

Installation de WiringPi

La prochaine étape est d'installer la bibliothèque WiringPi permettant de contrôler les ports GPIO du Raspberry Pi :

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

puis de vérifier que celle-ci est bien installée (on doit obtenir la version de gpio et un tableau listant les ports GPIO du Raspberry Pi) :

gpio -v
gpio readall

Copie des fichiers sources

Les fichiers sources (scripts et interface web) sont disponibles ici : https://git.maylug.org/freddy/Maison_Lego_connectee

On copie l'ensemble des fichiers dans les répertoires respectifs /home/pi et /var/www/html (mot de passe “raspberry” lors de la copie)

scp Maison_Lego_Connectee/pi/*.* pi@192.168.1.23:/var/www/html/
scp Maison_Lego_Connectee/html/*.* pi@192.168.1.23:/home/pi/

Montage

Maison

4 diodes sont disposées dans la maison, grâce aux trous des pièces de Lego, qui ont le diamètre adéquat :

Raspberry Pi

Pour les branchements, un breadboard est utilisé :

Le schéma du montage est le suivant :

Utilisation

Lancement des scripts

Depuis une connexion en ssh, on lance le script de l'alarme et celui de la cheminée

python alarme.py &
python cheminee.py &

Affichage de l'interface web

Depuis n'importe quel PC sur le même réseau que le Raspberry Pi, on affiche l'interface web en accédant à l'adresse http://192.168.1.23/maison.php depuis un navigateur internet.

Utilisation des boutons

Lorsque l'on clique sur les boutons, cela déclenche les actions suivantes :

Test de l'alarme

Lorsque l'alarme est activée, le Led rouge doit clignoter plus vite et le buzzer sonner lorsque l'on appuie sur le bouton (simulation de l'ouverture de la porte)