Caméra de sécurité réseau DIY avec Raspberry Pi

  • Michael Fisher
  • 0
  • 1316
  • 219
Publicité

Apprenez à créer une caméra de sécurité panoramique et inclinable pouvant être visualisée à distance avec une Raspberry Pi. Ce projet peut être complété en une matinée avec seulement les parties les plus simples. Voici le résultat final:

De quoi as-tu besoin

  • Raspberry Pi 2 ou 3 avec carte Micro SD
  • Arduino UNO ou similaire
  • 2 x servos micro ou mini passe-temps
  • Webcam USB
  • Fils de raccordement mâle à mâle
  • Fils de raccordement mâle à femelle
  • Cravates assorties

Construire la caméra de sécurité

Fixez un servo klaxon (le petit plastique “formes”) à chaque servo à l'aide de la vis fournie. La forme particulière n'a pas d'importance, même si le plus gros est le mieux. Ne pas trop serrer la vis.

Maintenant, utilisez des attaches zip pour attacher un servo à l’autre à angle droit. L'un d'eux sera panoramique (de gauche à droite), tandis que l'autre sera incliné (de haut en bas). Peu importe lequel fait quoi, cela peut être ajusté dans le code.

Enfin, attachez votre webcam à l’un des servos. Vous pouvez utiliser des attaches zip pour cela, bien que ma webcam soit livrée avec un clip vissé au bas - j'ai enlevé ceci et utilisé la vis pour le maintenir au klaxon. Pour plus de stabilité, vous voudrez peut-être installer l’ensemble du dispositif sur un boîtier ou une boîte. Une simple boîte en carton fait très bien l'affaire. Vous pouvez découper un trou carré soigné et monter un servo de manière affleurante à la surface, cependant une attache pour zip suffira.

Un mot sur les webcams

Toutes les webcams USB ne sont pas créées de manière égale. Connectez votre webcam au port USB de votre Pi et exécutez cette commande:

lsusb

Cette commande affiche des informations sur tous les périphériques USB connectés au Pi. Si votre webcam n'est pas répertoriée ici, vous pouvez essayer un concentrateur USB alimenté en répétant la commande. Si la webcam n'est toujours pas reconnue, vous devrez peut-être acheter une webcam compatible..

Configuration du servo

Bien que les servos puissent sembler effrayants et complexes, ils sont vraiment très simples à connecter. Les servos fonctionnent sur la modulation de largeur d'impulsion (PWM), qui permet aux systèmes numériques d'imiter des signaux analogiques. Les signaux PWM sont essentiellement un signal ON / OFF rapide. Un signal ON ou HIGH est décrit à l'aide du rapport cyclique. Le cycle de service est exprimé en pourcentage et décrit la durée d'activation du signal. Un signal PWM représentant un rapport cyclique de 25% sera activé pendant 25% du temps et désactivé pour les 75% restants. Le signal n'est pas allumé au début, puis éteint pour toujours, il est pulsé régulièrement sur une très courte période..

Les servos écoutent ces impulsions et agissent en conséquence. Utiliser un cycle de travail de 100% serait la même chose que “régulier” 5v, et 0% serait la même chose que la terre. Ne vous inquiétez pas si vous ne comprenez pas bien comment fonctionne le PWM, vous pouvez toujours contrôler les servos (Extreme Electronics est un bon endroit pour en savoir plus)..

Il existe deux manières principales d’utiliser PWM: matériel ou logiciel. La PWM matérielle fournit souvent une latence plus faible (combien de temps entre le servo recevant la commande et le déplacement) que le logiciel PWM, mais le Pi ne dispose que d’une seule broche compatible PWM matériel. Des circuits externes sont disponibles pour fournir plusieurs canaux de PWM matériel. Cependant, un simple Arduino peut également gérer la tâche, car ils possèdent plusieurs broches PWM matérielles..

Voici le circuit:

Vérifiez bien le brochage de votre Pi, ils varient légèrement d'un modèle à l'autre. Vous devez comprendre comment vos servos sont câblés. Les servos nécessitent trois fils pour les contrôler, mais les couleurs varient légèrement:

  • Le rouge est positif, connectez ceci à Pi + 5v
  • Le marron ou le noir est négatif, connectez ceci à GND sur le Pi
  • Signal orange ou blanc, connectez-le aux broches Arduino 9 et 10

Configuration Arduino

Nouveau sur Arduino? Commencez ici Démarrer avec Arduino: Guide du débutant Démarrer avec Arduino: Guide du débutant Arduino est une plate-forme de prototypage électronique open-source basée sur un matériel et un logiciel souples et faciles à utiliser. Il est destiné aux artistes, concepteurs, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs.. .

Une fois les servos connectés, ouvrez l'IDE Arduino sur votre ordinateur et téléchargez ce code de test. N'oubliez pas de sélectionner le bon conseil et le bon port parmi les Outils> Tableau et Outils> Port des menus

#include // Importer la bibliothèque Servo servoPan, servoTilt; // Créer des objets servo dans servoMin = 20, servoMax = 160; // Définition des limites des servos void setup () // Configuration des servos sur des broches compatibles PWM servoPan.attach (9); servoTilt.attach (10);  void loop () for (int i = servoMin; i  servoMin; --i) // Déplace les servos du maximum au minimum servoPan.write (i); servoTilt.write (i); délai (100); // Wait 100ms

