Système de surveillance Homemade

a marqué ce sujet comme résolu.
Auteur du sujet

Si un modérateur passe par ici, je me demande si ce post ne devrait pas finalement être transféré dans "Vos projets" ? Enfin, à vous de voir !

Bonjour à tous !

Depuis quelques jours je me lance dans la création de mon propre système de surveillance (pour la maison). Mon objectif est le suivant :

  1. Des caméras pour surveiller l’environnement.
  2. Une sirène.
  3. Un système fiable.
  4. Pilotable à distance.

Le tout pour un petit budget…

Je risque d’avoir beaucoup de questions (j’en ai déjà en fait :-° ) et par la même occasion je pourrais montrer l’évolution du projet (et essayer de faire des retours constructifs pour ceux qui sont également intéressés).

Genèse

Pourquoi changer ?

J’ai actuellement pour protéger ma maison un petit système de mauvaise qualité trouvable ici.

Aperçu du système actuel de mauvaise qualité
Aperçu du système actuel de mauvaise qualité

Comme vous pouvez le voir, il s’agit de détecteurs de mouvement infrarouges reliés à une centrale GSM (possibilité de communiquer par SMS avec elle). Ce système a de nombreuses limites :

  • Le détecteur détecte parfois un mouvement alors qu’il n’y a en a aucun.
  • Les capteurs sont à piles. Il faut donc les changer tous les 2 mois.
  • (La qualité globale reste vraiment à désirer… Pas étonnant vu le prix !)

Je reçois souvent des SMS de ma centrale m’indiquant une intrusion. Le problème, c’est qu’à plusieurs reprises, il n’y avait rien. J’en arrive à un stade où je commence à ignorer ses SMS. C’est presque comme si ma maison n’était pas sécurisée finalement ! C’est l’élément déclencheur qui m’a poussé à faire évoluer mon système.

Vers quoi changer ?

Tout la question était là. Faut-il se tourner vers une société spécialisée ? Acheter un kit DVR tout préparé ? Faire son propre système ?

Une société spécialisée

Cette solution est bien évidemment celle qui m’est venue à l’esprit le premier. Après avoir fait plusieurs recherches, demandé des avis à des amis, j’ai décidé de ne pas opter pour celle-ci. En effet, je trouve que les prix de ces dernières sont assez conséquents et qu’on s’enferme dans l’écho-système de la société. Si un jour je veux faire communiquer mon alarme avec mon frigidaire (je sais pas pourquoi cet exemple mais bon :euh: ) il y a de fortes chances pour que je ne puisse pas. Et puis je suis assez bricoleur donc ça s’amuse de me lancer dedans !

Kit DVR

Pour ceux qui ne savent pas de quoi il s’agit, une photo fera l’affaire :

Kit DVR
Kit DVR

Cette solution est très bonne puisque l’on choisi davantage le matériel que l’on souhaite installer (qualité des caméras, temps d’enregistrement etc). Le tout est simple à installer et facilement configurable. Cependant, quelques points m’ont rebuté :

  • On achète d’un coup toutes les caméras. Si après avoir acheté le kit DVR je me rends compte que les caméras ne me conviennent pas, il faudra prier pour que je puisse les renvoyer sans problème.
  • Tous les kit DVR ne proposent que l’envoi de mails en cas de détection de mouvement… Vous me direz, j’aurais pu faire un script qui récupère les mails et les envoie par SMS :D
  • On peut difficilement faire évoluer le système.
  • Je n’ai pas totalement la main sur le système (cela rejoint un peu le dernier point).
Raspberry PI + Caméras IPs

Vous vous en douterez, c’est la solution que j’ai choisie. Celle-ci demande plus de travail et de connaissances (d’ailleurs j’ai des questions :pirate: ). Je peux faire évoluer mon système comme je le souhaite et surtout le prix final est nettement inférieur. Il faut néanmoins noter un point négatif par rapport à la société de surveillance : c’est moi qui doit vérifier s’il y a une intrusion 24/24h 7/7j. Je détaille le matériel choisi dans les parties suivantes !

Système de caméras

