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

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

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 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 pour assembler un servo à l’autre à angle droit. L'un d'entre 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 pour cela, même si ma webcam était livrée avec un clip vissé au bas - je l’ai retirée et j’ai utilisé la vis pour la 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 couper un trou carré soigné et monter un servo à plat sur la surface, mais 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

Alors que les servos peuvent 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 les 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 cycle de service de 25% sera activé 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 “ordinaire” 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 inférieure (délai entre le moment où le servo reçoit la commande et le déplacement) par rapport au logiciel PWM. Toutefois, le Pi ne dispose que d’une seule broche compatible PWM matérielle. 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 disposent de 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
  • Brun ou 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 à code source ouvert basée sur un matériel et un logiciel flexibles 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. Lire la suite .

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

#comprendre  // 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 < servoMax; ++i)  1 // Move servos from minimum to maximum servoPan.write(i); servoTilt.write(i); delay(100); // Wait 100ms  for(int i = servoMax; 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, mais également en raison de la taille physique de la webcam, empêchant ainsi toute la plage d'utilisation. 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 alimenté, 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..

#comprendre  // Importer la bibliothèque Servo servoPan, servoTilt; // Créer un objet servo String data = ""; // Stocke les commandes entrantes (tampon) void setup () // Configure les 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 est 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 à 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

Il est maintenant temps de configurer le Pi. Tout d’abord, installez un système d’exploitation. Comment installer un système d’exploitation sur votre Raspberry Pi. Comment installer un système d’exploitation sur votre Raspberry Pi. Voici comment installer un nouveau système d’exploitation et le faire fonctionner sur votre Pi. récupération. Lire la suite . 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 (en savoir plus). 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 - Nombre d'images ou d'images par 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 fichier assez volumineux, vous voudrez peut-être 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? Comment en obtenir un et ses avantages / inconvénients? Qu'est-ce qu'une adresse IP statique? Comment l'obtenir et ses avantages / inconvénients Dans les réseaux domestiques, les adresses IP ne sont généralement pas fixes, mais elles relèvent de plages spécifiques. Une adresse IP statique ne change pas. Quels en sont les avantages et pourquoi en voudriez-vous une? En savoir plus), mais pour le moment noter ce numéro.

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' Succès '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:

   Faire usage de caméra de sécurité DIY    

Changement “PI_IP_ADDRESS” (utilisé deux fois) à l'adresse IP réelle de votre Pi (raspberrypi.local devrait également fonctionner si vous utilisez le dernier Raspian). Redémarrez le serveur Web, puis accédez au Pi depuis votre ordinateur. Inutile de spécifier le port. Vous devriez pouvoir faire un panoramique gauche et droit et voir le flux vidéo:

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 prendre en compte le positionnement de vos caméras vous dirigez les parties de votre maison. Garder les choses en sécurité est important, tout comme le maintien de votre vie privée. Lisez plus - 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 à des jeux, vos téléchargements torrent refusent… Lire la suite, votre routeur sait donc où envoyer les demandes entrantes. Vous pourriez ajouter une alimentation externe Pi to Go? 3 façons d'alimenter un Raspberry Pi pour des projets portables Pi to Go? 3 façons d'alimenter un Raspberry Pi pour des projets portables Vous souhaitez sortir votre Raspberry Pi de la maison et participer à certains projets mobiles? Vous aurez besoin d’une batterie, mais plusieurs options sont disponibles. En savoir plus 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!

Explorer plus sur: Home Security, Raspberry Pi, Webcam.