Si tout va bien, vous devriez voir les deux servos se déplacer lentement. Remarquez comment “servoMin” et servoMax” sont définis comme 20 et 160 degrés (au lieu de 0 et 180). Cela s'explique en partie par le fait que ces servos peu coûteux ne peuvent pas déplacer avec précision les 180 degrés et que la taille physique de la webcam empêche toute utilisation de la plage. Vous devrez peut-être les ajuster pour votre configuration.

S'ils ne fonctionnent pas du tout, vérifiez à nouveau que le circuit est câblé correctement. Les planches à pain peuvent parfois aussi varier en qualité; pensez donc à investir dans un multimètre pour vérifier.

Les servos sont presque trop puissant pour que l’Arduino soit sous tension, il sera donc alimenté par le Pi. Le rail 5v sur le Pi est limité à 750 mA fourni à l’ensemble du Pi, et le Pi tire environ 500 mA, laissant 250 mA pour les servos. Ces micro-servos consomment environ 80 mA, ce qui signifie que le Pi devrait pouvoir en gérer deux. Si vous souhaitez utiliser plus de servos ou des modèles plus puissants et plus puissants, vous devrez peut-être utiliser une alimentation externe..

Téléchargez maintenant le code suivant sur l’Arduino. Cela écoutera les données série entrantes (série comme dans Universal En série Bus ou USB). Le Pi enverra ces données via USB à l’Arduino, lui indiquant où déplacer les servos..

#include // Importer la bibliothèque Servo servoPan, servoTilt; // Créer un objet d'asservissement String data = ""; // Stocke les commandes entrantes (mémoire tampon) void setup () // Configuration des servos sur des broches compatibles PWM servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Début de la série à 9 600 bps (vitesse) void loop () while (Serial.available ()> 0) // S'il existe un char de données singleChar = Serial.read (); // Lit chaque caractère si (singleChar == 'P') // Déplace le servoPan d'asservissement du panoramique.write (data.toInt ()); data = ""; // Efface le tampon else if (singleChar == 'T') // Déplace le servo d'inclinaison du servoTilt.write (data.toInt ()); data = ""; // Clear buffer else data + = singleChar; // Ajouter de nouvelles données

Vous pouvez tester ce code en ouvrant le moniteur série (en haut à droite> Moniteur série) et envoi de données de test:

  • 90P
  • 0P
  • 20T
  • 100T

Notez le format des commandes - une valeur puis une lettre. La valeur correspond à la position du servo et la lettre (en majuscules) spécifie le servo de panoramique ou d’inclinaison. Comme ces données sont transmises en série depuis le Pi, chaque caractère apparaît un par un. L'Arduino doit “le magasin” ceux-ci jusqu'à ce que la commande entière a été transmise. La dernière lettre spécifie non seulement le servo, mais indique également à Arduino que cette commande ne contient plus de données..

Enfin, déconnectez votre Arduino de votre ordinateur et branchez-le au Raspberry Pi via la connexion USB habituelle.

Configuration Pi

Maintenant il est temps de configurer le Pi. Tout d'abord, installez un système d'exploitation. Comment installer un système d'exploitation sur un Raspberry Pi. Comment installer un système d'exploitation sur un Raspberry Pi. Voici comment installer un système d'exploitation sur votre Raspberry Pi et comment cloner votre configuration parfaite pour une récupération après sinistre rapide. . Connectez la webcam et l'Arduino au Pi USB.

Mettre à jour le Pi:

sudo apt-get update sudo apt-get upgrade

Mouvement d'installation:

sudo apt-get install motion

Motion est un programme conçu pour gérer le streaming de webcam. Il gère tout le travail lourd, et peut même effectuer un enregistrement et une détection de mouvement (essayez de construire un système de sécurité de capture de mouvement. Créez un système de sécurité de capture de mouvement en utilisant un Raspberry Pi. Créez un système de sécurité de capture de mouvement en utilisant un Raspberry Pi. Parmi les nombreux projets que vous pouvez construit avec le Raspberry Pi, l’un des systèmes les plus intéressants et les plus utiles est le système de sécurité de capture de mouvements.). Ouvrez le fichier de configuration de Motion:

sudo nano /etc/motion/motion.conf

Ce fichier fournit de nombreuses options pour configurer Motion. Configuration comme suit:

  • daemon on - Exécuter le programme
  • nombre d'images par seconde: 100 - Combien de cadres ou d'images / seconde en streaming
  • stream_localhost off - Autorise l'accès sur le réseau
  • width 640 - Largeur de la vidéo, ajustez pour votre webcam
  • height 320 - Hauteur de la vidéo, ajustez pour votre webcam
  • stream_port 8081 - Le port de sortie de la vidéo
  • output_picture off - N'enregistrez aucune image

C'est un assez gros fichier, vous pouvez donc utiliser CTRL + W rechercher des lignes. Une fois terminé, appuyez sur CTRL + X puis confirmez pour enregistrer et quitter.

