MyAlarm (26-12-2015)

Transcription

MyAlarm (26-12-2015)
Contact :
Thierry BERIT-DEBAT
Association Azerty Club
[email protected]
MyAlarm (26-12-2015)
Pendant les vacances d’hiver, alors que je n’avais pas envie de bouger de la terre dehors ou d’essayer
de terminer ma maison, l’idée m’est venu de réaliser une alarme avec caméras de surveillance
maison à moindre cout.
Une bonne alarme, ça coute facile 1000€. Pour cette somme, vous aurez droit à 3 ou 4 caméras, des
détecteurs de mouvement, un écran de surveillance, une sirène, un clavier pour activer l’alarme et
une box comprenant un OS propriétaire et un abonnement par mois de 30€, pour prévenir quand
l’alarme a été déclenchée et avoir droit à un appel d’un type qui vous demande si c’est normal.
Bon, ça fait un peu cher… Peut-on faire la même chose à un prix réduit ? Je me suis fixé une limite de
200€ pour réaliser la même chose.
Matériel :
-
Un Raspberry Pi 2 model B à 40€ : http://www.amazon.fr/Raspberry-Pi-Processeur-900MHzlecteur/dp/B00T2U7R7I/ref=sr_1_1?ie=UTF8&qid=1451641983&sr=81&keywords=raspberry+pi+2
-
une carte SD (Il faut une classe 10 supportant au moins 80Mb/s (ca c’est de la théorie…). J’ai
opté
pour
la
marque
SanDisk
(assez
réputée)
à
8€ :
http://www.ldlc.com/fiche/PB00174961.html
-
Une clé WIFI: prendre un modèle reconnu directement : moi j’ai pris l’Edimax , la plus
http://www.amazon.fr/Edimax-EW-7811UN-Nano-Adaptateurutilisée à
11€
:
sans/dp/B003MTTJOY/ref=sr_1_12?ie=UTF8&qid=1451642035&sr=812&keywords=cl%C3%A9+wifi+usb
-
Une boite pour mettre le raspberry pi 2. Ce n’est pas obligatoire mais je le conseille
fortement. Prendre un modèle ou on peut passer la caméra et où peut sortir les câbles du
GPIO. Oui je sais, ca parait bête mais j’ai fais l’erreur… Je conseille celle-la à 10€ :
http://www.amazon.fr/TBS%C2%AE2100-protection-transparente-Raspberryventilateur/dp/B00Q9P7GNY/ref=sr_1_11?ie=UTF8&qid=1451642160&sr=811&keywords=raspberry+pi+case
-
Une pi Cam: il est possible aussi de faire avec des caméras USB mais celle-ci est toute petite
et se branche directement sur le raspberry pi. Prendre le modèle black :
http://www.amazon.fr/gp/product/B00GIHO212?keywords=pi%20cam%20black&qid=14516
41870&ref_=sr_1_fkmr0_3&sr=8-3-fkmr0 . Chez Amazon : 24€ mais je pense qu’il y a moins
cher.
-
Une Lampe à LED IR pour éclairer la nuit en Infrarouge : celle la éclaire mon salon (qui fait
35m²) :15€ :
http://www.amazon.fr/illuminateur-cam%C3%A9ra-s%C3%A9curit%C3%A9infrarouge-Vision/dp/B00AAZRYD6/ref=sr_1_4?ie=UTF8&qid=1451642241&sr=84&keywords=lampe+IR . Ne pas oublier son alimentation : http://www.amazon.fr/noirs%C3%A9curit%C3%A9-CCTV-alimentationcam%C3%A9ra/dp/B00B0T5D5W/ref=pd_sim_421_2?ie=UTF8&dpID=41AlQjSzebL&dpSrc=si
ms&preST=_AC_UL160_SR160%2C160_&refRID=02VBQ6X1XRY4AF8CC1N9
-
Un hub USB avec alimentation externe. Même si le raspberry pi 2 est équipé de 4 ports USB,
une fois avoir branché la clé WIFI et un équipement supplémentaire, il n’y a plus assez de jus.
J’ai fais une mauvaise expérience en branchant la clé Wifi, une clé 3g et une caméra et j’ai
cramé ma clé 3G. Bref, ca coute 15€ : http://www.amazon.fr/D-Link-DUB-ports-pourNoir/dp/B00006B7DA/ref=sr_1_11?ie=UTF8&qid=1451642428&sr=811&keywords=hub+usb+alimentation+externe
-
Une clé 3G : moi je l’avais déjà : une option icon 505. Mais ce modèle est aussi compatible
avec le raspberry. : 42€ WWAN HSDPA UMTS MODEM USB 7.2M :
http://www.amazon.fr/Huawei-Nouveau-Original-d%C3%A9verrouill%C3%A9HSDPA/dp/B004UIVIBS/ref=sr_1_6?ie=UTF8&qid=1451642587&sr=86&keywords=cl%C3%A9+3G . Noter qu’il faut une SIM pour pouvoir envoyer et
recevoir des SMS. Moi je suis chez Free, j’ai tout compris : donc ca me coute 0€.
-
Un buzzer puissant : moi j’ai pris un détecteur de fumé avec un bouton test : ça coute qu’une
dizaine d’euros et ça balance 60db dans la tronche. C’est alimenté avec une pile de 3V.
http://www.amazon.fr/dp/B00U5ZCAU8/ref=asc_df_B00U5ZCAU831065766/?tag=googshop
fr21&creative=22698&creativeASIN=B00U5ZCAU8&linkCode=df0&hvdev=c&hvnetw=g&hvqmt
Bon, je crois qu’on a fait le tour du matos.
Alors on résume : 175 € ! Bon, avec les frais de port, on s’approche des 200€ , surtout si vous
commandez en plusieurs fois.
Les logiciels :
Je veux rien de payant. Tout existe déjà. Il faut juste l’installer, batailler pour le faire fonctionner et
l’intégrer.
J’ai pris les logiciels suivants :
- Raspbian : bon ca c’est l’OS du Raspberry pi 2. Une raspbian jessie. Prenez la distribution
NOOB et vous ne serez pas embêté.
- Motioneye : Ce soft, basé sur motion est super bien fait. Il permet à travers une interface
web de configurer toutes les caméras ; et toutes les options. Motioneye permet d’ajouter
des webcams USB ou la PiCAM, des caméras IP et aussi de piloter des webcam placées sur
d’autres raspberry.
- Les librairies lwiringpi : Ça c’est pour la compilation de notre buzzer qui va utiliser le GPIO du
raspberry.
- Un serveur Apache + PHP : ça c’est pour la petite interface web que j’ai créé, qui permet de
voir les caméras et de l’activer et désactiver simplement. Oui, car ca n’existait pas sur
Motioneye et je voulais pouvoir l’activer et désactiver très facilement de n’importe où avec
un gros bouton. J’ai donc créé MyAlarm. J’ai ajouté quelques scripts en PHP et bash pour
pouvoir réaliser des actions du type : Déclencher le buzzer, ou désactiver l’alarme ou encore
recevoir ou envoyer des SMS.
- On peut aussi ajouter de la commande vocale. Moi j’ai installée Yana-server : yana est un
système de domotique. Moi je ne l’utilise vraiment pas pour ça. Je l’utilise car il y a une
application sur Android et sur Windows de reconnaissance vocale (STT) et de synthèse vocale
(TTS). J’en ai testé un paquet (surement tous à ce jour). J’ai retenu yana même si Jasper aussi
est très prometteur. En ce qui concerne la reconnaissance vocale, il y a beaucoup de chose à
savoir et à tester… mais ça fera partie d’un autre tutoriel.
Installation de motioneye :
Prérequis :
Passer en root pour l’ensemble des commandes (sudo su -).
sudo echo deb http://www.deb-multimedia.org jessie main non-free >>/etc/apt/sources.list
sudo apt-get update
sudo apt-get install deb-multimedia-keyring
sudo apt-get update
Les dépendances :
apt-get install motion ffmpeg v4l-utils python-dev python-pip libssl-dev libjpeg-dev libcurl4-openssldev
Les dépendances Python:
pip install tornado jinja2 pillow pycurl
Installation:
pip install motioneye
mkdir -p /etc/motioneye
cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
mkdir -p /var/lib/motioneye
cp
/usr/local/share/motioneye/extra/motioneye.systemd-unit-local
/etc/systemd/system/motioneye.service
systemctl daemon-reload
systemctl enable motioneye
systemctl start motioneye
Pour être sûr d’avoir la dernière version de motioneye:
\
pip install motioneye --upgrade
systemctl restart motioneye
Configuration de motioneye:
A ce stade, vous avez accès à la console d’administration: http://IP_LAN_RASPBERRY:8765
Vous devriez tomber sur la page d’administration. Les identifiants par défaut sont :
Login : admin
Mot de passe : laisser vide
A vous de jouer et d’ajouter des caméras.
Pour info une caméra locale aura comme petit nom : /dev/videoX ou X est le numéro de la caméra.
Ajouter dans les notifications de chaque caméras, le script de MyAlarm qui permet de réaliser les
notifications :
Exemple de la caméra du couloir :
/var/www/html/MyAlarm/scripts/plan_notification.sh Couloir
Le mot clé Couloir permet au script de connaitre quelle caméra a déclenché la notification ; et donc
de l’inscrire dans le SMS ou dans le mail.
Installation de MyAlarm
MyAlarm comporte une interface web (HTML5/CSS3) et des scripts. Les scripts permettent d’ajouter
des fonctionnalités tels que la gestion des SMS (envoi : pour dire qu’on a reçu une intrusion, et en
réception : pour pouvoir activer ou désactiver l’alarme via l’envoi d’un SMS).
Prérequis :
apt-get install apache php5 libapache2-mod-php5
cd /var/www/html/
wget http://azertyclub.com/files/Tigrou/MyAlarm.tar
tar –xvf MyAlarm.tar .
rm MyAlarm.tar
cd MyAlarm
Configuration de MyAlarm:
Editer le fichier de configuration /var/www/html/MyAlarm/config.ini
Changer les valeurs des $Cam_image_path. Il s’agit de la dernière image vue par motioneye. Cette
variable est donnée dans l’interface de motioneye lors de la mise en place des caméras.
<?php
$Cam_image_path[]="/picture/1/current/?_username=admin&_signature=ad34415d8830d705cc660
d41a74ea979730c37de";
$Cam_image_path[]="/picture/4/current/?_username=admin&_signature=bc4e1517de7e74b2bc827
5939ea07fefd85bdfcc";
$Cam_image_path[]="/picture/3/current/?_username=admin&_signature=4483494aaec2714ec8bdc
1f3c310f7df850ffa6d";
$video_store_path[]="/alarme/videos/cam1";
$video_store_path[]="/alarme/videos/cam2";
$video_store_path[]="/alarme/videos/cam3";
$cam_name[]="Couloir";
$cam_name[]="Salon";
$cam_name[]="Cuisine";
//Entrer ici votre IP WAN
$MyIP="88.188.155.42";
//Entrer ici la liste des adresses mails qui recevront les notifications
$notif_mail[]="[email protected]";
$notif_mail[]="[email protected]";
$notif_SMTP="smtp.free.fr";
//Entrer ici la liste des numéros de téléphone qui recevront les notification
$notif_tel[]="0606060606";
$notif_tel[]="0606070707";
//Path des scripts. Je vous conseille de ne pas changer le path.
$script_path=" /var/www/html/MyAlarm/scripts/";
//notification=1 si vous souhaitez recevoir les notifications; sinon mettre à 0 pour les tests de
caméras.
$notification=1;
Mettre la variable $notification à 0 pour les tests. Nous n’avons pas encore installé tout ce qu’il faut
pour les SMS, le buzzer…
Lancer l’interface : http://IP_LAN_RASPBERRY/MyAlarm/
Installation de gammu-sms
Gammu va permettre d’envoyer des SMS (pour avertir d’une intrusion) mais de piloter également le
démarrage et l’extinction de l’alarme. Brancher la clé USB (avec la carte SIM) et lancer les
commandes suivantes.
apt-get update
apt-get install gammu
apt-get install gammu-smsd
Configuration de gammu-smsd
Editer le fichier /etc/gammu-smsrc comme suit :
# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyHS0
connection = at
# Debugging
logformat = textall
PIN = 0000
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = syslog
# Increase for debugging information
debuglevel = 1
# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/
RunOnReceive=/var/www/html/MyAlarm/scripts/receive_sms.sh
PIN = 0000
Dans mon cas, le port de la clé 3G est /dev/ttyHS0.
Entrer le code PIN de votre carte SIM. Je l’ai volontairement mis à deux endroits : une fois pour
l’envoi, une fois pour la réception. Renseignez comme ci-dessus la cariable RunOnReceive , vers le
script de réception des SMS de MyAlarm.
Redémarrer gammu-smsd :
service gammu-smsd restart
Test de gammu-sms
Un petit test pour voir si gammu-sms fonctionne.
echo « ceci est un test » | gammu-smsd-inject TEXT 0607070707
Si vous recevez, le SMS vous avez gagné !
Un autre test : envoyer un SMS à votre carte SIM en entrant comme message « ping » . Si vous
recevez « pong », c’est gagné !
Pour déclencher l’alarme par SMS, envoyer « start ». Pour la stopper, envoyer « stop ». En fait, cela
aura pour effet, lors d’un « start » de démarrer motioneye. L’action du « stop » sera d’arrêter le
service motioneye et de stopper le buzzer.
Installation du Buzzer
Bon, le buzzer est un bidouillage maison très facile à réaliser. Le détecteur de fumée est un
mécanisme simple équipé d’un bouton de test. Relier l’entrée du bouton de test à la masse et le
buzzer sonnera. C’est ce principe que j’ai mis en place en mettant un interrupteur virtuel à la place
du fil. J’ai donc utilisé une PIN et la masse du GPIO.
Attention : une précaution à prendre est de mesurer la tension entre les 2 bornes de l’interrupteur.
J’ai pris un détecteur qui fonctionne en 3V. J’avais une tension de 1,76V. Faites attention que la
tension ne dépasse pas 3V ; sans quoi vous allez griller le raspberry en le branchant. Mettez une
résistance entre afin de diminuer la tension si c’est la tension est supérieure à 3V.
J’ai utilisé le GPIO 0 et la masse. Sur le raspberry pi 2 modele B, la masse et le GPIO sont situés à
côté ; respectivement sur les PIN 9 et 11.
Donc on relie le PIN9 à la masse du détecteur et le PIN11 à l’autre côté de l’interrupteur.
Pour tester, très simplement :
/var/www/html/MyAlarm/scripts/Buzzer_start
Pour stoper ce maginifique bruit,
/var/www/html/MyAlarm/scripts/Buzzer_stop
Le code source est fourni dans le même répertoire. Il s’agit tout simplement d’un petit code pour
activer GPIO 0 et le désactiver au bout d’une seconde. Vous pouvez ainsi changer le PIN si vous
n’utilisez pas le 0, et le délai d’une seconde.
Il faudra cependant recompiler :
gcc Buzzer_start.c –o Buzzer_start –lwiringPi
gcc Buzzer_stop.c –o Buzzer_stop –lwiringPi
Installation de yana-server
On va essayer de donner un peu de voix à tout ça. Yana-server, à la base, ne sert pas à la
reconnaissance et synthèse vocale. Elle permet d’amener de la domotique avec un système de
plugin. Cependant, un package pour Windows et Linux permet d’amener la reconnaissance et la
synthèse vocale. Ce n’est donc pas le raspberry qui parle, mais un téléphone ou une tablette. Yanaserver permet simplement de programmer des actions ou des sons sur le serveur (raspberry) ou sur
le client (le téléphone).
La commande d’installation est longue mais installe tout ce qu’il faut :
sudo apt-get install git-core && sudo apt-get install sqlite3 && sudo apt-get install php5-sqlite && cd
/var/www/html/
&&
sudo
git
clone
https://github.com/ldleman/yana-server.git
/var/www/html/yana-server && sudo chown -R www-data:www-data yana-server && sudo chown
root:www-data /var/www/html/yana-server/plugins/radioRelay/radioEmission && sudo chmod +s
/var/www/html/yana-server/plugins/radioRelay/radioEmission
Configuration de yana-server
Se connecter à l’interface :
http://IP_LAN_RASPBERRY/yana-server/
Suivez le formulaire d’inscription. A la fin de l’installation supprimer le fichier install.php.
Pour installer yana sur votre Android, allez sur le play store , télépcharger yana. Configurer-le. Je ne
documentairerai pas la partie de configuration, car elle est très simple.
Ajout du module MyAlarm à yana-server :
cd /var/www/html/yana-server/plugins/
wget http://www.azertyclub.com/files/Tigrou/YS-alarme.tar
tar –xvf YS-alarme.tar
Il ne manque plus qu’activer le module dans yana-server depuis l’interface
d’administration (configuration->plugins->Inactifs puis Activer) et à tester en disant à yana, « YANA,
activation de l’alarme » par exemple. (Bon, moi je l’ai appelé Jarvis et pas Yana ! Pour cela, regarder
sur le site http://projet.idleman.fr/yana/ , pour suivre les instructions de renommage de Yana).
Tests de l’ensemble :
Maintenant, vous pouvez activer les notifications dans MyAlarm en editant le fichier
/var/www/html/MyAlarm/config.ini . Passer la variable $notification à 1.
Démarrer la surveillance en allant sur l’interface http://IP_LAN_RASPBERRY/MyAlarm/ et en activant
l’alarme. Passez deant la caméra ; vous devriez au bout de quelques secondes recevoir un mail et un
SMS.
Conclusion
Voilà, pour moins de 200€, vous avez un système de vidéo surveillance et une alarme. Il faudra
cependant sécuriser la solution. En effet, puisque le système est ouvert depuis l’extérieur (pensez à
rediriger le port 80 de votre box internet), il faudra sécuriser la solution.
Pour MyAlarm, penser à faire un fichier .htaccess et un fichier .htpassword. en suivant cette
procédure : https://shop.alterlinks.com/htpasswd/passwd.php .
N’hésitez pas à me contacter si vous avez un soucis à mettre en œuvre ce tutoriel.
[email protected]

Documents pareils