תוכן עניינים:
- שלב 1: הגדרת ה- Pi שלך
- שלב 2: SSHing לתוך ה- PI שלך
- שלב 3: שלח דוא"ל את כתובת ה- IP שלך באתחול
- שלב 4: התקנה והגדרת תנועה
- שלב 5: שליחת סרטונים מתוך תנועה על גילוי
- שלב 6: פתרון בעיות ומקורות
וִידֵאוֹ: מצלמת זיהוי תנועה של Raspberry Pi 3 עם הזנה חיה: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
מבוא
בפרויקט זה, תלמד כיצד לבנות מצלמת זיהוי תנועה שתוכל להשתמש בה כמלכודת מצלמות, צג לחיות מחמד/תינוק, מצלמת אבטחה ועוד.
פרויקט זה מאורגן בכמה שלבים:
- מבוא
- הגדרת ה- 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 שלכם
כדי להתחיל, ודא שיש לך את כל הפריטים הנדרשים מהשלב האחרון. לאחר מכן, בצע את השלבים באתר Raspberry Pi להתקנת Raspbian Jessie בכרטיס ה- Microsd שלך, הנמצא כאן.
לאחר התקנת ה- Raspbian ב- Pi שלך, הגיע הזמן להגדיר כמה תכונות בסיסיות.
וויי - פיי
השלב הראשון להפיק את המרב מה- Pi שלך הוא לחבר אותו לאינטרנט. ייתכן שהשלמת את השלב הזה כבר על ידי איתור סמל ה- WiFi בפינה הימנית העליונה של המסך הראשי של הפי שלך והיכנס לשם, או שתעשה את אותו הדבר לפני התקנת Raspbian בשלב האחרון. אם אינך מצליח להיכנס לרשת ה- WiFi שלך מממשק שולחן העבודה של ה- Pi שלך, תוכל לבצע את ההנחיות כאן להגדרת WiFi דרך שורת הפקודה.
SSH
כלי שימושי מאוד העומד לרשותך בעת השימוש ב- Pi שלך הוא האפשרות להנפיק פקודות ל- Pi שלך במה שמכונה התקנה ללא ראש. באמצעות פגז מאובטח או SSH, אתה יכול לשלוט ב- Pi שלך מרחוק ממחשב. בשיטה זו, כל מה שתצטרך לערוך את ה- Pi שלך הוא מקור כוח להשאיר אותו דולק, לא עוד צג ומקלדת!
שלב 2: 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:
מוּמלָץ:
פינגו: משגר כדור פינג פונג-זיהוי תנועה ודיוק גבוה: 8 שלבים
פינגו: משגר כדור פינג פונג מגלה תנועה ודיוק גבוה: קווין ניטימה, אסטבן פובדה, אנתוני מטצ'צ'ונה, רפאל קיי
מצלמת דוא"ל Arduino אבטחה 3G/GPRS עם זיהוי תנועה: 4 שלבים
Arduino Security 3G/GPRS מצלמת דוא"ל עם זיהוי תנועה: במדריך זה ברצוני לספר על גרסה אחת של בניית מערכת מעקב אבטחה עם גלאי תנועה ושליחת תמונות לתיבת הדואר באמצעות מגן 3G/GPRS. מאמר זה מבוסס על הוראות אחרות: הוראה 1 והדרכה
מצלמת הרשת הקלה ביותר כמצלמת אבטחה - זיהוי תנועה ותמונות בדואר אלקטרוני: 4 שלבים
מצלמת הרשת הקלה ביותר כמצלמת אבטחה - זיהוי תנועה ותמונות בדואר אלקטרוני: אינך צריך עוד להוריד או להגדיר תוכנה בכדי להעביר תמונות מזוהות תנועה ממצלמת האינטרנט שלך לדוא"ל שלך - פשוט השתמש בדפדפן שלך. השתמש בדפדפן Firefox, Chrome, Edge או Opera עדכני ב- Windows, Mac או Android כדי לצלם את התמונה
זיהוי פנים+זיהוי: 8 שלבים (עם תמונות)
זיהוי פנים+זיהוי: זוהי דוגמה פשוטה לריצת זיהוי פנים וזיהוי באמצעות OpenCV ממצלמה. הערה: הכנתי את הפרויקט הזה לתחרות חיישנים והשתמשתי במצלמה כחיישן לאיתור מעקב והכרה. אז, המטרה שלנו בפגישה זו, 1. התקן את אנקונדה
Guardian V1.0 --- שדרוג מצלמת עינית לדלת עם ארדואינו (הקלטת זיהוי תנועה ותכונות הלם חשמלי): 5 שלבים
Guardian V1.0 ||| שדרוג מצלמת עינית לדלת עם Arduino (הקלטת זיהוי תנועה ותכונות זעזועים חשמליים): הזמנתי מצלמת עינית אבל כשאני משתמש בה הבנתי שאין פונקציית הקלטה אוטומטית (מופעלת על ידי זיהוי תנועה). ואז התחלתי לחקור איך זה עובד. כדי להקליט סרטון, עליך 1- ללחוץ על לחצן ההפעלה כמעט 2 שניות