Tutoriel Alarme pi

Un version 2 est en cours de réalisation pour Raspbian-stretch et Raspberry pi 3

Matériel nécessaire :

le montage :

voici le montage :

???

Donc nous utilisons 3 GPIO:

Tous les composant le buzzer, le PIR et le Rx sont alimenté en 5v pas en 3.3v

J'utilise un pi cobber mais vous pouvez vous brancher directement sur le pi si vous avez des câbles femelle/femelle.

Si votre détecteur de porte est loin du pi ,il est conseiller d'ajouter une antenne au Rx , d' une longueur de 34.62 cm ou 17,31 cm la dernière étant suffisant normalement.

préparation du pi :

Distibution utilisé raspbian-jessie

Considérons que rasbian est installé sur le pi et le wifi activé, connectez vous au pi en ssh par putty ou le terminal sous linux, puis mettre le pi à jour:

sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install apt-transport-https -y

Pour la webcam USB nous devons installer fswebcam:

sudo apt-get install fswebcam -y

installer git , build et les librairies python

sudo apt-get install git build-essential python-dev python-openssl python-pip -y

Installer la librairie psutil pour python à l’aide des commandes ci-dessous :

sudo pip install psutil

Installer la librairie WiringPi à l’aide des commandes ci-dessous :

cd /home/pi/

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

cd wiringPi

puis :

./build

Installer la librairie 433Utils à l’aide des commandes ci-dessous :

cd /home/pi/

git clone git://github.com/ninjablocks/433Utils.git

cd 433Utils/RPi_utils

make

pour tester votre détecteur de porte faite:

sudo ./RFSniffer

si vous ouvrez la porte vous verrez apparaître le code émis par le détecteur :

Received xxxxxxxx

Noter le , il nous servira.

pour arreter RFSniffer faite :

Ctrl C

les programmes :

Commençons par créer les dossiers:

cd /home/pi/

le dossier des programmes nommé alarmePI

mkdir alarmePI

et des photos

cd /home/pi/alarmePI/

mkdir photoporte

mkdir photomouv

puis créons 2 fichiers : code.txt et zero.txt

nano zero.txt

taper 0 puis appuyez sur Ctrl + X pour fermer et enregistrer le fichier

nano code.txt

taper 0 puis appuyez sur Ctrl + X pour fermer et enregistrer le fichier

la porte :

Nous allons maintenant modifier le programme RFSniffer

cd /home/pi/433Utils/RPi_utils

puis

sudo rm RFSniffer.cpp

sudo nano RFSniffer.cpp

puis copier coller le code suivant en remplaçant xxxxxxxx par le code de votre détecteur noté précédemment .:

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

refaite un make pour recompiler le programme

make

si vouz refaite sudo ./RFSniffer et que vous ouvrez la porte, un 1 remplacera le 0 du fichier code.txt.

Donc nous allons créer un programme qui va lire en boucle le fichier code.txt et s'il voit 1 au lieu de zero ,lancer 3 programmes, un qui prend des photos, un qui les envoi en mail et un autre en parallèle qui lance une sirène puis remettre 1 à 0.

Nous allons maintenant créer le script qui prend les photos, webcamporte.sh.

cd /home/pi/alarmePI/

Et

nano webcamporte.sh

Puis copier le code suivant:

webcamporte.sh

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

dans ce ce code vous pouvez changer le titre, résolution, annotation des photos

si vouz faite sh webcamporte.sh 3 photos seront prises et stockées dans le répertoire /home/pi/alarmePI/photoporte.

Maintenant celui qui envoi ces photo en mail, portenotify.py:

nano portenotify.py

Puis copier le code suivant:

portenotify.py

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

dans ce ce code vous devez changer les xxxxxx pour la boite gmail et mdp qui envoie le mail, et fin de code l'adresse qui doit recevoir le mail

si vouz faite python portenotify.py les 3 photos vous seront envoyées à votre adresse mail.