Un de mes plus gros besoins est l’ajout de caméras. Elles me permettront de comprendre ce qu’il se passe à distance et de ne plus être "aveugle" avec un simple SMS. Il existe différents types de connexion pour les caméras :

  • caméra IP (donc Wifi ou Ethernet)
  • caméra USB (comme une webcam en soit)
  • caméra BNC

Le plus adapté pour une connexion avec une Raspberry Pi est une caméra IP. En effet il est compliqué de récupérer le flux vidéo depuis du BNC et les caméras USB de surveillance ne courent pas les rues. C’est pourquoi il fallait maintenant chercher des caméras IP. Mes critères étaient les suivants :

  • le prix
  • l’étanchéité
  • la vision de nuit
  • filaire (pour éviter les galères de wifi !)

C’est pourquoi l’heureuse élue a été la caméra TRENDnet TV-IP325PI au prix de 58€95 chez LDLC (qui d’habitude est plutôt cher comme magasin…). De plus, cette caméra est compatible PoE (Power Over Ethernet) pour l’alimentation. Cela évite de tirer un cable Ethernet pour le flux vidéo et un autre pour l’alimentation.

TRENDnet TV-IP325PI
TRENDnet TV-IP325PI

Pour alimenter une caméra avec du PoE, il faut un switch compatible (celui-ci est branché au secteur pour fournir une tension à travers le câble Ethernet). J’ai donc choisi le switch TRENDnet TPE-S50 à 41€70 (non je ne suis pas vendeur chez LDLC :lol: ).

Ensuite il a fallu choisir le câble Ethernet. Il existe pleins de catégories de câbles Ethernet :

Catégorie Dénomination Débit
CAT5e Catégorie 5e 10/100 Mbps et 1000 Mbps
CAT6 Catégorie 6 10/100/1000 Mbps
CAT6a Catégorie 6a 10/100/1000 Mbps et 10000 Mbps
CAT7 Catégorie 7 10/100/1000/10000 Mbps
CAT7a Catégorie 7a 10/100/1000/10000 Mbps

Le prix et le débit ont été décisifs. La catégorie 5e correspond très bien aux besoins. En plus, 100m était vendu à Leroy Merlin à 35€ (ici). Ce n’est pas grand chose par rapport au prix des câbles d’autres catégories. J’ai ensuite acheté des connecteurs pour les monter sur le câble Ethernet de 100m (qui ce dernier sera coupé en 4 câbles de différentes longueurs). Il y a de nombreux tutoriels sur internet expliquant comment facilement mettre ces connecteurs et cela sans même de pince à sertir !

Enfin, il faut maintenant s’occuper de la partie software. Chaque caméra est équipée d’un système de détection de mouvements. Très clairement, l’interface est très basique et peu configurable. Par ailleurs, aucun logiciel de Trendnet ne fonctionne, pas même l’application Android qu’ils proposent. Il faut aller voir du côté des logiciels de Hikvision qui sont compatibles. Le système ne propose que l’envoi par email d’une alerte en cas de mouvement. Ce manque de possibilités a confirmé la volonté d’acheter une Raspberry. Et c’est ainsi que j’ai fais la découverte du logiciel Open-Source : Kerberos. En un mot : UNE TUERIE. Je vous laisse aller le voir le site pour en savoir plus !

Détection de mouvements avec Kerberos

Kerberos propose de nombreux paramètres concernant la détection de mouvements. J’ai actuellement fais les réglages théoriques… reste à voir ce que cela donne en pratique ! Ce dont j’ai très peur, c’est que certains évènements comme une feuille passant près d’une caméra soient considérés comme une intrusion. C’est probablement ce qui va se passer. Et c’est pourquoi il va peut-être être nécessaire de faire de la reconnaissance d’image avec Open-CV.

