La surveillance vidéo non professionnelle de l'appartement est divertissante et peu coûteuse

Dès l'instant où j'ai un système d'alarme GSM dans mon appartement, j'ai eu l'idée que ce serait bien d'avoir des «yeux» en mon absence si les capteurs d'alarme étaient déclenchés (ou peut-être que l'alarme est fausse?). Puisque je suis ingénieur dans le domaine des technologies de l'information, il n'était pas question de solution professionnelle sous la forme d'un registraire et d'un tas de caméras - seulement tout moi-même, de mes propres mains. Il a également été décidé de limiter immédiatement le budget et, si le projet était couronné de succès, pensez déjà à son amélioration et à sa modernisation.

Le fer


Tout d'abord, nous sélectionnons le fer. "Yeux" signifie un appareil photo, on ne peut aller nulle part. La question se pose alors de savoir quoi faire de l'image reçue - la stocker, la transférer quelque part, etc. J'ai donc pensé à un routeur connecté via UPS avec un modem 4G pour un canal Internet stable qui est difficile à mettre à la disposition d'un cambrioleur potentiel.

Au travail, nous utilisons avec succès des routeurs avec des ports USB ZyXel Keenetic depuis plusieurs années (en particulier mon modèle Giga2 déjà obsolète). Après que les développeurs du micrologiciel aient «foiré» une chose telle que OPKG (gestionnaire de paquets), il est devenu possible de transformer mon routeur en un ordinateur personnel avec Linux avec les possibilités les plus larges, que j'ai décidé d'utiliser pour mon but. Au total, ayant déjà chez moi un routeur informatique avec un modem 4G connecté, il ne me manquait que les «yeux» - une caméra USB. Rappelant que j'ai acheté une webcam logitech C270 pour mes parents il y a trois ou quatre ans pour leur communication avec des proches via skype sur un ordinateur et qu'ils communiquent maintenant déjà via une tablette - je leur ai réquisitionné l'appareil photo. Soit dit en passant, il y a une LED sur le panneau avant de la caméra qui indique si la caméra fonctionne ou non - à l'avenir, il s'est avéré très pratique pour déterminer visuellement le fonctionnement du système de vidéosurveillance.


Associez et configurez le fer


Donc, il y a du fer. Et que ne peut que se réjouir - alors que nous sommes dans le budget.
Il y a deux ports USB sur mon routeur, dont l'un était déjà occupé par un modem USB 4G. Nous utiliserons le second en y collant la caméra logitech C270. Pour que le routeur fonctionne avec la caméra, vous devez d'abord installer le composant OPKG sur le routeur (dans ce composant, nous mettons toutes les cases à cocher sauf "Modules du noyau pour prendre en charge les tuners DVB USB"). Mais il y a un hic - pour qu'OPKG fonctionne dans le routeur, vous avez besoin d'espace disque (un gigaoctet suffit pour les yeux), mais où puis-je l'obtenir, car les deux ports USB du routeur sont déjà pris? Il y avait deux solutions possibles - soit un concentrateur USB avec un lecteur flash USB (la première chose qui vient immédiatement à l'esprit), soit le fait que vous pouvez mettre une carte microSD dans mon modem USB 4G. Et la vieille carte microSD lente de 8 gigaoctets trouvée à la maison est immédiatement allée au modem. Laissé le système de fichiers sur une carte NTFS (bien que EXT2 ou EXT3 soit fortement recommandé). Créez le dossier d'installation et téléchargez-y l'image Entware souhaitée.

Ensuite, nous allons dans le panneau d'administration du routeur, l'onglet OPKG, sélectionnez notre carte mémoire, dans la ligne «script initrc», écrivez

/opt/etc/init.d/rc.unslung 

