Raspberry Pi Motion caméra sensible (20 / 21 étapes)

Étape 20 : Comment fonctionnent les programmes Python

Il y a deux client programmes Python utilisées dans cette instructable pour créer le Raspberry Pi Motion Camera sensible.

RPI-ms-camera.py

Le premier programme « rpi-ms-camera.py » est démarré par la commande :

dans le système de fichier « / etc/network/interfaces ». La commande « post-vers le haut » est exécutée lorsque les interfaces réseau sont en cours d’exécution.

Annonces 1 à 6 montrent le code source pour le programme de rpi-ms-camera.py :

Lignes 4-26 (cotation 1) les bibliothèques d’importation nécessaire et définir des constantes qui seront utilisés au sein du programme.

  • Lignes 4-6 importer les bibliothèques requises pour émettre des commandes du système, le module caméra de contrôle, obtenir le temps, permettent au programme lire et écrire les broches GPIO.
  • Ligne 10 définit les broches GPIO est utilisée pour détecter le mouvement détecté par le capteur PIR.
  • Lignes 13 et 14 sont des constantes utilisées pour les messages de sortie qui indiquent quel mode de fonctionne de l’appareil photo.
  • Ligne 17 définit ce répertoire sera utilisé pour stocker la dernière photo ou vidéo capturée par la caméra.
  • Ligne 20 définit l’emplacement du programme qui est utilisé pour télécharger des fichiers sur Dropbox.
  • Ligne 23 définit le nombre de secondes de vidéo qui sera enregistrée lorsqu’un mouvement est détecté. Ceci peut être changé en fonction de vos besoins. Les secondes plus de vidéo enregistrée, plus il faudra télécharger sur Dropbox.
  • Ligne 26 définit le nombre de secondes, que le programme attendra après rupture une photo ou une vidéo d’enregistrement. Ce retard est utilisé afin d’éviter de prendre beaucoup de photos/vidéos d’affilée du même événement. Ceci peut être changé si fréquentes plus ou moins fréquentes des photos/vidéos sont à prendre.

Lignes 28-31 (cotation 2) définition de la fonction « generate_file_name ». Cette fonction est utilisée pour générer un nom de fichier unique basé sur la date et l’heure. Ce nom de fichier sera utilisé pour les photos ou les vidéos. Le format du nom généré est « yyyy-mm-dd-hh-MM-ss-tz » où aaaa est l’année, mm est le mois, dd le jour, hh est l’heure, MM les minutes, ss est la seconde et tz est le fuseau horaire.

Lignes 33 à 46 (cotation 2) définition de la fonction « motion_detected ». Cette fonction est appelée lorsque le capteur PIR a détecté le mouvement. Cette fonction s’enclenche une photo ou enregistrements vidéos, télécharge la photo ou la vidéo sur Dropbox et supprime le fichier de la Raspberry Pi.

  • Ligne 36 crée le nom de fichier à utiliser pour la photo ou la vidéo.
  • Ligne 37 affiche un message indiquant que le mouvement a été détecté.
  • Lignes 38 à 40 sont exécutés si le mode de la caméra a été défini pour prendre des photos.
    • Ligne 39 ajoute l’extension « .jpg » au nom du fichier.
    • Ligne 40 appelle la fonction de « snap_photo » pour prendre la photo.
  • Lignes 41 à 43 sont exécutés si le mode de la caméra a été défini pour enregistrer de la vidéo.
    • Ligne 42 ajoute l’extension de « .h264 » au nom du fichier.
    • Ligne 43 appelle la fonction de « record_video » pour enregistrer la vidéo.
  • Ligne 44 appelle la fonction « upload_to_dropbox » pour charger la photo ou la vidéo sur Dropbox.
  • Ligne 45 efface la photo ou la vidéo. Ceci est fait pour empêcher le remplissage avec des photos ou des vidéos la carte SD de la Raspberry Pi.
  • Ligne 46 affiche un message indiquant que le fichier a été supprimé.

Lignes 48-53 (cotation 3) définition de la fonction « snap_photo ». Cette fonction est utilisée pour prendre une photo.

  • Ligne 51 définit la résolution de la photo.
  • Ligne 52 s’enclenche la photo et le stocke dans le fichier spécifié.
  • Ligne 53 affiche un message indiquant qu’une photo a été prise.

Lignes 55-64 ans (cotation 3) définition de la fonction « record_video ». Cette fonction est utilisée pour enregistrer une vidéo.

  • Ligne 59 définit la résolution de la vidéo.
  • Ligne 60 pour démarrer l’enregistrement de la vidéo et le stocke dans le fichier spécifié.
  • Ligne 61 affiche un message indiquant que l’enregistrement vidéo a commencé.
  • Ligne 62 rend le programme attendre jusqu'à ce que le nombre spécifié de secondes.
  • Ligne 63 s’arrête l’enregistrement de la vidéo.
  • Ligne 64 affiche un message indiquant que la vidéo a cessé d’enregistrer.

Lignes 66-74 (cotation 3) définit la fonction « upload_to_dropbox ». Cette fonction téléchargera le fichier spécifié à Dropbox.

  • Ligne 70 extraits juste le nom du fichier et le nom complet du fichier qui a été transmis à la fonction. Ce sera le nom du fichier stocké dans Dropbox.
  • Ligne 71 imprime un message au sujet de ce fichier sera transféré.
  • Ligne 72 définit la commande complète qui servira jusqu'à charger le fichier. La commande comprend le nom et l’emplacement de l’émission de téléchargement, l’option « upload » pour la commande, le nom de fichier local et le nom qui doit être utilisé pour le fichier sur Dropbox.
  • Ligne 74 utilise la fonction système « subprocess.call » pour exécuter la commande.

Lignes de 76 à 85 (cotation 4) définition de la fonction « upload_ip_address ». Cette fonction est utilisée pour créer un fichier avec l’adresse IP de la Raspberry Pi et transférez-le sur Dropbox. Le but de télécharger un fichier avec l’adresse IP est pour le rendre facile obtenir l’adresse IP de la Raspberry Pi à des fins de débogage. Avec l’adresse IP, il est possible d’utiliser « ssh » pour ouvrir une session de terminal à la Pi de framboise et émettre des commandes Linux.

  • Ligne 80 affiche un message indiquant que l’adresse IP sera téléchargée sur Dropbox.
  • Ligne 81 crée le nom du fichier qui contiendra l’adresse IP.
  • Ligne 82 construit la commande pour obtenir l’adresse IP du système. La commande est "hostname-j’ai > » suivie du nom de fichier.
  • Ligne 83 utilise la fonction système « subprocess.call » pour exécuter la commande.
  • La ligne 84 appels « upload_to_dropbox » pour télécharger le fichier vers Dropbox.
  • Ligne 85 supprime le fichier de la Raspberry Pi.

Lignes de 87 à 91 (cotation 4) définition de la fonction « first_time_config ». Cette fonction est appelée pendant le processus de mettre en place le Raspberry Pi lorsque la commande « python rpi-ms-camera.py - firsttime » est délivré. Cette commande est utilisée à l’étape 9 de ce instructable.

  • Ligne 91 utilise la fonction système « subprocess.call » pour publier la commande qui télécharge les fichiers à Dropbox. Lorsque cette commande est émise pour la première fois, il demande à l’utilisateur d’entrer les informations requises pour se connecter à Dropbox.

Lignes 93-99 (cotation 4) définition de la fonction « test_dropbox ». Cette fonction est appelée pendant le processus de mettre en place la framboise lors de la commande "python rpi-ms-camera.py - test » est délivré. Cette commande crée un fichier de test contenant l’adresse IP de la Raspberry Pi et télécharge sur Dropbox. Si elle envoie avec succès le fichier, puis le Raspberry Pi a été correctement mis en place pour une utilisation avec Dropbox. Il est utilisé à l’étape 9 de ce instructable.

  • Ligne 97 affiche un message indiquant que la connexion de Dropbox est sur le point d’être testé.
  • Ligne 98 appelle la fonction de « upload_ip_address » pour créer et télécharger un fichier contenant l’adresse IP de la Raspberry Pi.
  • Ligne 99 affiche un message indiquant le téléchargement est terminé et demande à l’utilisateur de vérifier le dossier d’application Dropbox pour vérifier le fichier a téléchargé avec succès.

Lignes 100 à 133 (liste 5) sont le début de l’émission principale.

  • Lignes 107-110 sont des commentaires qui montrent toutes les options du programme.
  • Ligne 113 vérifie si toutes les options ont été spécifiées. Si les options ont été spécifié que le programme continue à la ligne 114. Si aucune option n’a été spécifiée, le programme va à la ligne 127.
  • Lignes 114 et 115 Vérifiez si l’option pour prendre des photos a été spécifiée et si définit donc le mode appareil photo sur photos.
  • Lignes 116 et 117 Vérifiez si l’option pour l’enregistrement vidéo n’a été spécifiée et si définit donc le mode appareil photo aux vidéos.
  • Lignes 118-120 vérifie si la première option de temps a été spécifiée et s’appelle alors la fonction « first_time_config » et puis quitte le programme.
  • Lignes 121-123 Vérifiez si l’option de test a été spécifiée et s’appelle alors la fonction « test_dropbox » et puis quitte le programme.
  • Lignes de 124 à 126 sont accessibles si une autre option a été spécifiée. Depuis cela une option non reconnue, un message d’erreur est affiché et le programme s’arrête.
  • Lignes 127 à 133 sont exécutées lorsque aucune option n’a été spécifiée. Imprimer des lignes 128-132 ce que toutes les options valides sont et puis la ligne 133 quitte le programme.

Lignes 135-164 (cotation 6) effectuer l’initialisation pour le programme principal.

  • Lignes 135-136 impression messages indiquant le Raspberry Pi Motion Camera sensible commence et quel mode (photo ou vidéo) sera utilisé.
  • Lignes 138-141 met en place le module caméra. Ligne 139 initialise la caméra. 140-141 les lignes indiquent à la caméra, faire pivoter l’image de sorte qu’il sera côté droit vers le haut du point de vue de l’utilisateur. Retournement de l’image est nécessaire en raison de la façon dont la caméra est montée sur le panneau avant.
  • 143-145 met en place la broche GPIO pour le détecteur de mouvement PIR des lignes. Il existe deux schémas de numérotation pour les broches GPIO : ligne 144 indique le logiciel GPIO quel régime ce programme utilise. Ligne 145 affecte la broche pour le capteur PIR est une broche d’entrée.
  • Ligne 149 appelle la fonction de « upload_ip_address » pour télécharger un fichier vers Dropbox contenant l’adresse IP affectée à ce Pi de framboise. Ceci est utilisé pour le débogage mais aussi pour vous faire savoir que la caméra est en place et en cours d’exécution.

Les lignes 152-163 (cotation 6) est la boucle principale du programme.

  • Ligne 152 définit une boucle qui se répète indéfiniment jusqu'à ce que le le Raspberry Pi est arrêté.
  • Ligne 154 affiche un message indiquant que la caméra vous attendra pour détecter le mouvement.
  • Ligne 155 attend un signal du capteur PIR indiquant que le mouvement a été détecté.
  • Ligne 156 appelle la fonction de « motion_detected » pour prendre une photo ou enregistrer une vidéo et transférez-le sur Dropbox.
  • Ligne 157 affiche un message indiquant que l’appareil photo va dormir pendant quelques secondes. Le but de ce retard est empêcher trop de photos/vidéos d’être reprise pour le même événement de requête.
  • Ligne 158 lits pour le nombre spécifié de secondes.
  • Après que dormir est terminée, le programme remonte à la ligne 154.

Lignes 159 à 163 (cotation 6) sont utilisés pour des fins de débogage. Ces lignes seront exécutées si le programme a été exécuté depuis la ligne de commande et que vous appuyez sur Ctrl-C pour l’arrêter.

  • Ligne 160 affiche un message indiquant que l’utilisateur a arrêté le programme
  • Ligne 161 s’arrête le module caméra.
  • Ligne 162 cesse de la surveiller les broches GPIO.
  • Ligne 163 arrête la boucle provoquant le programme jusqu'à la sortie.

RPI-halt-btn.py

Le deuxième programme « rpi-halt-btn.py » est démarré au cours du processus de démarrage par la commande

dans le fichier système "/ etc/rc.local". Le « & » à la fin de la commande rend le programme exécuté comme un processus distinct qui continue à tourner jusqu'à ce que le programme s’arrête.

La liste 7 montre le code source pour le programme de rpi-halt-btn.py :

Lignes 2-13 initialisent le programme.

  • Lignes 2-3 importer les bibliothèques requises pour contrôler les périphériques connectés aux broches GPIO, émettre des commandes système, permet au programme de dormir.
  • Lignes 6 et 7 définissent la goupille qui surveillera l’interrupteur d’arrêt et la goupille qui contrôlera l’allumage de la LED dans l’interrupteur.
  • Ligne 8 indique le logiciel GPIO quel schéma de numérotation le programme utilisera pour les broches GPIO.
  • Ligne 9 définit la broche GPIO pour contrôler la LED sur l’interrupteur pour être une broche de sortie.
  • Ligne 10 définit la broche GPIO pour surveiller le commutateur pour presses à une broche d’entrée.
  • Ligne 11 s’allume le voyant de l’interrupteur en définissant la valeur de l’axe sur true.
  • Ligne 13 affiche un message indiquant que l’aiguillage est maintenant surveillé.

Ligne 18 conduit le programme à attendre pour le commutateur à presser.

Lignes 19 à 21 sont utilisés pour le débogage. Lorsque le programme est exécuté depuis la ligne de commande et appuyé sur Ctrl/C ces lignes seront exécutées.

  • Ligne 20 affichera un message indiquant que l’utilisateur a arrêté le programme.
  • Ligne 21 cesse de la surveiller les broches GPIO.

Lignes 22 à 26 sont exécutés lorsque le commutateur d’arrêt a été enfoncé.

  • Ligne 23-25 cause la LED sur l’interrupteur pour éteindre brièvement pour donner de la rétroaction de l’utilisateur que l’interrupteur est actionné.

    • Ligne 23 désactive la LED.
    • Ligne 24, le programme de dormir pendant une demi-seconde.
    • Ligne 25 allume la LED arrière.
  • Ligne 26 utilise la fonction « subprocess.call » pour exécuter la commande « sudo halt » qui provoquera le Pi de framboise à l’arrêt.

Lorsque le Pi de framboise a arrêt la LED sur l’interrupteur d’arrêt s’éteindra indiquant qu’il est prudent de débrancher l’appareil de la prise de courant.

Articles Liés

Un microscope de Raspberry Pi par caméra à l’aide de pièces LEGO

Un microscope de Raspberry Pi par caméra à l’aide de pièces LEGO

Raspberry Pi par caméra microscope, construit seulement à partir de pièces de LEGO.Version : 11 octobre 2015Introduction et aperçu généralJen au début, j'ai juste eu l'idée de construire un microscope simple et bon marché, à l'aide d'un pi de framboi
Raspberry Pi comme caméra de surveillance peu coûteux HD

Raspberry Pi comme caméra de surveillance peu coûteux HD

cette instructable décrit comment construire une cam de surveillance basé sur un micro-ordinateur Raspberry Pi qui enregistre la vidéo HD quand quelque chose se déplace dans la zone surveillée. Image en direct peut être visualisée depuis n'importe qu
Raspberry Pi Motion activé fantôme hurlant Transparent pour Halloween

Raspberry Pi Motion activé fantôme hurlant Transparent pour Halloween

Salutations. Veuillez garder avec moi, car il s'agit de mon premier Instructable. Cependant, j'ai ont construit à cet effet pour ce dernier Halloween et ont eu de très bons résultats avec elle. Alors j'ai pensé que je partagerais.Vidéos et des photos
Raspberry Pi Security Cam

Raspberry Pi Security Cam

Ici je vais travailler un une cam de sécurité Raspberri PiÉtape 1: Que vous faut-il ? Un Pi de framboise (j'ai utilisé B2)Un module de caméra IP framboiseUne carte SD avec 4 Go ou plus (j'ai utilisé 16GB)Un dongle USB WiFiUn clavier USBUne souris USB
Obtenez une épique 1000FPS SLOW MOTION caméra pour 150 $! et conseils d’utilisation !

Obtenez une épique 1000FPS SLOW MOTION caméra pour 150 $! et conseils d’utilisation !

Maintenant en streaming art, design et jeux à secousse vivent! un suivi serait étonnant et je serais ravi de te parler! ^. ^- http://www.Twitch.TV/soulis_greyDans cette Instructiable, je vais vous montrer une caméra (Casio ZR200) que vous pouvez ache
Stop Motion Camera Dolly de Re-purposed pièces

Stop Motion Camera Dolly de Re-purposed pièces

ce Instructable décrit la création d'un chariot de caméra avec des parties reciblées.Le chariot a été créé pour filmer nos Instructables Creative réutiliser Hackerspace défi Night Stop Motion vidéoNotre dernière vidéo peut être vu ci-dessous :Dans le
Raspberry Pi caméra Birdbox

Raspberry Pi caméra Birdbox

Salut! C'est un guide étape par étape à la création d'une caméra de Birdbox Raspberry Pi que fonctionnalités en temps réel la vidéo en streaming, détection de mouvement, LEDs infrarouge pour la vision nocturne et une solution bon marché de Power-over
Comment transformer une caméra USB avec Raspberry Pi en une caméra de IP Onvif ?

Comment transformer une caméra USB avec Raspberry Pi en une caméra de IP Onvif ?

IntroductionCette instructable, nous ferons une nouvelle solution de caméra intéressante, qui n'ont jamais vu auparavant ! Je voudrais montrer vous comment pouvez-vous faire connexion votre caméra USB et Raspberry Pi avec Camera SDK. Le but est de tr
Stand système de vidéosurveillance seul avec Raspberry Pi

Stand système de vidéosurveillance seul avec Raspberry Pi

Ce tutoriel explique comment construire un stand de système de surveillance vidéo autonomes fondé sur Raspberry Pi.Nous allons utiliser une caméra de Pi de framboise qui continue d'enregistrer la vidéo sur un lecteur flash usb. Cela crée des fichiers
Raspberry Pi DropCam Alternative

Raspberry Pi DropCam Alternative

je cherchais un moyen de vérifier ma maison alors qu'à l'extérieur, ainsi que demander toute motion capturé et téléchargées sur internet comme une caméra de sécurité. Fait quelques recherches en ligne et se rendre compte que j'avais un pi framboise e
Caméra infrarouge de jeu framboise Pi

Caméra infrarouge de jeu framboise Pi

J'ai ai juste commencé à explorer le Raspberry Pi et été intrigué avec le module de caméra infrarouge de Pi. J'habite dans une région un peu éloignée et ont vu des signes de diverses créatures sauvages exploration autour de la maison pendant la nuit.
Voiture RC Arduino avec Camera FPV

Voiture RC Arduino avec Camera FPV

Ce Instructable décrit une télécommande de voiture que j'ai mis en place. La voiture n'a aucun véritable but - c'était tout un défi, pour voir ce qui pourrait être fait avec le matériel couramment disponible. Il possède les caractéristiques suivantes
Raspberry PI Rotary Time Lapse Rig.

Raspberry PI Rotary Time Lapse Rig.

Donc cette instructable est sur une plate-forme de laps de temps. Il a commencé comme une idée simple et puis est passé à ce que vous voyez. Même si vous ne voulez pas construire une plate-forme de laps de temps certaines parties de cette constructio
Mouvement déclenché caméra avec framboise Pi

Mouvement déclenché caméra avec framboise Pi

Raspberry Pi avec HC-SR501 capteur passif à infrarouge pour détecter l'apparition de l'écureuil, puis déclencher SONY A6300 pour enregistrer la vidéo sur le meilleur angle et la distance.Étape 1: Ce que vous devez : Un appareil photo, j'ai utilisé SO