Une fois que l’évènement est déclaré comme une intrusion, il faut maintenant me prévenir. Et pour cela, plusieurs solutions sont proposées par Kerberos comme l’envoi d’un mail, l’envoi d’une requête à une URL ou encore l’exécution d’un script. J’ai opté pour la dernière solution afin de m’envoyer un SMS à partir de l’API proposée par l’opérateur Free. Voici le script bash que j’ai mis en place (rien de plus basique :p ) : https://github.com/baudev/Kerberos-script-Free-mobile Je reçois ainsi un SMS contenant le nom de la caméra, la date et heure de l’intrusion, un lien vers l’image sur laquelle un mouvement a été détecté et enfin un lien vers le panneau d’administration de la caméra (qui contient le flux en temps réel de la caméra, les dernières vidéos des moments suspects etc).

Sabotage de la caméra

Comme je l’explique deux paragraphes plus haut, le système d’évènement de TRENDnet est vraiment foireux. C’est ce qui m’a poussé à déléguer la détection de mouvements sur la Raspberry avec Kerberos. Cependant, une fonctionnalité reste intéressante dans le système de base de la caméra. Il s’agit du système anti-sabotage : c’est à dire quand les visses de la caméra sont dévissées. Clairement c’est du détail… Mais par principe, pourquoi s’en priver ? Pour alerter le propriétaire de la caméra, TRENDnet ne propose que l’envoi de mails. C’est pourquoi, j’ai crée une adresse mails et à chaque nouveau mail reçu, je m’envoie un SMS (toujours par l’API de Free Mobile). Le code se trouve ici : https://gist.github.com/baudev/bd6c33ad59e77b3e9f16a3a79a8bb31e Note : Paramétrer l’envoi de mails par la caméra a par contre été très fastidieux… Tout d’abord il fallait mettre la caméra à jour (mise à jour datant de moins d’un moins patchant les connexions SMTP sécurisées). Puis sachant que la mise à jour était à moitié fonctionnelle, j’ai dû utiliser un logiciel de Hikvision…

Sirène

Le deuxième besoin que j’avais évoqué au tout début de ce post, est la présence d’une sirène. C’est un outil de dissuasion important et évite de seulement contempler son cambrioleur !

Tout d’abord, la sirène sélectionnée est la suivante Sirène électronique 125 dB. Elle ne coute que 14€ et fait tout de même 125dB ! (Après plusieurs essais, je pense qu’elle est davantage de l’ordre du 110 dB. Enfin c’est déjà pas mal du tout :-° ) Il faut maintenant penser à son activation depuis la Raspberry.

Sirène choisie
Sirène choisie

Pour pouvoir commander l’alimentation de la sirène, et donc l’activer ou non, je suis parti sur l’utilisation d’un relais. Celui-ci semble faire l’affaire.

Relais en question
Relais en question

En le branchant à la Raspberry, et via un petit script contrôlant les pins GPIO, on peut alors activer ou désactiver la sirène. Voici le schéma basique du système (vous remarquerez que j’ai découvert Fritzing :p ) :

Schema du système
Schema du système

J’ai alors réalisé un petit serveur Node pour permettre une activation de la sirène uniquement aux utilisateurs authentifiés. Cette dernière une fois activée, sera automatique éteinte au bout de 5 minutes (on respecte les voisins tout de même !). Voici un screen de l’interface Web :

Screen interface Web
Screen interface Web

Et voici enfin le lien du repository associé : https://github.com/baudev/Relay-Raspberry-Server

Système fiable

Coupure de courant

Un élément important d’un système d’alarme est que celui-ci doit toujours fonctionner en cas de coupure de courant. C’est pourquoi je me suis penché sur les onduleurs. C’est une des solutions les plus simples à utiliser.

J’avais en effet initialement pensé à l’utilisation de relais et de batteries. Cependant, par manque de temps je n’ai pas opté pour cette solution. En effet, il faut penser le circuit pour maintenir l’alimentation des appareils : la moindre coupure de courant trop longue peut provoquer le redémarrage de la Raspberry, de la box etc. Pour ceux qui sont intéressés, une recherche contenant le terme "Uninterruptible Power Supply" donne beaucoup de pistes !

J’ai donc choisi l’onduleur FSP Nano 600 au prix d’environ de 60€. Pour être sûr que cet onduleur permettrait une autonomie suffisante, il a fallu calculer la consommation des différents appareils:

Nom Consommation
Switch (et caméras donc) 36 W
Box 13 W
Raspberry 3,7 W (max)
Sirène 15,6 W
Total ~70 W

On peut alors, avec les spécifications de l’onduleur, calculer l’autonomie de l’ensemble du système sur batterie.

Cet onduleur étant peu cher, il y a bien évidemment des contres-parties. Par exemple, la non présence d’une prise USB signalant la coupure de courant du secteur. Il est dans notre cas, important de signaler l’administrateur du système qu’une coupure de courant a lieu. En effet, si l’onduleur prend le relais de l’alimentation du système sans prévenir, alors ce dernier continuera de fonctionner de façon transparente et ce n’est qu’une fois la batterie à plat que : BLACKOUT total :waw: Quand l’onduleur détecte une coupure de courant, une LED se met à clignoter ainsi qu’un bruit strident. C’est pourquoi j’ai déjà commandé un capteur de luminosité :soleil:

La suite de la partie prochainement !

Pilotable à distance

Prochainement !

Merci d’avance pour vos réponses. J’espère que la lecture de ce petit projet intéressera certains et n’hésitez pas à me faire des retours (idées, critiques…) !

Édité par Nostalgique_ZdS

+0 -0

Cette réponse a aidé l’auteur du sujet

Sympa le projet. Encore à définir à ce que je vois.

Par-contre, gros problème si un voleur coupe le courant de la maison avant d’y pénétrer, à moins que tu possèdes un groupe électrogène de secours ?

Pour l’envoie de SMS. Plusieurs solutions. Si tu es sur Raspberry, autant acheter une clé 3G et bidouiller le firmware. Ou alors, tu prends un vieux portable ou une clé 3G/4G compatible Gammu. C’est un logiciel qui marche du tonnerre. Il faudra donc une carte sim, il existe des abonnements spécialement pour les IOT.

Pour l’ampérage. 1.5A est bien. Plus tu as, mieux c’est en gros.

Le voltage, mieux il correspond, mieux c’est. L’ampérage c’est différent, l’appareil ne consomme que ce dont il a besoin, s’il n’a pas assez, ça pose problème. S’il a trop, c’est du gâche mais ça n’abime rien du tout.

Pour le relais, je ne m’y connais pas assez et n’arrive pas à déchiffrer ce qui est écrit dessus, mais je lis AC/DC, ce qui biensûr me fait pensé à Courant Alternatif ou Courant Continue, càd Direct Current ! (Pas du tout, je suis une bille, ma tête à crier Thunder !). Ce qui je pense ne correspond pas à ce que tu veux je pense, si ?

Pour le pilotage à distance, tu devrais utiliser une connexion internet. Tu dois avoir des idées de ce que tu veux faire déjà.

ache.one                 🦹         👾                                🦊

+1 -0
Auteur du sujet

Merci pour ta réponse !

Pour l’ampérage. 1.5A est bien. Plus tu as, mieux c’est en gros.

Le voltage, mieux il correspond, mieux c’est. L’ampérage c’est différent, l’appareil ne consomme que ce dont il a besoin, s’il n’a pas assez, ça pose problème. S’il a trop, c’est du gâche mais ça n’abime rien du tout.

ache

Merci beaucoup pour cette information. Donc je pense que je vais partir sur ce genre d’alimentation (photo ci-dessous) et couper l’embout ! C’est ce qu’il y a de mieux à faire non ?

Idée d'alimentation

Par-contre, gros problème si un voleur coupe le courant de la maison avant d’y pénétrer, à moins que tu possèdes un groupe électrogène de secours ?

ache

C’est en effet un des points que je voulais traiter en partie "Système fiable". C’est un vrai point faible. J’avais pensé à une batterie mais il faut tout de même alimenter la Raspberry + le switch PoE (100W) + la sirène + la box. Ça commence à faire beaucoup ! Actuellement l’électricité est très stable. Il n’y a eu aucune coupure depuis plus de 1 an et demi. Donc si un jour l’électricité est coupée, je considèrerai que c’est un acte de vandalisme. Il faudrait au minimum faire sonner la sirène. Prendre des photos/vidéos seraient un plus.

J’avais pensé faire pinger la Raspberry depuis un serveur toutes les 20 secondes. Si la requête échoue c’est alors qu’il n’y a plus internet ou plus de courant. Le serveur pourrait alors nous envoyer un SMS pour nous prévenir.

Aussi, j’ai la possibilité d’alimenter ma maison par une autre source d’alimentation (un peu comme si j’avais une prise qui venait de la maison du voisin). Mais comment faire pour que la deuxième alimentation prenne le relais en cas de coupure de la première source ?

Pour l’envoie de SMS. Plusieurs solutions. Si tu es sur Raspberry, autant acheter une clé 3G et bidouiller le firmware. Ou alors, tu prends un vieux portable ou une clé 3G/4G compatible Gammu. C’est un logiciel qui marche du tonnerre. Il faudra donc une carte sim, il existe des abonnements spécialement pour les IOT.

Pour le pilotage à distance, tu devrais utiliser une connexion internet. Tu dois avoir des idées de ce que tu veux faire déjà.

ache

Pour le pilotage à distance je vais en effet utiliser une connexion internet. Une connexion SSH permettra de faire amplement ce que je veux. Et puis pour ma famille, le logiciel Kerberos permet d’accéder à une interface simple et complète (site web).

Concernant l’envoi des SMS, je pensais utiliser une carte SIM Free à 2€ et l'API qu’ils fournissent. Une simple requête internet fait l’affaire !

+0 -0

Merci beaucoup pour cette information. Donc je pense que je vais partir sur ce genre d’alimentation (photo ci-dessous) et couper l’embout ! C’est ce qu’il y a de mieux à faire non ?

Non, c’est ce qu’il y a de plus simple et fainéants. Le mieux, c’est d’acheter un embout femelle et de lier l’emboue femelle au relais x)

Par-contre, gros problème si un voleur coupe le courant de la maison avant d’y pénétrer, à moins que tu possèdes un groupe électrogène de secours ?

ache

C’est en effet un des points que je voulais traiter en partie "Système fiable". C’est un vrai point faible. J’avais pensé à une batterie mais il faut tout de même alimenter la Raspberry + le switch PoE (100W) + la sirène + la box. Ça commence à faire beaucoup ! Actuellement l’électricité est très stable. Il n’y a eu aucune coupure depuis plus de 1 an et demi. Donc si un jour l’électricité est coupée, je considèrerai que c’est un acte de vandalisme. Il faudrait au minimum faire sonner la sirène. Prendre des photos/vidéos seraient un plus.

J’avais pensé faire pinger la Raspberry depuis un serveur toutes les 20 secondes. Si la requête échoue c’est alors qu’il n’y a plus internet ou plus de courant. Le serveur pourrait alors nous envoyer un SMS pour nous prévenir.

C’est ce qu’il y a de plus simple effectivement. L’alimentation sur batterie me semble difficile à cause du switch + caméra, l’enceinte, la box et la Raspberry, ça devrait le faire au moins pour une demi heure, sachant que la Raspberry doit pouvoir détecter une coupure de courant.

Aussi, j’ai la possibilité d’alimenter ma maison par une autre source d’alimentation (un peu comme si j’avais une prise qui venait de la maison du voisin). Mais comment faire pour que la deuxième alimentation prenne le relais en cas de coupure de la première source ?

¯\_(ツ)_/¯ Désolé.

Pour le pilotage à distance je vais en effet utiliser une connexion internet. Une connexion SSH permettra de faire amplement ce que je veux. Et puis pour ma famille, le logiciel Kerberos permet d’accéder à une interface simple et complète (site web).

Concernant l’envoi des SMS, je pensais utiliser une carte SIM Free à 2€ et l'API qu’ils fournissent. Une simple requête internet fait l’affaire !

<?php?>

Tout à fait, une connexion type fibre ou ADSL à l’inconvénient de demander plus d’électricité que de la 3G/4G mais c’est plus rapide (en intérieur, souvent, en extérieur rarement). SSH est parfait pour le contrôle à distance. L’API Free, c’est cool, après il faut être chez free sur son portable principale ou alors accepter d’avoir un deuxième portable juste pour les notifications.