Maintenant, éditez un fichier de plus:

sudo nano / etc / default / motion

Ensemble “start_motion_daemon = yes”. Cela est nécessaire pour garantir que Motion fonctionne.

Trouvez maintenant votre adresse IP:

ifconfig

Cette commande affichera les détails de la connexion réseau du Pi. Regarde la deuxième ligne, inet addr. Vous voudrez peut-être définir une adresse IP statique (qu'est-ce qu'une adresse IP statique? Qu'est-ce qu'une adresse IP statique? Voici pourquoi vous n'en avez pas besoin. Qu'est-ce qu'une adresse IP statique? Voici pourquoi vous n'avez pas besoin d'une adresse IP attribuée par un routeur les adresses changent parfois, mais pas les adresses IP statiques. C’est pourquoi vous n’en avez pas vraiment besoin.), mais pour l’instant, notez ce nombre..

Maintenant, démarrez Motion:

sudo service motion start

Vous pouvez arrêter ou redémarrer Motion en modifiant “début” à “Arrêtez” ou “redémarrer”.

Basculez sur votre ordinateur et accédez au Pi à partir d'un navigateur Web:

http: //xxx.xxx.x.xx: 8081

Où xxx.xxx.x.xx est l'adresse IP du Pi. Les deux points suivis d'un nombre est le port qui a été configuré précédemment. Tout va bien, vous devriez voir le flux de votre webcam! Essayez de vous déplacer et de voir à quoi ça ressemble. Vous devrez peut-être ajuster les paramètres de luminosité et de contraste dans le fichier de configuration. Vous aurez peut-être besoin de faire la mise au point - certains modèles ont une petite bague de mise au point autour de l'objectif. Tournez ceci jusqu'à ce que l'image soit la plus nette.

De retour sur le Pi, créez un dossier et naviguez-y:

mkdir security-cam cd security-cam /

Maintenant, installez Twisted:

sudo apt-get install python-twisted

Twisted est un serveur Web écrit en Python, qui écoute les commandes et agit en conséquence..

Une fois installé, créez un script Python pour exécuter des commandes (déplacez les servos).

sudo nano servos.rpy

Notez comment l'extension de fichier est “.rpy” au lieu de “py”. Voici le code:

# Importer les fichiers nécessaires importer le numéro de série à partir de twisted.web.resource import Ressource # Installez Arduino à la vitesse correcte essayez: arduino = serial.Serial ('/ dev / ttyUSB0', 9600) sauf: arduino = serial.Serial ('/ dev / ttyUSB1 ', 9600) classe MoveServo (ressource): isLeaf = True def render_GET (self, request): try: # Envoie une valeur série à Arduino arduino.write (request.args [' valeur '] [0]) et renvoie' Réussite 'except: return' Failure 'resource = MoveServo ()

Maintenant démarrez le serveur web:

sudo twistd -n web -p 80 --path / home / pi / security-cam /

Permet de le décomposer - “-p 80” spécifie le port (80). C'est le port par défaut pour les pages Web. “-chemin / accueil / pi / security-cam /” indique à Twisted de démarrer le serveur dans le répertoire spécifié. Si vous apportez des modifications aux scripts à l'intérieur du “caméra de sécurité” dossier, vous devrez redémarrer le serveur (CTRL + X fermer, puis relancez la commande).

Maintenant, créez la page Web:

sudo nano index.html

Voici le code de la page Web:

   Utiliser la caméra de sécurité DIY #container / * centre le contenu * / margin: 0 auto; text-align: center;      

Voilà. Votre propre caméra réseau Pan and Tilt. Si vous souhaitez exposer votre webcam à Internet, n'oubliez pas de prendre en compte les 5 dangers à prendre en compte lors du pointage de vos caméras de sécurité 5 points à prendre en compte lors de la mise en point de vos caméras de sécurité résidentielles Il est important de bien examiner l'emplacement de vos caméras et vous dirigez les parties de votre maison. Garder les choses en sécurité est important, tout comme le maintien de votre vie privée. - puis examinez le transfert de port Qu'est-ce que le transfert de port et comment peut-il m'aider? [MakeUseOf explique] Qu'est-ce que la redirection de port et comment peut-elle m'aider? [MakeUseOf explique] Pleurez-vous un peu à l'intérieur quand quelqu'un vous dit qu'il y a un problème de transfert de port et que c'est la raison pour laquelle votre nouvelle application brillante ne fonctionnera pas? Votre Xbox ne vous laissera pas jouer, vos téléchargements torrent refusent…, votre routeur sait donc où envoyer les demandes entrantes. Vous pouvez ajouter une alimentation externe. 3 batteries Raspberry Pi pour projets portables. 3 batteries Raspberry Pi pour projets portables. Une batterie Raspberry Pi peut transformer un Pi ordinaire en un ordinateur portable. Vous aurez besoin d’une de ces solutions de batterie pour commencer. et adaptateur Wi-Fi pour une plate-forme vraiment portable.

Avez-vous créé quelque chose de cool avec une webcam et un Pi? Faites-moi savoir dans les commentaires, j'aimerais voir!




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.