Maintenant le script de la sirène :
(pour la phase test j'utilise un buzzer que je fais sonner 3s, pour une vrai sirène il faudra un relais et un code un peu différent.)

nano sirene.py

Puis copier le code suivant:

sirene.py

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

Pour tester la siréne :

python sirene.py

Nous allons maintenant créer le programme qui lance le tout:

nano porte.py

Puis copier le code suivant:

porte.py

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

taper :

python porte.py

et constatez , il prend 3 photos ,vous les envoi par mail et fais sonner la sirène .

faite Ctrl C pour quitter

maintenant retapez :

python porte.py

et constatez , il se passe rien, ^^ normale le fichier code a été remis a zéro.

Pour que cela fonctionne de nouveau ,il faut que RFSniffer soit lancé et dans un deuxième terminal lancer porte.py.

Cette fois , à chaque fois que la porte est ouverte des photos sont prises et vous sont envoyées , la sirène ne se lance que si elle n'est pas déjà lancée pour le cas où on ouvre 2 fois la porte dans le temps défini pour la sirène par contre ou aura de nouvelles photos.

faites Ctrl C pour fermez vos programmes.

On créera plus tard dans l'interface 2 boutons, un pour activer l'alarme qui lancera ces 2 programmes et un autre qui les fermera pour désactiver l'alarme.

Le détecteur de mouvement

Donc nous allons créer un programme qui en cas de détection va lancer 3 programmes, un qui prend des photos, un qui les envoi en mail et un autre en parallèle qui lance une sirène.

On reste dans le même principe, donc le script qui prend les photos:

cd /home/pi/alarmePI/

Et

nano webcampir.sh

Puis copier le code suivant:

webcampir.sh

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

dans ce ce code vous pouvez changer le titre, résolution, annotation des photos

si vouz faite sh webcampir.sh 3 photos seront prises et stockées dans le répertoire /home/pi/alarmePI/photomouv.

Maintenant celui qui envoi ces photo en mail, pirnotify.py:

nano pirnotify.py

Puis copier le code suivant:

pirnotify.py

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

dans ce ce code vous devez changer les xxxxxx pour la boite gmail et mdp qui envoie le mail, et fin de code l'adresse qui doit recevoir le mail

si vous faite python pirnotify.py les 3 photos vous seront envoyées à votre adresse mail.

pour la sirène, nous utiliserons le script de la sirène précédemment créer.

Il nous reste le programme qui gère le tout, pir.py :

nano pir.py

Puis copier le code suivant:

pir.py

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

Voila ,taper python pir.py et si vous bougez devant le détecteur de mouvement, vous serrez pris en photo, elles seront envoyées par mail et la sirène sonnera bien sûr.

faite Ctrl C pour fermer le programme

la désactivation

Il nous reste donc le script de la désactivation :

cd /home/pi/alarmePI/

Et

nano close.sh

Puis copier le code suivant:

close.sh

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

voila si vous faite :sh close.sh il fermera RFSniffer et tous les programmes python

l'interface :

Pour l'interface ,je voulais créer une petite application android a 2 boutons , activer et désactiver l'alarme mais j'ai failli faire fondre mon cerveau après quelques tutos et quelques heures de doc sur android-studio, du coup j'ai opté pour une interface web.

Commençons donc par installer apache :

sudo apt-get update

Puis sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql -y et on redémarre apache sudo /etc/init.d/apache2 restart .

Si vous tapez comme URL dans votre navigateur : http://adresse_du_pi vous tomberez sur la page d'accueil du votre serveur web apache.

Nous allons maintenant supprimer cette page d'accueil et créer notre dossier qui contiendra l'interface de l'alarme, pour cela tapez :

cd /var/www/html/ puis sudo rm index.html et sudo mkdir alarmePI vous pouvez remplacer AlarmePI par le nom que vous voulez.

On va donner les droits au dossier web à l'utilisateur pi: (pour un site en local, sinon faut passer par des liens symboliques et sécuriser apache )

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

Puis

sudo chmod -R 770 /var/www/html/

puis faite :

sudo visudo

et ajouter a la fin du fichier :

www-data ALL=(ALL) NOPASSWD: ALL

Appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

uniquement pour du local , sinon vous donnez tous les droits aux malveillant.

Vous ne devez pas donc pas ouvrir le port 80 de votre routeur (box) pour le raspberry. si vous n'y avait jamais touché alors c'est bon.

Enregistrer ces images , clic droit et enregistrer l'image sous:

???

et

???

sur votre pc puis copiez la dans votre dossier /var/www/html/alarmePI à l'aide de Filezilla ou winSCP.

Télécharger également jquery en faisant un clic droit sur le lien et enregistrer la cible du lien sous..., renommer le en jquery.js ,et copier le à l'aide de Filezilla ou winSCP dans votre dossier alarmePI: /var/www/html/alarmePI du pi.

pour vérifier l'état de l'alarme on va créer un script :

cd /home/pi/alarmePI

nano testpid.py

Puis copier le code suivant:

testpid.py

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

et la page qui l'appelle :

cd /var/www/html/alarmePI

nano testpid.php

Puis copier le code suivant:

testpid.php

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

la page en elle même :

cd /var/www/html/alarmePI

nano alarme.php

Puis copier le code suivant:

alarme.php

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

Maintenant les 2 fichiers de style :

nano alarmon.css

Puis copier le code suivant:

alarmon.css

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

et

nano alarmoff.css

Puis copier le code suivant:

alarmoff.css

Une fois le fichier copié, appuyez sur Ctrl + X pour fermer et enregistrer le fichier.

Vous pouvez constater en tapant l'adresse de votre pi dans votre navigateur : http://192.168.xxx.xxx/alarmePI/alarme.php

Laisser cette page ouverte sur votre pc et prenez votre smartphone (connecté au wifi bien sûr), lancer votre navigateur et lancer cette page également, si vous activer l'alarme avec votre smartphone la page du pc se met a jour immédiatement sur l'état de l'alarme.

le rendu sur smartphone:

??? ???

Rappelez-vous , cette alarme est faites pour fonctionner uniquement en local, c'est à dire connecter par le wifi.

Vous ne devez pas donc pas ouvrir le port 80 de votre routeur (box) pour le raspberry. si vous n'y avait jamais touché alors c'est bon.

Enregistrer sur votre page d'accueil de votre smartphone le lien de l'alarme http://192.168.xxx.xxx/alarmePI/alarme.php , maintenant vous pouvez activer et désactiver l'alarme si vous captez votre wifi.