Je ne pense pas pouvoir t’aider plus. Bonne chance, tiens nous au courant ! :)

Édité par ache

ache.one                 🦹         👾                                🦊

+2 -0
Auteur du sujet

Voici le type de relais que je pense utiliser : un relais SPDT : Single Pole Double Throw. Il y a 3 connexions et donc qu’il est possible de fermer l’interrupteur d’un circuit ou d’un autre (cf image ci-dessous).

Relais SPDT
Relais SPDT

En appliquant cela à mon cas, on peut alors switcher d’une alimentation 1 à une alimentation 2. Voilà ce que j’ai imaginé :

  1. Quand le relay est en OFF, c’est la deuxième alimentation qui alimente le circuit.
Le relay est en OFF, c'est l'alimentation 2 qui alimente le circuit
Le relay est en OFF, c'est l'alimentation 2 qui alimente le circuit
  1. Quand le relay est en ON, c’est la première alimentation qui alimente le circuit.
Le relay est en ON, c'est l'alimentation 1 qui alimente le circuit
Le relay est en ON, c'est l'alimentation 1 qui alimente le circuit

Il y a cependant un nouveau problème… Pour que les schémas précédents fonctionnent, il faudrait être capable de détecter la présence de courant dans l’alimentation 1. Pourquoi ? Reprenons les choses dans l’ordre :

  1. On allume la Raspberry pour la première fois. Le relais étant en position OFF, tout le circuit est alimenté grâce à l’alimentation 2.
  2. Pour passer sur l’alimentation 1, la Raspberry donne l’ordre au relais de passer en position ON.
  3. Imaginons maintenant une coupure de courant sur l’alim 1.
  4. L’ensemble du circuit s’éteint. Le relais passe donc en position OFF. Le circuit passe alors sur l’alimentation 2.
  5. La Raspberry redémarre.

Qu’est-ce qui permet à la Raspberry de se dire qu’il ne faut pas passer le relais en ON ? (Car si elle le fait, le circuit va alors basculer sur l’alimentation 1 qui n’a plus de courant…)

Il faudrait alors être capable de vérifier la tension de l’alimentation 1. Cependant c’est du 220V et je doute que la Raspberry apprécie d’avoir une telle tension en entrée d’une GPIO :-°

Pensez-vous que le temps que le relay passe de ON en OFF les objets (box, raspberry…) du circuit se seront éteints ?

Quelqu’un a-t-il une idée ? Merci d’avance

Édité par Nostalgique_ZdS

+0 -0
Auteur du sujet

Après avoir demandé des informations à droite et à gauche (je les remercie beaucoup d’ailleurs), j’ai eu le droit à quelques réponses !

Tout d’abord, pour maintenir l’alimentation de la Raspberry pendant que le relais bascule l’alimentation, le plus simple semble d’utiliser un condensateur en entrée de la Raspberry. Il reste néanmoins à calculer le nombre de Farads nécessaires… Aussi, il faudrait voir le temps de redémarrage de la box et de l’ensemble des caméras :euh: . Je continue donc mes recherches dessus.

Enfin, concernant la détection du secteur (220 V), cet article explique merveilleusement bien comment avec un optocoupleur on peut le faire :

Détection du secteur avec un optocoupleur
Détection du secteur avec un optocoupleur

Je prends le temps avant de me lancer dans la réalisation. D’une part car je n’ai pas encore tout calculé/vérifié, mais aussi car je pense qu’il y a encore des cas que je n’ai pas traité. D’ailleurs, si vous en voyez n’hésitez pas !

Édité par Nostalgique_ZdS

+0 -0
Auteur du sujet

Je viens de mettre à jour le premier post du topic ! J’ai ajouté les parties qui sont maintenant réalisées. À savoir :

Bien évidement, tous les codes sont disponibles sur Github et facilement customisables ! (Les liens sont dans le premier post).

Édité par Nostalgique_ZdS

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte