תוכן עניינים:

מצלמת זיהוי תנועה של Raspberry Pi 3 עם הזנה חיה: 6 שלבים
מצלמת זיהוי תנועה של Raspberry Pi 3 עם הזנה חיה: 6 שלבים

וִידֵאוֹ: מצלמת זיהוי תנועה של Raspberry Pi 3 עם הזנה חיה: 6 שלבים

וִידֵאוֹ: מצלמת זיהוי תנועה של Raspberry Pi 3 עם הזנה חיה: 6 שלבים
וִידֵאוֹ: מצלמת הזנת הציפורים הטובה ביותר לשנת 2024: 5 הבחירות המוב... 2024, נוֹבֶמבֶּר
Anonim
מצלמת זיהוי תנועה של Raspberry Pi 3 עם הזנה חיה
מצלמת זיהוי תנועה של Raspberry Pi 3 עם הזנה חיה

מבוא

בפרויקט זה, תלמד כיצד לבנות מצלמת זיהוי תנועה שתוכל להשתמש בה כמלכודת מצלמות, צג לחיות מחמד/תינוק, מצלמת אבטחה ועוד.

פרויקט זה מאורגן בכמה שלבים:

  • מבוא
  • הגדרת ה- Pi שלך
  • SSHing לתוך הפי שלך
  • שליחת כתובת ה- IP שלך בדוא"ל בעת אתחול
  • התקנה והגדרת Motion
  • שליחת סרטונים מ- Motion באימייל
  • פתרון בעיות ומקורות

מה אתה צריך:

  • דגם פטל פי 3 3 ~ 35 $
  • כרטיס מיקרו SD 8GB ~ ~ $ 10
  • מצלמת רשת USB ~ ~ $ 20 (בפרויקט זה נעשה שימוש במצלמת אינטרנט Logitech HD c270)
  • כבל מיקרו USB ~ ~ $ 5
  • אוֹ:
  • מארז סוללות 5 וולט נטען (סוללת גיבוי לטלפון), זה הופך את הפרויקט שלכם אלחוטי ל ~ ~ $ 20
  • אוֹ
  • מתאם קיר USB ~ ~ $ 5
  • חיבור WiFi

מה תצטרך גישה אליו לצורך ההתקנה:

  • מוניטור
  • עכבר ומקלדת
  • מחשב עם חריץ לכרטיס SD
  • ממיר כרטיס SD ל- SD (אמור להגיע עם כרטיס ה- Micro SD שלך)

שלב 1: הגדרת ה- Pi שלך

הגדרת ה- Pi שלך
הגדרת ה- Pi שלך

עכשיו בואו להגדיר את ה- Pi שלכם

כדי להתחיל, ודא שיש לך את כל הפריטים הנדרשים מהשלב האחרון. לאחר מכן, בצע את השלבים באתר Raspberry Pi להתקנת Raspbian Jessie בכרטיס ה- Microsd שלך, הנמצא כאן.

לאחר התקנת ה- Raspbian ב- Pi שלך, הגיע הזמן להגדיר כמה תכונות בסיסיות.

וויי - פיי

השלב הראשון להפיק את המרב מה- Pi שלך הוא לחבר אותו לאינטרנט. ייתכן שהשלמת את השלב הזה כבר על ידי איתור סמל ה- WiFi בפינה הימנית העליונה של המסך הראשי של הפי שלך והיכנס לשם, או שתעשה את אותו הדבר לפני התקנת Raspbian בשלב האחרון. אם אינך מצליח להיכנס לרשת ה- WiFi שלך מממשק שולחן העבודה של ה- Pi שלך, תוכל לבצע את ההנחיות כאן להגדרת WiFi דרך שורת הפקודה.

SSH

כלי שימושי מאוד העומד לרשותך בעת השימוש ב- Pi שלך הוא האפשרות להנפיק פקודות ל- Pi שלך במה שמכונה התקנה ללא ראש. באמצעות פגז מאובטח או SSH, אתה יכול לשלוט ב- Pi שלך מרחוק ממחשב. בשיטה זו, כל מה שתצטרך לערוך את ה- Pi שלך הוא מקור כוח להשאיר אותו דולק, לא עוד צג ומקלדת!

שלב 2: SSHing לתוך ה- PI שלך

SSHing ל- PI שלך
SSHing ל- PI שלך
SSHing ל- PI שלך
SSHing ל- PI שלך

הכניסה אל ה- Raspberry Pi שלך קלה ושימושית מאוד, שכן התהליך מאפשר לך להוציא פקודות ל- Pi שלך מכל מחשב ללא חיבור WiFi.

כדי להיכנס ל- Pi שלך, עליך לבצע את שלושת השלבים הפשוטים הבאים.

ראשית, עליך להפעיל SSH ב- Pi שלך. לשם כך, פתח חלון פקודה ב- Pi שלך והקלד:

sudo raspi-config

פקודה זו מאפשרת לך להיכנס לתפריט תצורה. משם תרצה להשתמש במקשי החץ, הכרטיסייה והזן כדי להיכנס תחילה לאפשרויות ממשק, ולאחר מכן לאפשר SSH, כמו גם את המצלמה, ואז לצאת ולהפעיל מחדש את ה- pi.

בשלב הבא תצטרך למצוא את כתובת ה- IP של ה- Pi שלך. במסוף פקודות, הקלד:

sudo ifconfig

וכתובת ה- IP שלך צריכה להיות בקטע wlan0 שצץ, ממש מתחת לקישור encap: ethernet. בתמונת ההדגמה למעלה כתובת ה- IP היא 192.168.1.10.

לבסוף, יהיה עליך לפתוח את אפליקציית הטרמינל המובנית ב- Mac, או למצוא ולהקפיד על הוראות אפליקציית ssh של צד שלישי לחלונות. באפליקציית Terminal, הקלד:

ssh pi@כתובת ה- IP שלך

אם לא שינית את הסיסמה במהלך Raspi-config, הסיסמה שלך להזין כאשר תתבקש תהיה סיסמת ברירת המחדל: פטל.

משם, אתה צריך להיות טוב ללכת!

שלב 3: שלח דוא"ל את כתובת ה- IP שלך באתחול

שלח דוא
שלח דוא

בשלב זה נתמקד כיצד לגשת ל- Raspberry Pi שלך, ללא קשר לרשת שבה אתה נמצא. בהתאם לרשת, כתובת ה- IP של ה- Pi משתנה. ואם אין לך הגדרת צג, יהיה עליך להיכנס ל- Pi כדי להפעיל את פרוטוקול זיהוי התנועה, לשנות העדפות תנועה או לגשת לכל דבר אחר במכשיר. כדי לפתור בעיה זו נכתוב סקריפט פייתון המשלח לנו בדואר אלקטרוני את כתובת ה- IP הנוכחית של הפי עם ההפעלה. סקריפט הפיתון הוא כדלקמן ונשמר בספרייה המסומנת "רקע".

#התחל בספריית הבית

תקליטור ~

#צור תיקיית רקע

רקע mkdir

#צור סקריפט פייתון

סודו ננו emailip.py

#כתוב ב- emailip.py

שקע יבוא

s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)

s.connect (("8.8.8.8", 80))

הדפס (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

יבוא smtplib

מתוך email. MIMEM יבוא מרובה חלקים MIMEMultipart

מאת email. MIMEText יבוא MIMEText

fromaddr = "כתובתך"

toaddr = "קבלת כתובת"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "כתובת IP"

גוף = xmsg.attach (MIMEText (גוף, 'רגיל'))

שרת = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "סיסמתך")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, טקסט)

server.quit ()

#ואז זה עושה את זה בעת אתחול מחדש

sudo nano /etc/rc.local

#מרכז ב- /etc/rc.local

בזמן ! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]';

לעשות שינה 3

בוצע

_IP = $ (שם מארח -אני) || נָכוֹן

אם ["$ _IP"]; לאחר מכן

printf "כתובת ה- IP שלי היא %s / n" "$ _IP"

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

פי

יציאה 0

#וסיימת

שלב 4: התקנה והגדרת תנועה

התקנה והגדרת תנועה
התקנה והגדרת תנועה

#עדכון pi

עדכון sudo apt-get

sudo apt-get upgrade

#הורד

sudo apt-get להתקין תנועה

#עכשיו ערוך קובץ זה עם השינויים הבאים

sudo nano /etc/motion/motion.conf

#t כדי לקבוע סטנדרט להדרכה זו, שנה

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

הדמון על

stream_localhost כבוי

webcontrol_localhost כבוי

ffmpeg_output_movies ב-

target_dir/var/lib/motion

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

#אפשרויות הזרמת דפדפן אינטרנט מקומי

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

stream_maxrate 100 #זה יאפשר הזרמה בזמן אמת אך דורש יותר רוחב פס ומשאבים

framerate 60 #זה יאפשר צילום של 60 פריימים לשנייה #ככל שזה יעלה כך עיבוד הווידאו יהיה איטי יותר

רוחב 640 #זה משנה את רוחב התמונה המוצגת

גובה 480 #זה משנה את גובה התמונה המוצגת

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

#הגדרות וידאו בדואר אלקטרוני ב- …/motion.conf

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

#מחק את ";" מול השורה, הפסיק מביא את השורה החוצה

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

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

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

#astectics

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

#בחירות המתוארות בקובץ

פלט_תמונות locate_motion_style

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

#ואז לשנות

sudo nano/etc/default/motion

#לומר

start_motion_daemon = כן

#אחרון, התחל את B **** למעלה

sudo service motion start

#תוכל לשנות את הפקודה ל"עצור "או" להפעיל מחדש"

שלב 5: שליחת סרטונים מתוך תנועה על גילוי

שליחת סרטונים בדוא
שליחת סרטונים בדוא

דוא"ל כאשר זוהה תנועה:

#התחל בבית

dircd ~

#create script python alert alert

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

#לִכתוֹב

יבוא smtplib

מאת datetime לייבא datetime

מתוך email. MIMEM יבוא מרובה חלקים MIMEMultipart

מאת email. MIMEText יבוא MIMEText

fromaddr = "YOURADDRESS"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "זוהה תנועה"

body = 'זוהתה תנועה. / n זמן: % s' % str (datetime.now ())

msg.attach (MIMEText (גוף, 'רגיל'))

שרת = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "YOURPASSWORD")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, טקסט)

server.quit ()

שליחת סרטון תנועה בדוא"ל כאשר הסרטון נשמר:

#התחל ב- homedircd ~

#צור סקריפטים של פייתון בסרטון תנועה sudo nano /home/pi/background/motionvid.py

יבוא smtplib

מתוך email. MIMEM יבוא מרובה חלקים MIMEMultipart

מאת email. MIMEText יבוא MIMEText

מתוך email. MIMEBase ייבוא MIMEBase

מקודדי ייבוא דוא ל

fromaddr = "הדוא"ל שלך"

toaddr = "כתובת דוא"ל שאליה אתה שולח"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "מצלמת תנועה מופעלת"

body = "סרטון התנועה זוהה"

msg.attach (MIMEText (גוף, 'רגיל'))

ייבוא מערכת הפעלה

rootpath = '/var/lib/motion'

קובץ רשימות = [os.path.join (rootpath, f) עבור f ב- os.listdir (rootpath)]

רשימת קבצים = [f עבור f ברשימת קבצים אם os.path.isfile (f)]

הכי חדש = max (קובץ פילים, key = lambda x: os.stat (x).st_mtime)

שם קובץ = הכי חדש

ייבוא מערכת הפעלה

rootpath = '/var/lib/motion'

קובץ רשימות = [os.path.join (rootpath, f) עבור f ב- os.listdir (rootpath)]

רשימת קבצים = [f עבור f ברשימת קבצים אם os.path.isfile (f)]

הכי חדש = max (קובץ פילים, key = lambda x: os.stat (x).st_mtime)

מצורף = פתוח (החדש ביותר, "rb")