et cliquez sur Appliquer .
Après avoir installé OPKG, le client SSH (j'utilise le programme Putty sur mon ordinateur portable avec Windows) s'accroche au routeur et exécute les commandes suivantes pour mettre à jour OPKG:

 opkg update opkg upgrade 

Par défaut, sur SSH, le mot de passe root est keenetic (ou zyxel , selon la version du firmware). Il est fortement recommandé de modifier le mot de passe avec la commande passwd .

Logiciels


Ensuite, installez le programme Motion.

 opkg install motion 

C'est elle qui travaillera avec notre caméra, analysera le changement dans l'image et indiquera au routeur où envoyer l'image reçue. Le fichier de paramètres du programme de mouvement est \ etc \ motion \ motion.conf, en le modifiant, nous modifions les paramètres dont nous avons besoin. Tout d'abord, j'ai réglé la résolution maximale prise en charge par l'appareil photo sur 1280x720, je l'ai tournée de 180 degrés (il était plus pratique pour moi de mettre l'appareil photo à l'envers), en enregistrant 2 images par seconde.

 rotate 180 width 1280 height 720 framerate 2 

Je n'ai pas vu la nécessité d'enregistrer tout le flux vidéo et de le diffuser sur Internet, j'ai donc mis le mouvement pour enregistrer la vidéo et la transférer uniquement si l'image change. Au cours de la configuration du mouvement, il est devenu clair qu'il ne prend pas en charge le mode MJPEG avec mon appareil photo, mais prend uniquement en charge le mode YUYV - à la suite de quoi le résultat du travail n'est pas une séquence vidéo, mais uniquement une séquence de photos JPEG.

 v4l2_palette 15 

J'ai également configuré le mouvement de sorte qu'une copie des photos soit copiée sur un serveur FTP externe.

 on_picture_save wput ftp://login:pass@XX.29.136.XX %f 

Dans le cas où un routeur avec une carte mémoire est sorti de l'appartement, il y aura toujours une opportunité de voir comment cela s'est produit exactement.

Il est fortement recommandé de modifier le mot de passe de connexion pour vous connecter à votre caméra.

 stream_authentication login:pass 

Après tous les paramètres, recherchez le résultat dans le navigateur:

 IP:8081 


Attention! Si vous ne voyez aucune image dans le navigateur, vous devez faire attention à la version de votre firmware Keenetic. Vraisemblablement à partir de la version 2.11.A.4.0-1 du micrologiciel, les modules vidéo ne sont pas chargés par défaut, vous devez donc les charger dans des «stylets» «SSH» ou les ajouter au script de démarrage:

 /opt/sbin/insmod /lib/modules/3.4.113/i2c-core.ko /opt/sbin/insmod /lib/modules/3.4.113/i2c-dev.ko /opt/sbin/insmod /lib/modules/3.4.113/videodev.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-core.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-memops.ko /opt/sbin/insmod /lib/modules/3.4.113/videobuf2-vmalloc.ko /opt/sbin/insmod /lib/modules/3.4.113/v4l2-common.ko /opt/sbin/insmod /lib/modules/3.4.113/uvcvideo.ko 

Si l'image n'apparaît pas même après cela, tout d'abord nous regardons les journaux Keenetic, ce qui se passe lorsque la caméra est connectée. La caméra est-elle détectée en tant que périphérique vidéo, etc.

La gestion


Après avoir fait tout ce travail, l'idée est venue que nous devons en quelque sorte gérer cela, c'est-à-dire allumer et éteindre au bon moment (et principalement à distance). J'ai résolu le problème en installant le client SSH sur mon smartphone Android. Après avoir choisi les clients SSH, nous nous sommes installés sur ScriptKitty. En appuyant sur deux ou trois touches d'un smartphone, vous pouvez rapidement activer ou désactiver le mouvement.


Exécution d'un mouvement via SSH:

 /opt/etc/init.d/K99motion restart 

Terminer le mouvement via SSH:

 /opt/etc/init.d/K99motion stop 

Mais il y avait un autre hic: une adresse IP «grise» sur mon modem 4G. En vous connectant au routeur via Wi-Fi, vous pouvez activer ou désactiver le mouvement sans aucun problème. Mais que faire si vous êtes en dehors du Wi-Fi de votre routeur et que votre routeur a une adresse IP "grise"? J'ai trouvé le sauvetage sous la forme d'un VPN. Le schéma est le suivant - avec mon routeur domestique, je m'accroche au routeur au travail avec une adresse IP statique en utilisant un client PPTP (un serveur PPTP est installé au travail sur le routeur). Maintenant, après avoir transféré le port SSH du routeur qui fonctionne au routeur domestique, je peux enfin contrôler ma caméra à distance en accédant à l'adresse statique du routeur au travail depuis mon smartphone.

J'ai également essayé d'automatiser le contrôle à l'aide de l'outil d'automatisation Tasker (il a son propre client SSH distinct) - pour surveiller la connexion du smartphone au routeur Wi-Fi et activer ou désactiver le mouvement en fonction de cela. La logique ici est la suivante: le smartphone est connecté au routeur Wi-Fi - je suis donc chez moi - pour éteindre l'appareil photo. Le smartphone n'est pas connecté au routeur Wi-Fi - je ne suis donc pas chez moi - allumez l'appareil photo. Mais après avoir expérimenté, il a refusé cette option - il y a trop de faux positifs. Par exemple, je suis à la maison, le smartphone s'est endormi, le routeur a perdu le smartphone, la caméra est allumée - enfin, etc. Actuellement, j'utilise uniquement la méthode manuelle.

Conclusion


En principe, ce que je voulais du projet était ce que j'avais. Je peux «voir» l'appartement quand je le souhaite, et en cas de déclenchement d'une alarme GSM, je peux déjà décider quoi faire ensuite. Dans le processus de mise en œuvre, j'ai résolu un tas de problèmes, mais leur solution a provoqué un certain frisson de la connaissance acquise et de la mise en œuvre du plan.

Source: https://habr.com/ru/post/fr420005/


All Articles