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 :
Le matériel suivant sera utilisé :
La première étape sera d'installer et configurer le système d'exploitation Raspbian sur la carte MicroSD.
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)
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)
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
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)
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)
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
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/
4 diodes sont disposées dans la maison, grâce aux trous des pièces de Lego, qui ont le diamètre adéquat :
Depuis une connexion en ssh, on lance le script de l'alarme et celui de la cheminée
python alarme.py & python cheminee.py &
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.
Lorsque l'on clique sur les boutons, cela déclenche les actions suivantes :
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)