part = MIMEBase ('יישום', 'זרם אוקטטים')

part.set_payload ((קובץ מצורף). לקרוא ())

encoders.encode_base64 (חלק)

part.add_header ('תוכן- Disposition', "קובץ מצורף; שם קובץ = % s" שם קובץ %)

מסר מצורף (חלק)

שרת = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "סיסמתך")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, טקסט)

server.quit ()

שלב 6: פתרון בעיות ומקורות

פתרון בעיות ומקורות
פתרון בעיות ומקורות

פתרון תקלות:

מכיוון שלפרויקט זה יש שלבים מרובים, ישנן מספר נקודות בהן דברים יכולים להשתבש. להלן כמה מהשגיאות האפשריות שעלולות להתרחש וכיצד לתקן אותן.

  • בעת הגדרת ה- pi שלך שישלח לך את כתובת ה- IP הנוכחית שלו בדוא"ל, חשוב לערוך את קובץ ה- rc.local כפי שמוצג קודם לכן מכיוון שזה מאפשר עיכוב קל לפני הפעלת התוכנית לאחר אתחול מחדש. אחרת ה- pi עדיין לא יהיה מחובר ל- wifi, והאימייל לא ישלח.
  • בעת עריכת הקובץ motion.conf הקפד למחוק את הפסיק מול פרמטרים מסוימים. הנקודה -פסיק מדכאת פעולה נתונה, כך שאם לא כן השינוי לא ייכנס לתוקף.
  • קובץ motion.conf מאורגן ומפורט היטב. אל תהסס לשנות את ההגדרות לטעמך, אך הבין שהן עשויות להשפיע על הצלחת מערכת לכידת התנועה.
  • לאחר הגדרת התראת האימייל ואפשרויות הווידאו בדוא"ל, חשוב לציין כי הדוא"ל של הסרטון שזוהה על ידי תנועה ייקח קצת יותר זמן מאשר לשלוח אותו מאשר הודעת האימייל הראשונית. הסיבה לכך היא שהסרטון מסתיים מספר שניות לאחר שהתנועה כבר לא מזוהה, ומכיוון שהקובץ המצורף לדוא"ל יכול להיות גדול מספיק כדי שיידרש מספר דקות לקבלת. במקרים מסוימים, אם התנועה מתמשכת לפרק זמן ארוך מאוד היא עשויה להיות גדולה מכדי לשלוח אותה כלל. בגלל זה תמיד כדאי לבדוק את השידור החי לאחר קבלת הודעת האימייל הראשונית.

למה תנועה ?:

כשיצאנו לראשונה לפרויקט זה שקלנו מספר משאבים שונים. ראשית שקלנו להשתמש ב- PiCam שהיא יחידת מצלמות שנבנתה במיוחד עבור פטל הפטל. ה- PiCam הוא בהחלט מכשיר בעל יכולות ויש לו יישומים רבים, אך הוא מוגבל לשימוש בתוכניות שתוכננו במיוחד עבורו והוא יקר יחסית למצלמות רשת רב תכליתיות זולות. אז על מנת להנגיש את הפרויקט הזה לקהל גדול יותר, החלטנו להשתמש במצלמת רשת USB נפוצה. הגיליון הבא היה איזו תוכנה לשלב. בתחילה שקלנו OpenCV שהיא תוכנה חינמית המאפשרת סוגים רבים ושונים של פרויקטי מחשב והדמיה. אחד הנושאים כאן הוא ש- OpenCV הוא קובץ מאסיבי שתופס הרבה זיכרון והגדרת זמן רב. ההתקנה כוללת גם שלבים מרובים, מה שמשאיר עוד יותר מקום לטעויות. מצאנו כי לפרויקט הספציפי שלנו, Motion הייתה פשוטה יותר להתקנה ולעבודה, אך הרבה יותר חזקה בביצוע שלה.

מקורות

מקורות קוד:

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

קרדיט לתמונות:

חילזון SSH:

לוגו דואר:

מצלמת האינטרנט של Logitech:

חלון SSH:

מוּמלָץ: