Inhaltsverzeichnis:

Raspberry Pi 3 Bewegungserkennungskamera mit Live-Feed - Gunook
Raspberry Pi 3 Bewegungserkennungskamera mit Live-Feed - Gunook

Video: Raspberry Pi 3 Bewegungserkennungskamera mit Live-Feed - Gunook

Video: Raspberry Pi 3 Bewegungserkennungskamera mit Live-Feed - Gunook
Video: Testing Raspberry Pi Camera Module v3 2024, November
Anonim
Raspberry Pi 3 Bewegungserkennungskamera mit Live-Feed
Raspberry Pi 3 Bewegungserkennungskamera mit Live-Feed

Einführung

In diesem Projekt lernen Sie, wie Sie eine Bewegungserkennungskamera bauen, die Sie als Kamerafalle, Haustier- / Babymonitor, Sicherheitskamera und vieles mehr verwenden können.

Dieses Projekt ist in mehrere Schritte unterteilt:

  • Einführung
  • Einrichten Ihres Pi
  • SSHing in deinen Pi
  • Senden Sie Ihre IP-Adresse beim Booten per E-Mail
  • Motion installieren und einrichten
  • Versenden von Videos von Motion bei Erkennung per E-Mail
  • Fehlerbehebung und Quellen

Was du brauchen wirst:

  • Ein Raspberry Pi 3 Modell b ~~$35
  • 8-GB-Micro-SD-Karte ~~$10
  • USB-Webcam ~~$20 (dieses Projekt verwendete eine Logitech HD-Webcam c270)
  • Micro-USB-Kabel ~~$5
  • entweder:
  • wiederaufladbarer 5-Volt-Akku (Telefon-Backup-Batterie), dies macht Ihr Projekt drahtlos ~~ $ 20
  • oder
  • USB-Wandadapter ~~$5
  • Eine WLAN-Verbindung

Was Sie für die Einrichtung benötigen:

  • Ein Bildschirm
  • Eine Maus und eine Tastatur
  • Ein Computer mit einem SD-Kartensteckplatz
  • Ein Micro-SD-zu-SD-Kartenkonverter (sollte mit Ihrer Micro-SD-Karte geliefert werden)

Schritt 1: Einrichten Ihres Pi

Einrichten Ihres Pi
Einrichten Ihres Pi

Jetzt richten wir dein Pi. ein

Stellen Sie zunächst sicher, dass Sie alle erforderlichen Elemente aus dem letzten Schritt haben. Befolgen Sie dann die Schritte auf der Raspberry Pi-Website zur Installation von Raspbian Jessie auf Ihrer Microsd-Karte, die Sie hier finden.

Sobald Sie Raspbian auf Ihrem Pi installiert haben, ist es an der Zeit, einige grundlegende Funktionen einzurichten.

W-lan

Der erste Schritt, um das Beste aus Ihrem Pi herauszuholen, besteht darin, ihn mit dem Internet zu verbinden. Möglicherweise haben Sie diesen Schritt bereits abgeschlossen, indem Sie entweder das WiFi-Symbol in der oberen rechten Ecke des Hauptbildschirms Ihres Pi finden und sich dort anmelden, oder dasselbe tun, bevor Sie Raspbian im letzten Schritt installieren. Wenn Sie sich nicht über die Desktop-Oberfläche Ihres Pi bei Ihrem WLAN-Netzwerk anmelden können, können Sie den Anweisungen hier folgen, um WLAN über die Befehlszeile einzurichten.

SSH

Ein sehr praktisches Werkzeug, das Ihnen bei der Verwendung Ihres Pi zur Verfügung steht, ist die Option, Befehle an Ihren Pi in einem sogenannten Headless-Setup zu erteilen. Durch die Verwendung einer Secure SHell oder SSH können Sie Ihren Pi von einem Computer aus fernsteuern. Mit dieser Methode benötigen Sie zum Bearbeiten Ihres Pi nur eine Stromquelle, um ihn eingeschaltet zu halten, kein Monitor und keine Tastatur mehr!

Schritt 2: SSHing in Ihren PI

SSHing in Ihren PI
SSHing in Ihren PI
SSHing in Ihren PI
SSHing in Ihren PI

SSHing in Ihren Raspberry Pi ist einfach und sehr nützlich, da Sie mit diesem Prozess von jedem Computer mit nur einer WiFi-Verbindung Befehle an Ihren Pi senden können.

Um eine SSH-Verbindung zu Ihrem Pi herzustellen, müssen Sie diese 3 einfachen Schritte ausführen.

Zuerst müssen Sie SSH auf Ihrem Pi aktivieren. Öffnen Sie dazu ein Befehlsfenster in Ihrem Pi und geben Sie Folgendes ein:

sudo raspi-config

Mit diesem Befehl können Sie ein Konfigurationsmenü aufrufen. Von dort aus sollten Sie die Pfeil-, Tab- und Eingabetasten verwenden, um zuerst in die Schnittstellenoptionen zu gelangen, dann SSH sowie die Kamera zu aktivieren, dann das Pi zu beenden und neu zu starten.

Als nächstes müssen Sie die IP-Adresse Ihres Pi finden. Geben Sie in einem Befehlsterminal Folgendes ein:

sudo ifconfig

Und Ihre IP-Adresse sollte sich im Abschnitt wlan0 befinden, der direkt unter Link encap:ethernet angezeigt wird. Im obigen Demobild lautet die IP-Adresse 192.168.1.10.

Zuletzt müssen Sie entweder die integrierte Terminal-App auf einem Mac öffnen oder die Anweisungen für eine SSH-App eines Drittanbieters für Windows suchen und befolgen. Geben Sie in der Terminal-App Folgendes ein:

ssh pi@IHRE IP-ADRESSE

Wenn Sie das Passwort in Raspi-config nicht geändert haben, ist Ihr Passwort, das Sie eingeben müssen, wenn Sie dazu aufgefordert werden, das Standardpasswort: raspberry.

Von dort aus sollte es gut gehen!

Schritt 3: Senden Sie Ihre IP-Adresse beim Booten per E-Mail

E-Mail an Ihre IP-Adresse beim Booten
E-Mail an Ihre IP-Adresse beim Booten

In diesem Schritt konzentrieren wir uns darauf, wie Sie auf Ihren Raspberry Pi zugreifen können, unabhängig davon, in welchem Netzwerk Sie sich befinden. Je nach Netzwerk ändert sich die IP-Adresse des Pi. Und wenn Sie kein Monitor-Setup haben, müssen Sie eine SSH-Verbindung zum Pi herstellen, um das Bewegungserkennungsprotokoll auszulösen, die Bewegungseinstellungen zu ändern oder auf alles andere auf dem Gerät zuzugreifen. Um dieses Problem zu lösen, werden wir ein Python-Skript schreiben, das uns beim Start die aktuelle IP-Adresse des Pi per E-Mail zusendet. Das Python-Skript sieht wie folgt aus und wurde in einem Verzeichnis mit der Bezeichnung "Hintergrund" gespeichert.

#starte im Home-Verzeichnis

cd ~

#Hintergrundordner erstellen

mkdir-Hintergrund

#python-Skript erstellen

sudo nano emailip.py

#schreiben Sie in emailip.py

Steckdose importieren

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()

smtplib importieren

aus email. MIMEMultipart importieren MIMEMultipart

aus email. MIMEText importieren MIMEText

fromaddr = "IHRE ADRESSE"

toaddr = "EMPFANGSADRESSE"

msg = MIMEMultipart()

msg['From'] = fromaddr

msg['To'] = toadr

msg['Betreff'] = "IP-Adresse"

body = xmsg.attach(MIMEText(body, 'plain'))

server = smtplib. SMTP('smtp.gmail.com', 587)

server.starttls()

server.login(fromaddr, "IHR PASSWORT")

text = msg.as_string()

server.sendmail(fromaddr, toaddr, text)

server.quit()

#dann tut es das beim Neustart

sudo nano /etc/rc.local

#Geben Sie in /etc/rc.local ein

während ! /sbin/ifconfig wlan0 | grep -q 'inet-Adresse:[0-9]';

schlafe 3

getan

_IP=$(Hostname -I) || wahr

if ["$_IP"]; dann

printf "Meine IP-Adresse ist %s\n" "$_IP"

python /home/pi/Background/emailip.py &

fi

Ausgang 0

#und du bist fertig

Schritt 4: Motion installieren und einrichten

Motion installieren und einrichten
Motion installieren und einrichten

#update pi

sudo apt-get update

sudo apt-get upgrade

#herunterladen

sudo apt-get install motion

#bearbeite jetzt diese Datei mit den folgenden Änderungen

sudo nano /etc/motion/motion.conf

#um einen Standard für dieses Tutorial zu setzen, ändere

#################

Dämon an

stream_localhost aus

webcontrol_localhost aus

ffmpeg_output_movies an

target_dir /var/lib/motion

##################

#Streaming-Optionen für den lokalen Webbrowser

##################

stream_maxrate 100 #Dies ermöglicht Echtzeit-Streaming, erfordert jedoch mehr Bandbreite und Ressourcen

Framerate 60 #Dies ermöglicht die Aufnahme von 60 Frames pro Sekunde #je höher diese wird, desto langsamer ist die Videoverarbeitung

width 640 #Dies ändert die Breite des angezeigten Bildes

height 480 #Dies ändert die Höhe des angezeigten Bildes

##################

#Videoeinstellungen per E-Mail in …/motion.conf senden

##################

#lösche das "; " vor der Zeile, das Semikolon kommentiert die Zeile aus

on_event_start python /home/pi/background/motionalert.py %f

on_movie_end python /home/pi/background/motionvid.py %f

##################

#astektik

##################

#Auswahl in der Datei beschrieben

output_pictures locate_motion_style

##################

#dann ändern

sudo nano /etc/default/motion

#sagen

start_motion_daemon=ja

#zuletzt starte das B**** hoch

sudo service Bewegungsstart

#Sie können den Befehl in "stop" oder "restart" ändern

Schritt 5: E-Mail-Videos von Bewegung bei Erkennung senden

Versenden von Videos von Bewegungen bei Erkennung per E-Mail
Versenden von Videos von Bewegungen bei Erkennung per E-Mail

E-Mail bei Bewegungserkennung:

#start zu hause

dird ~

#python-Skript für Bewegungsalarm erstellen

sudo nano /home/pi/background/motionalert.py

#schreiben

smtplib importieren

aus datetime importieren datetime

aus email. MIMEMultipart importieren MIMEMultipart

aus email. MIMEText importieren MIMEText

fromaddr = "IHREADRESSE"

toaddr = "EMPFANGSADRESSE"

msg = MIMEMultipart()

msg['From'] = fromaddr

msg['To'] = toadr

msg['Betreff'] = "Bewegung erkannt"

body = 'Eine Bewegung wurde erkannt.\nZeit: %s' % str(datetime.now())

msg.attach(MIMEText(body, 'plain'))

server = smtplib. SMTP('smtp.gmail.com', 587)

server.starttls()

server.login(fromaddr, "IHRPASSWORT")

text = msg.as_string()

server.sendmail(fromaddr, toaddr, text)

server.quit()

E-Mail Bewegungsvideo beim Speichern des Videos:

#start bei homedircd ~

#erstellen Sie Motion-Video-Python-Skriptsudo nano /home/pi/background/motionvid.py

smtplib importieren

aus email. MIMEMultipart importieren MIMEMultipart

aus email. MIMEText importieren MIMEText

aus email. MIMEBase importieren MIMEBase

von E-Mail-Import-Encodern

fromaddr = "IHRE E-MAIL"

toaddr = "E-MAIL-ADRESSE, AN DIE SIE SENDEN"

msg = MIMEMultipart()

msg['From'] = fromaddr

msg['To'] = toadr

msg['Subject'] = "Motion Cam aktiviert"

body = "Video der Bewegung erkannt"

msg.attach(MIMEText(body, 'plain'))

Importieren von OS

Rootpfad = '/var/lib/motion'

filelist = [os.path.join(rootpath, f) für f in os.listdir(rootpath)]

filelist = [f für f in filelist if os.path.isfile(f)]

neueste = max(filelist, key=lambda x: os.stat(x).st_mtime)

Dateiname = neuestes

Importieren von OS

Rootpfad = '/var/lib/motion'

filelist = [os.path.join(rootpath, f) für f in os.listdir(rootpath)]

filelist = [f für f in filelist if os.path.isfile(f)]

neueste = max(filelist, key=lambda x: os.stat(x).st_mtime)

Anhang = open(neueste, "rb")

part = MIMEBase('application', 'octet-stream')

part.set_payload((Anhang).read())

Encoders.encode_base64 (Teil)

part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

msg.attach(teil)

server = smtplib. SMTP('smtp.gmail.com', 587)

server.starttls()

server.login(fromaddr, "IHR PASSWORT")

text = msg.as_string()

server.sendmail(fromaddr, toaddr, text)

server.quit()

Schritt 6: Fehlerbehebung und Quellen

Fehlerbehebung und Quellen
Fehlerbehebung und Quellen

Fehlerbehebung:

Da dieses Projekt mehrere Phasen hat, gibt es mehrere Punkte, an denen etwas schief gehen kann. Nachfolgend finden Sie einige der möglichen Fehler, die auftreten können, und wie Sie sie beheben können.

  • Wenn Sie Ihr Pi so einrichten, dass es Ihnen seine aktuelle IP-Adresse per E-Mail zusendet, ist es wichtig, die Datei rc.local wie zuvor gezeigt zu bearbeiten, da dies eine leichte Verzögerung ermöglicht, bevor das Programm nach dem Neustart aktiviert wird. Andernfalls ist der Pi noch nicht mit dem WLAN verbunden und die E-Mail wird nicht gesendet.
  • Achten Sie beim Bearbeiten der Datei motion.conf darauf, die Semikolons vor bestimmten Parametern zu löschen. Das Semikolon unterdrückt eine bestimmte Aktion, sonst wird die Änderung nicht wirksam.
  • Die Datei motion.conf ist sehr gut organisiert und detailliert. Sie können die Einstellungen nach Belieben ändern, aber verstehen Sie, dass sie den Erfolg des Motion-Capture-Systems beeinträchtigen können.
  • Nach dem Einrichten der E-Mail-Warnungs- und E-Mail-Videooptionen ist es wichtig zu beachten, dass die E-Mail des Bewegungserkennungsvideos etwas länger dauert als das Senden als die erste Warn-E-Mail. Dies liegt daran, dass das Video einige Sekunden endet, nachdem keine Bewegung mehr erkannt wurde, und weil der E-Mail-Anhang groß genug sein könnte, um einige Minuten zum Empfangen zu benötigen. In einigen Fällen, wenn die Bewegung über einen sehr langen Zeitraum aufrechterhalten wird, kann sie zu groß sein, um überhaupt gesendet zu werden. Aus diesem Grund ist es immer eine gute Idee, den Livestream nach Erhalt der ersten Benachrichtigungs-E-Mail zu überprüfen.

Warum Bewegung?:

Zu Beginn dieses Projekts haben wir verschiedene Ressourcen in Betracht gezogen. Zuerst haben wir überlegt, die PiCam zu verwenden, eine Kameraeinheit, die speziell für den Himbeer-Pi entwickelt wurde. Die PiCam ist sicherlich ein leistungsfähiges Gerät und hat viele Anwendungen, beschränkt sich jedoch auf die Verwendung speziell dafür entwickelter Programme und ist im Vergleich zu billigen Mehrzweck-Webcams relativ teuer. Um dieses Projekt einem größeren Publikum zugänglich zu machen, haben wir uns daher für eine gängige USB-Webcam entschieden. Die nächste Frage war, welche Software integriert werden sollte. Wir haben zunächst OpenCV in Betracht gezogen, eine kostenlose Software, die viele verschiedene Arten von Computer Vision- und Imaging-Projekten ermöglicht. Eines der Probleme hier ist, dass OpenCV eine riesige Datei ist, die viel Speicher beansprucht und eine lange Einrichtungszeit erfordert. Das Setup hat auch mehrere Stufen, die noch mehr Raum für Fehler lassen. Wir haben festgestellt, dass Motion für unser spezielles Projekt einfacher einzurichten und in Betrieb zu nehmen war, aber viel robuster in der Ausführung.

Quellen

Codequellen:

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

Bildnachweis:

SSH-Schnecke:

Mail-Logo:

Logitech-Webcam:

SSH-Fenster:

Empfohlen: