Table des matières:
- Étape 1: Configuration de votre Pi
- Étape 2: SSH dans votre PI
- Étape 3: Envoyez votre adresse IP par e-mail au démarrage
- Étape 4: Installation et configuration de Motion
- Étape 5: Envoi par e-mail de vidéos à partir de Motion lors de la détection
- Étape 6: Dépannage et sources
Vidéo: Caméra de détection de mouvement Raspberry Pi 3 avec flux en direct : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
introduction
Dans ce projet, vous apprendrez à construire une caméra de détection de mouvement que vous pourrez utiliser comme piège photographique, moniteur pour animaux de compagnie/bébé, caméra de sécurité et bien plus encore.
Ce Projet est organisé en plusieurs étapes:
- introduction
- Configurer votre Pi
- SSH dans votre Pi
- Envoi par e-mail de votre adresse IP au démarrage
- Installation et configuration de Motion
- Envoi par e-mail de vidéos à partir de Motion lors de la détection
- Dépannage et sources
Ce dont vous aurez besoin:
- Un modèle Raspberry Pi 3 b ~~$35
- Carte Micro SD de 8 Go ~~$10
- Webcam USB ~~$20 (ce projet a utilisé une webcam Logitech HD c270)
- câble micro-usb ~~$5
- Soit:
- batterie rechargeable de 5 volts (batterie de secours du téléphone), cela rend votre projet sans fil ~~ 20 $
- ou
- adaptateur mural usb ~~$5
- Une connexion Wi-Fi
Ce à quoi vous aurez besoin d'accéder pour la configuration:
- Un moniteur
- Une souris et un clavier
- Un ordinateur avec un emplacement pour carte SD
- Un convertisseur de carte Micro SD vers carte SD (doit être fourni avec votre carte micro SD)
Étape 1: Configuration de votre Pi
Maintenant, configurons votre Pi
Pour commencer, assurez-vous d'avoir tous les éléments requis de la dernière étape. Ensuite, suivez les étapes sur le site Web de Raspberry Pi pour installer Raspbian Jessie sur votre carte Microsd, que vous trouverez ici.
Une fois que vous avez installé Raspbian sur votre Pi, il est temps de configurer certaines fonctionnalités de base.
Wifi
La première étape pour tirer le meilleur parti de votre Pi consiste à le connecter à Internet. Vous avez peut-être déjà terminé cette étape en localisant le symbole WiFi dans le coin supérieur droit de l'écran principal de votre Pi et en vous y connectant, ou en faisant la même chose avant d'installer Raspbian à la dernière étape. Si vous ne parvenez pas à vous connecter à votre réseau WiFi à partir de l'interface de bureau de votre Pi, vous pouvez suivre les instructions ici pour configurer le WiFi via la ligne de commande.
SSH
Un outil très pratique à votre disposition lorsque vous utilisez votre Pi est la possibilité d'émettre des commandes à votre Pi dans ce qu'on appelle une configuration sans tête. En utilisant un Secure SHell ou SSH, vous pouvez contrôler votre Pi à distance depuis un ordinateur. Avec cette méthode, tout ce dont vous aurez besoin pour éditer votre Pi est une source d'alimentation pour le garder allumé, plus de moniteur et de clavier !
Étape 2: SSH dans votre PI
SSH dans votre Raspberry Pi est facile et très utile, car le processus vous permet d'émettre des commandes vers votre Pi depuis n'importe quel ordinateur avec rien de plus qu'une connexion WiFi.
Pour SSH dans votre Pi, vous devez suivre ces 3 étapes simples.
Tout d'abord, vous devez activer SSH sur votre Pi. Pour ce faire, ouvrez une fenêtre de commande dans votre Pi et tapez:
sudo raspi-config
Cette commande permet d'entrer dans un menu de configuration. à partir de là, vous voudrez utiliser les touches fléchées, tabulation et entrée pour accéder d'abord aux options d'interfaçage, puis pour activer SSH, ainsi que la caméra, puis quitter et redémarrer le pi.
Ensuite, vous devrez trouver l'adresse IP de votre Pi. Dans un terminal de commande, tapez:
sudo ifconfig
Et votre adresse IP doit être dans la section wlan0 qui apparaît, juste sous Link encap: ethernet. Dans l'image de démonstration ci-dessus, l'adresse IP est 192.168.1.10.
Enfin, vous devrez soit ouvrir l'application de terminal intégrée sur un mac, soit rechercher et suivre les instructions d'une application ssh tierce pour Windows. Dans l'application Terminal, saisissez:
ssh pi@VOTRE ADRESSE IP
Si vous n'avez pas modifié le mot de passe dans Raspi-config, votre mot de passe à saisir lorsque vous y êtes invité sera le mot de passe par défaut: framboise.
À partir de là, vous devriez être prêt à partir !
Étape 3: Envoyez votre adresse IP par e-mail au démarrage
Dans cette étape, nous allons nous concentrer sur la façon d'accéder à votre Raspberry Pi, quel que soit le réseau sur lequel vous vous trouvez. Selon le réseau, l'adresse IP du Pi change. Et si vous n'avez pas de configuration de moniteur, vous devrez vous connecter au Pi pour déclencher le protocole de détection de mouvement, modifier les préférences de mouvement ou accéder à tout autre élément de l'appareil. Pour résoudre ce problème, nous allons écrire un script python qui nous envoie par e-mail l'adresse IP actuelle du Pi au démarrage. Le script python est le suivant et a été stocké dans un répertoire marqué "background".
#start dans le répertoire personnel
disque ~
#créer un dossier d'arrière-plan
fond mkdir
#créer un script python
sudo nano emailip.py
#écrire dans emailip.py
socket d'importation
s = socket.socket(socket. AF_INET, socket. SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])x = s.getsockname()[0]s.close()
importer smtplib
depuis email. MIMEMultipart import MIMEMultipart
depuis email. MIMEText importer MIMEText
fromaddr = "VOTRE ADRESSE"
toaddr = "ADRESSE DE RECEPTION"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['À'] = toaddr
msg['Sujet'] = "Adresse IP"
body = xmsg.attach(MIMEText(body, 'plain'))
serveur = smtplib. SMTP('smtp.gmail.com', 587)
serveur.starttls()
server.login(fromaddr, "VOTRE MOT DE PASSE")
texte = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
serveur.quit()
#puis cela le fait au redémarrage
sudo nano /etc/rc.local
#entrer dans /etc/rc.local
tandis que ! /sbin/ifconfig wlan0 | grep -q 'inet addr:[0-9]';
dort 3
terminé
_IP=$(nom d'hôte -I) || vrai
if ["$_IP"]; alors
printf "Mon adresse IP est %s\n" "$_IP"
python /home/pi/Background/emailip.py &
Fi
sortie 0
#et tu as fini
Étape 4: Installation et configuration de Motion
#mettre à jour pi
sudo apt-get mise à jour
sudo apt-get mise à niveau
#Télécharger
sudo apt-get install motion
#modifiez maintenant ce fichier avec les modifications suivantes
sudo nano /etc/motion/motion.conf
#pour définir une norme pour ce didacticiel, modifiez
#################
démon sur
stream_localhost désactivé
webcontrol_localhost désactivé
ffmpeg_output_movies sur
rép_cible /var/lib/motion
##################
#options de streaming du navigateur Web local
##################
stream_maxrate 100 #Cela permettra le streaming en temps réel mais nécessite plus de bande passante et de ressources
framerate 60 #Cela permettra de capturer 60 images par seconde #plus cela est élevé, plus le traitement vidéo est lent
width 640 #Cela change la largeur de l'image affichée
hauteur 480 #Cela change la hauteur de l'image affichée
##################
#envoi par e-mail des paramètres vidéo dans …/motion.conf
##################
#supprimer le "; " devant la ligne, le point-virgule commente la ligne
on_event_start python /home/pi/background/motionalert.py %f
on_movie_end python /home/pi/background/motionvid.py %f
##################
#astectique
##################
#choix décrits dans le dossier
output_pictures locate_motion_style
##################
#puis changer
sudo nano /etc/default/motion
#dire
start_motion_daemon=oui
#Enfin, démarrez le B****
démarrage du mouvement du service sudo
#vous pouvez changer la commande pour "arrêter" ou "redémarrer"
Étape 5: Envoi par e-mail de vidéos à partir de Motion lors de la détection
E-mail lorsqu'un mouvement est détecté:
#commencer à la maison
dircd ~
#créer un script python d'alerte de mouvement
sudo nano /home/pi/background/motionalert.py
#écrivez
importer smtplib
à partir de datetime importer datetime
depuis email. MIMEMultipart import MIMEMultipart
depuis email. MIMEText importer MIMEText
fromaddr = "VOTRE ADRESSE"
toaddr = "ADRESSE DE RECEPTION"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['À'] = toaddr
msg['Subject'] = "Mouvement détecté"
body = 'Un mouvement a été détecté.\nHeure: %s' % str(datetime.now())
msg.attach(MIMEText(body, 'plain'))
serveur = smtplib. SMTP('smtp.gmail.com', 587)
serveur.starttls()
server.login(fromaddr, "VOTRE MOT DE PASSE")
texte = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
serveur.quit()
Envoyer la vidéo du mouvement par e-mail lorsque la vidéo est enregistrée:
#commencer à homedircd ~
#create motion video python scriptsudo nano /home/pi/background/motionvid.py
importer smtplib
depuis email. MIMEMultipart import MIMEMultipart
depuis email. MIMEText importer MIMEText
depuis email. MIMEBase importer MIMEBase
à partir d'encodeurs d'importation d'e-mails
fromaddr = "VOTRE E-MAIL"
toaddr = "ADRESSE E-MAIL QUE VOUS ENVOYEZ"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['À'] = toaddr
msg['Subject'] = "Motion Cam activé"
body = "Vidéo de mouvement détecté"
msg.attach(MIMEText(body, 'plain'))
importer le système d'exploitation
rootpath = '/var/lib/motion'
filelist = [os.path.join(rootpath, f) pour f dans os.listdir(rootpath)]
filelist = [f pour f dans filelist if os.path.isfile(f)]
le plus récent = max (liste de fichiers, clé = lambda x: os.stat(x).st_mtime)
nom de fichier = le plus récent
importer le système d'exploitation
rootpath = '/var/lib/motion'
filelist = [os.path.join(rootpath, f) pour f dans os.listdir(rootpath)]
filelist = [f pour f dans filelist if os.path.isfile(f)]
le plus récent = max (liste de fichiers, clé = lambda x: os.stat(x).st_mtime)
pièce jointe = open(le plus récent, "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((pièce jointe).read())
encoders.encode_base64(partie)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
msg.attach(partie)
serveur = smtplib. SMTP('smtp.gmail.com', 587)
serveur.starttls()
server.login(fromaddr, "VOTRE MOT DE PASSE")
texte = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
serveur.quit()
Étape 6: Dépannage et sources
Dépannage:
Parce que ce projet comporte plusieurs étapes, il y a plusieurs points où les choses peuvent mal tourner. Vous trouverez ci-dessous quelques-unes des erreurs possibles qui pourraient survenir et comment les corriger.
- Lors de la configuration de votre pi pour vous envoyer par e-mail son adresse IP actuelle, il est crucial de modifier le fichier rc.local comme indiqué précédemment car cela permet un léger délai avant que le programme ne s'active après le redémarrage. Sinon, le pi ne sera pas encore connecté au wifi et l'e-mail ne sera pas envoyé.
- Lors de l'édition du fichier motion.conf, assurez-vous de supprimer les points-virgules devant certains paramètres. Le point-virgule supprime une action donnée, sinon la modification ne prendra pas effet.
- Le fichier motion.conf est très bien organisé et détaillé. N'hésitez pas à modifier les paramètres à votre guise, mais comprenez qu'ils peuvent affecter le succès du système de capture de mouvement.
- Après avoir configuré les options d'alerte par e-mail et de vidéo par e-mail, il est important de noter que l'e-mail de la vidéo de détection de mouvement prendra un peu plus de temps à envoyer que l'e-mail d'alerte initial. C'est parce que la vidéo se termine quelques secondes après que le mouvement n'est plus détecté, et parce que la pièce jointe de l'e-mail peut être suffisamment volumineuse pour nécessiter quelques minutes pour être reçue. Dans certains cas, si le mouvement est maintenu pendant une très longue période, il peut être trop important pour être envoyé. Pour cette raison, c'est toujours une bonne idée de vérifier le livestream après avoir reçu l'e-mail d'alerte initial.
Pourquoi le mouvement ?:
Lorsque nous nous sommes lancés pour la première fois dans ce projet, nous avons considéré plusieurs ressources différentes. Nous avons d'abord envisagé d'utiliser la PiCam, une unité de caméra spécialement conçue pour le Raspberry Pi. La PiCam est certainement un appareil capable et a de nombreuses applications, mais elle se limite à l'utilisation de programmes spécialement conçus pour elle et est relativement chère par rapport aux webcams polyvalentes bon marché. Ainsi, afin de rendre ce projet accessible à un public plus large, nous avons décidé d'utiliser une webcam USB commune. La question suivante était de savoir quel logiciel intégrer. Nous avons initialement envisagé OpenCV, un logiciel gratuit qui permet de nombreux types de projets de vision par ordinateur et d'imagerie. L'un des problèmes ici est qu'OpenCV est un fichier volumineux qui prend beaucoup de mémoire et une configuration longue. La configuration comporte également plusieurs étapes, laissant encore plus de place à l'erreur. Nous avons constaté que pour notre projet spécifique, Motion était plus simple à configurer et à faire fonctionner, mais beaucoup plus robuste dans son exécution.
Sources
Sources de code:
www.techradar.com/how-to/computing/how-to-b…
pimylifeup.com/raspberry-pi-webcam-server/
www.pyimagesearch.com/2015/06/01/home-surve…
naelshiab.com/tutorial-send-email-python/
www.raspberrypi.org/documentation/linux/us…
learn.adafruit.com/adafruits-raspberry-pi-…
learn.adafruit.com/adafruits-raspberry-pi-…
pinout.xyz/pinout/i2c
Crédits photos:
Escargot SSH:
Logo du courrier:
Webcam Logitech:
Fenêtre SSH:
Conseillé:
Caméra de détection de mouvement Raspberry Pi dans un boîtier de projecteur : 3 étapes
Caméra de détection de mouvement Raspberry Pi dans un boîtier Floodlight : j'ai bricolé avec Raspberry Pi pendant un certain temps et je les utilise maintenant pour une petite variété de choses, mais principalement comme caméra de vidéosurveillance pour surveiller ma maison pendant mon absence avec la possibilité de visionner à distance un flux en direct, mais recevoir également des e-mails de captures d'images
Caméra e-mail Arduino Security 3G/GPRS avec détection de mouvement : 4 étapes
Caméra e-mail Arduino Security 3G/GPRS avec détection de mouvement : dans ce manuel, je voudrais parler d'une version de la construction d'un système de surveillance de sécurité avec un détecteur de mouvement et de l'envoi de photos à la boîte aux lettres via un bouclier 3G/GPRS. Cet article est basé sur autres consignes : consigne 1 et consigne
Webcam la plus simple en tant que caméra de sécurité - Détection de mouvement et photos envoyées par e-mail : 4 étapes
Webcam la plus simple en tant que caméra de sécurité - Détection de mouvement et images envoyées par courrier électronique : Vous n'avez plus besoin de télécharger ou de configurer un logiciel pour obtenir des images détectées par votre webcam sur votre courrier électronique - utilisez simplement votre navigateur. Utilisez un navigateur Firefox, Chrome, Edge ou Opera à jour sur Windows, Mac ou Android pour capturer l'image
Gardien V1.0 --- Mise à niveau de la caméra judas de porte avec Arduino (enregistrement de détection de mouvement et fonctions de choc électrique) : 5 étapes
Gardien V1.0 ||| Mise à niveau de la caméra judas de porte avec Arduino (enregistrement de détection de mouvement et fonctionnalités de choc électrique) : j'ai commandé une caméra judas mais lorsque je l'utilise, je me suis rendu compte qu'il n'y avait pas de fonction d'enregistrement automatique (activée par la détection de mouvement). Ensuite, j'ai commencé à enquêter sur son fonctionnement. Pour enregistrer une vidéo, vous devez 1- maintenir enfoncé le bouton d'alimentation pendant presque 2 secondes
Sortie à contrôle de mouvement - À partir d'une lumière à détection de mouvement : 6 étapes
Sortie à contrôle de mouvement - À partir d'une lampe à détection de mouvement : Imaginez que vous êtes un trick-or-treater allant à la maison la plus effrayante du bloc. Après avoir dépassé toutes les goules, fantômes et cimetières, vous arrivez enfin au dernier chemin. Vous pouvez voir les bonbons dans un bol devant vous ! Mais soudain, un gho