תוכן עניינים:
- שלב 1: הגדר חשבונות Firebase ו- Twilio
- שלב 2: הגדר את ה- Pis שלך
- שלב 3: סקריפט Python עבור Pi1
- שלב 4: סקריפט Python עבור Pi2
- שלב 5: בדוק את ה- Pis
- שלב 6: בניית אפליקציית IOS של R-PiAlerts
- שלב 7: בדוק את האפליקציה
- שלב 8: סיכום
וִידֵאוֹ: R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס: 8 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
בזמן העבודה ליד שולחן העבודה שלך, פתאום אתה שומע רעש רחוק. מישהו חזר הביתה? המכונית שלי חונה מול הבית שלי, מישהו פרץ לרכב שלי? האם אינך מאחל שקיבלת הודעה בטלפון או בשולחן העבודה שלך, כך שתוכל להחליט אם לחקור או לא? טוב שאלה לא יותר! R-PiAlerts כאן!
מה זה R-PiAlerts? R-PiAlerts היא מערכת אבטחה מבוססת Raspberry Pi3 הבנויה סביב הענן של Firebase. אם תתגלה תנועה, המערכת תודיע למשתמש על פריצה אפשרית עם הודעת טקסט ותצוגת LED מהבהבת (אזעקה חזותית שקטה). לאחר שהמשתמש יקבל הודעה, הוא יכול לחקור. כל התנועה שזוהתה תירשם למסד הנתונים של Firebase. מלבד צפייה ביומן התנועה בדפדפן אינטרנט, המשתמש יכול לגשת גם ליומן התנועה באמצעות אפליקציית iOS. החלטתי לבנות זאת בשל העלייה האחרונה בפריצות לרכבים ולבתים באזור שלי.
למה צריך Pi3? הייתי צריך משהו קטן שיכול לזהות תנועה ולזרוק סוללה במידת הצורך. לאחר מכן, אני יכול להסתיר את היחידה מאחורי דלת או במכונית. כמו כן היחידה צריכה להיות מסוגלת לשלוח לי התראות או התראות. ה- Pi3 יכול לעשות את כל הדברים האלה עם ה- wifi המובנה והיכולת שלו להריץ מארז סוללות USB. סיבות נוספות מדוע בחרתי ב- Pi3:
- ה- Pi זול יחסית
- קל לפריסה ולהרחבה
- ניתן להגדרה מבחינת התוכנה
- יכולת שימוש בתצוגות וחיישנים. פרויקט זה ישתמש ב- SenseHat
- הפעל ללא ראש (ללא צג, מקלדת או עכבר)
איך זה עובד
- באופן אידיאלי המשתמש יזדקק ל -2 פטל פיס המחובר למסד הנתונים של Firebase, אך גם פי אחד יעבוד.
- בעזרת ה- SenseHat, ה- Pi (Pi1) הראשון יזהה תנועה בעזרת מד התאוצה בעוד שה- Pi השני (Pi2) יציג התראות על תנועה.
-
כאשר ה- Pi1 מזהה תנועה, הוא עושה 3 דברים
- העברת יומן למסד הנתונים
- צור רשומת הודעה במסד הנתונים לתצוגה של Pi2
- שלח למשתמש הודעת טקסט המודיעה למשתמש על תנועה.
-
כאשר Pi2 מזהה הודעה להצגה ממסד הנתונים, קורים שני דברים
- תצוגת ה- LED של Pi2 תציג את ההודעה ברציפות
- המשתמש יכול לנקות את ההודעה על ידי לחיצה על הלחצן של Pi2 SenseHat. פעולה זו גם תנקה את רשומת ההודעות במסד הנתונים.
-
באמצעות אפליקציית iOS, המשתמש יכול
- גישה למאגר המידע; לקרוא ולמחוק את יומן התנועה
- המשתמש יכול לשלוח את Pi1 להצגת הודעה על צג ה- LED של Pi1.
יישומים מעשיים
- אם אתה מחנה את המכונית שלך בטווח wifi. חבר מארז סוללות ל- Pi1 (ראה תמונה). הסתר את Pi1 במכוניתך. הצב את Pi2 במקום כלשהו שניתן לצפות בו בקלות, כגון ליד שולחן העבודה שלך (ראה תמונה).
- יישום נוסף הוא למקם את Pi1 בבית שלך בצד הדלת. ה- Pi כה זעיר שרוב האנשים לא ישימו לב אליו במיוחד אם הוא מאחורי צד הציר (ראו תמונה). לאחר מכן הנח את ה- Pi2 ליד שולחן העבודה שלך.
- כלב נכנס למקום בבית שהוא לא אמור לעשות? מקם Pi1 באזור זה. הקפד לשים את ה- Pi בקופסה חסונה כדי שהכלב שלך לא ילעוס אותו.
כל עוד ה- Pis שלך נמצא בטווח wifi, הם יכולים להתריע או להודיע לך על תנועה. אם אין לך Pi שני, תוכל פשוט להשתמש ב- Pi1 כדי לזהות תנועה ולקבל התראות SMS באמצעות הטלפון הסלולרי שלך.
שטר חומרים
- שני (2) Raspberry Pi 3s שמריצים Raspbian (Raspberry Pi 2 יעבוד גם עם דונגל wifi)
- שניים (2) SenseHats
- מכשיר Mac ו- iOS
דרושה תוכנה
- ספריית Pyrebase (מתחברת ל- Firebase)
- ספריית SenseHat (לגישה למד תאוצה ותצוגת LED)
- ספריית טוויליו (לשליחת SMS)
- Python 3, מובנה עם ה- Raspbian העדכני ביותר
- Raspbian עם IDLE
- Xcode8 ו- Cocoapods ב- Mac שלך
- נכונות ללמוד ולחקור
הערת צד זה אינו פתרון האבטחה היחיד המבוסס על פי. אם יש לך רעיונות, הצעות, או שאתה רק רוצה לשנות את הקוד שלי, אנא השאר תגובה למטה! =)
שלב 1: הגדר חשבונות Firebase ו- Twilio
ראשית, לפני שנתחיל להתעסק עם ה- Pis שלנו, עלינו להתקין את Firebase ו- Twilio. Firebase הוא תומך התמיכה של Google כשירות. Firebase כולל תכונות כגון מסד נתונים, הודעות ענן, אימות, אחסון וכו '. לפרויקט זה, נצטרך להשתמש רק במסד הנתונים והאימות בזמן אמת של Firebase. יהיה צורך באימות כדי לקרוא ולכתוב למסד הנתונים של Firebase שלך. כדי להגדיר את Firebase:
- הירשם לחשבון Firebase בחינם
- לך לקונסולה. צור פרויקט חדש ותן לו שם.
- בתפריט השמאלי, לחץ על "סקירה כללית"
- לחץ על "הוסף Firebase לאפליקציית האינטרנט שלך", העתק את ה- APIKey ואת ה- projectid (לא את כתובת האתר). מזהה הפרויקט ממוקם בכתובות האתרים השונות כגון מסד הנתונים:
- בתפריט השמאלי, לחץ על "אימות". עבור אל "שיטת כניסה" והפעל את "דוא"ל/סיסמה"
- תחת "משתמש" צור חשבון משתמש חדש עם דוא"ל/סיסמה לבחירתך. תוכל להשתמש באישור זה כדי להיכנס למסד הנתונים.
- תחת התפריט השמאלי, עבור אל "מסד הנתונים"
- זהו מסד הנתונים שלך. הוא ריק כרגע. כאשר הוא מלא, הוא יהיה בפורמט JSON. כתובת האתר צריכה להיות זהה לזו שראית קודם.
טוויליו מאפשרת למפתחים לשלוח הודעות ללקוחותיהם. נשתמש בו כדי לשלוח SMS לטלפון שלך כאשר ה- Pi מזהה תנועה. טוויליו תספק לך מספר טלפון לשליחת הודעות SMS. להתקנת Twilio:
- הירשם לחשבון חינם באתר Twilio
- העתק את חשבון ה- SID וה- authentToken שלך
- לחץ על "הגבלות ניסיון" ובחר "קבל את מספר הטלפון הראשון שלך Twilio"
- העתק את מספר הטלפון החדש שלך
שלב 2: הגדר את ה- Pis שלך
לפני שנוכל להתחיל לתכנת את ה- Pis, עלינו לבצע כמה הגדרות. ודא שיש לך כניסה לסיסמה עבור ה- Pis שלך. ראשית נחבר פיזית את לוחות SenseHat ל- Pis. לאחר מכן, נתקין את הספריות הדרושות SenseHat, Twilio ו- Pyrebase. מסד נתונים בזמן אמת של Firebase תוכנן עבור מכשירים ניידים או אתרים. עם זאת, אנו יכולים לקרוא ולכתוב את מסד הנתונים בענן באמצעות Rest API עם ספריית עוזרים כמו Pyrebase.
חבר את SenseHat וודא ש- SenseHats מחוברים ל- Pis שלך. אם יש לך מקרה יוצא דופן, ייתכן שיהיה עליך להסיר את ה- Pi לפני חיבור ה- SenseHat.
התקנת ספריות כל התקנות הספרייה יבוצעו במסוף
- אתחל את ה- Pis שלך אם עדיין לא עשית זאת.
- בעת האתחול, אתה מקבל את קשת הלד הצבעונית הזו ב- SenseHat שלך! (ראה תמונה)
-
עבור למסוף ועדכן/dist-upgrade, הקלד:
- עדכון sudo apt-get
- sudo apt-get dist-upgrade
-
לאחר ביצוע השדרוגים, הקלד את הדברים הבאים להתקנת ספריות SenseHat:
sudo apt-get להתקין חוש-כובע
-
כדי להתקין את Pyrebase, הקלד:
sudo pip התקן את pyrebase
-
לבסוף, התקן את Twilio
sudo pip התקן twilio
שלב 3: סקריפט Python עבור Pi1
כפי שהזכרנו קודם לכן, Pi1 יהיה ה- Pi שישמש לאיתור תנועה. ערכי מד התאוצה של SenseHat ישמשו לקביעת התנועה. לפיכך, הקוד עבור Pi1 יהיה סביב הגישה לערכי כוח ה- g של מד התאוצה ורישום התנועות שזוהו למסד הנתונים של Firebase. להלן סקירה כללית של זרימת התהליכים:
- אם Pi1 מזהה תנועה, הוא יוסיף ערך לילד "ההתראות" ב- Firebase DB.
- Pi1 תעדכן גם את הילד "notifypi2" עם הודעת התראה בנוגע לתנועה.
- Pi2, לאחר מכן קורא "notifypi2" ומציג את ההודעה בתצוגת מטריצת ה- LED שלה.
כללתי את סקריפט Python Python שתוכל לעקוב אחריו. הערות בתסריט מסבירות מה הקוד עושה.
הערות ותובנות נוספות לתסריט Pi1
- להתקנת Firebase ו- Twilio. מלא את מפתחות ה- API המתאימים, המזהים, הסיסמאות וכו 'שהעתקת מהשלבים הקודמים.
-
לגבי אימות Firebase, לאבטחה נוספת, תוכל לבקש קלט משתמשים במקום לקודד אישורים אלה. בכל פעם שאנו כותבים או קוראים ממאגר הנתונים, נצטרך לכלול
משתמש ['idtoken'] עם ה
get (), push (), set () שיטות.
- יש צורך בטמפרטורת המעבד כדי שנוכל להתערב במקרה שהפי מתחמם יתר על המידה במכונית או בסביבה סגורה.
- אנו לוקחים גם את הערך המוחלט של כוחות G מכיוון שאיננו צריכים לדעת ערכים שליליים. עלינו רק לדעת אם יש כוחות G.
- אם הצהרה תבדוק את ערכי מד התאוצה. אם כוחות G גדולים מ -1 לכל כיוון כלשהו, Pi1 ירשום את זמן התנועה ויציג סימן קריאה בתצוגת LED משלו. הוא גם יעדכן את הילד "notifypi2". כאשר "notifypi2" מתעדכן, Pi2 יקרא אותו ויציג "!!!" על צג ה- LED שלה כדי להודיע למשתמש על תנועה אפשרית/פריצה. Pi1 גם ישלח למשתמש הודעת SMS על תנועה.
- בעת שימוש בשיטת push (), Firebase יפיק אוטומטית ילד עם ערך חדש. זה נחוץ, כך שנתוני התנועה שנרשמו יהיו ייחודיים. שיטת set () לעומת זאת תחליף נתונים קודמים.
- יש צורך בלולאה של 10 שניות כדי לבדוק את מסד הנתונים כך שהפי שלך לא יבקש שוב ושוב נתונים מ- Firebase. אם אתה דואר זבל ברציפות את Firebase, Google תצא ממך תוך כעשר דקות.
- Firebase גם יוציא את המשתמש החוצה כל 60 דקות אם האסימון לא רענן. הגדרתי את הרענון ל- 1800 שניות (30 דקות).
שלב 4: סקריפט Python עבור Pi2
אם אתה מסתכל על התמונה, זה של Pi2 המציג הודעה על תנועה אפשרית.
התסריט של Pi2 הוא כמעט אותו דבר כמו Pi1 למעט התסריט אינו מזהה תנועה. Pi2 מציג או מאפס רק הודעות התראה מהילד "notifypi2". מכיוון שזה ההבדל היחיד, אסביר את זה להלן.
- כל 10 שניות, Pi2 יבדוק את "notifypi2" להצגה. אם יש הודעת התראה להציג, ה- Pi2 יציג אותה ברציפות כך שהמשתמש יראה אותה.
- רק התערבות המשתמש בלחיצה על כפתור הג'ויסטיק תבהיר את ההודעה ותתאפס בצד מסד הנתונים.
שלב 5: בדוק את ה- Pis
הגיע הזמן לבדוק את הפיס.
- הפעל את הסקריפטים עבור Pis בהתאמה.
- היכנס ל- Firebase ועבור לקטע מסד הנתונים של הפרויקטים שלך.
- לנער את Pi1 שלך, אתה אמור לראות סימן קריאה אדום על צג ה- LED של Pi1. אתה אמור לקבל גם הודעת SMS.
- בדוק את מסד הנתונים, ערכי התראה צריכים להתחיל להופיע. יש לעדכן גם את "notifypi2".
- תסתכל על Pi2. כדאי גם לגלול "!!!" כדי לנקות את הודעת ההתראה הזו, פשוט לחץ על הג'ויסטיק. יש לאפס את "notifypi2". בדוק את Firebase שלך כדי לאשר.
- אם אתה מוצא את Pi1 רגיש מדי לתנועה, הגדל את הסף לגודל של יותר מ- 1G בתסריט Pi1.
אם הכל ילך כשורה, הסקריפטים שלך לא יקרוס. כעת, יש לך מערכת התראות עובדת. לאחר ש- Pi1 יזהה תנועות או רעידות, תקבל הודעת הודעת SMS והתראת LED חזותית ב- Pi2.
שלב 6: בניית אפליקציית IOS של R-PiAlerts
הגיע הזמן לבנות את אפליקציית iOS! האפליקציה תהיה פשוטה למדי. יהיה בו LoginViewController ו- ItemsTableViewController. ItemsTableViewController יציג התראות התראה מילד "ההתראות". אפשר גם למחוק ערכי מסד נתונים מהאפליקציה. כדי לחסוך לך קצת כאב ראש, אם אתה מתכנן להסתכל על הדרכות מקוונות עבור Firebase, הקפד לחפש הדרכות המתוארכות לאחר מרץ 2016 מכיוון שהיו שינויים גדולים בשנה שעברה בערך באותה תקופה. כל דבר לפני מרץ 2016 יהיה מדור קודם. אני מעוניין בקבצים המהירים, עיין בהערות בקוד. אם אתה רוצה הדרכה מפורטת כיצד לבנות אפליקציית Firebase שקוראת את מסד הנתונים, עיין במדריך של ריי וונדרליך.
הגדר את סקירת פרוייקט iOS שלך
- צור פרויקט iOS בתצוגה אחת ב- Xcode.
- העתק את מזהה החבילה
- עבור אל פרויקט Firebase שלך באתר וצור קובץ info.plist עם מזהה החבילה.
- הוסף את הקובץ GoogleService-info.plist לפרויקט שלך. מידע זה.plist פועל רק עם פרויקט Firebase הספציפי שיצרת.
- סגור את ה- Xcode והתקן את Firebase באמצעות Cocoapods. הקפד להתקין את Auth ו- Database.
-
הפעל מחדש את Xcode ולאחר מכן הגדר את AppDelegate.swift שלך עבור Firebase. זה לוקח רק 2 שורות קוד.
ייבא Firebase א
FIRApp.configure (). לחלופין, ל- Firebase יש תכונת התמדה שלוקחת רק שורת קוד אחת
FIRDatabase.database (). PersistenceEnabled = true
- ניתן למצוא שלבי התקנה מפורטים באתר Firebase
כיצד האינטראקציה של האפליקציה עם מסד הנתונים של Firebase:
- האפליקציה תצטרך לאמת את המשתמש.
- לאחר האימות, האפליקציה מצלמת את מסד הנתונים של Firebase ומאחסנת אותו כאובייקט "פריט".
- האובייקט אמור למלא מערך. מערך זה ישמש למילוי טבלת התצוגה.
- משקיף יצפה לשינויים במסד הנתונים של Firebase וייצור תמונת מצב.
- לאחר שזוהו שינויים, המערך יתווסף מהתמונה החדשה.
- לאחר מכן הטעינה של Tableview תטען מחדש כדי להציג את השינויים.
מתווה כללי כיצד לבנות את האפליקציה
- תסתכל על התמונה על האופן שבו האפליקציה פרוסה בבנאי הממשקים של Xcode.
- צור ViewController בבניית הממשקים והפנה את המחלקה המותאמת אישית ל- LoginViewController.swift.
- הוסף שדות טקסט לדוא"ל ולסיסמה. אל תשכח להפעיל את "הזנת טקסט מאובטח" עבור שדה הסיסמה. הוסף כפתור התחברות.
- קשר את שדות הטקסט והלחצן ל- LoginViewController.swift. LoginViewController.swift יטפל באימות.
- הוסף בקר ניווט בבניית הממשקים. צור שדה מ- LoginViewController לבקר הניווט. הקפד לתת למזהה מזהה.
- הגדר את המחלקה המותאמת אישית של תצוגת הטבלה החדשה שהגיעה עם בקר הניווט לנקוב ב- ItemsTableViewController.swift. יש לי גם 2 לחצנים על ItemsTableViewController: יציאה ולחצן הוספה. קשר את הכפתורים ל- ItemsTableViewController.swift.
- לגבי הקוד LoginViewController.swift. המשתמש יזין את פרטי הכניסה ו- Firebase יחזיר משתמש. אם משתמש קיים, הוא יבצע segue עם המזהה. (ראו קוד מצורף)
- הוסף את מחלקת Item.swift (ראה קוד מצורף)
- לגבי קוד ItemsTableViewController, זהו קוד די סטנדרטי של תצוגת טבלה. יהיה משקיף שיפקח על שינויים במסד הנתונים שלך שנשמר כתמונת מצב כאובייקט פריט. אז אובייקט הפריט יצרף את המערך למילוי תצוגת הטבלה. הלחצן הוסף קובע ערך במסד הנתונים של Firebase לקריאה והצגה של Pi1. לצחקוקים הוספתי גם קוד (ראו קוד מצורף)
שלב 7: בדוק את האפליקציה
הפעל את האפליקציה שלך
- התחבר ונער את ה- Pi1 שלך. עליך להתחיל לראות הודעות התראה חדשות.
- הקש על כפתור הוסף וצפה ב- Pi1 שלך שמציג את ההודעה שלך.
- החלק שמאלה, ראה ערכי "התראות" יוסרו.
- מקבלים יותר מדי הודעות ברצף מהיר? התאם את סף מד התאוצה או הגדל את זמן השינה בתסריט Pi1.
שלב 8: סיכום
מדהים! עכשיו יש לנו Pis שיכול לזהות תנועה ולשלוח לך התראות על תנועות. נוסף על כך, תוכל לנהל ביומן הודעות ההתראה שלך עם מכשיר ה- iOS שלך! הגיע הזמן לפרוס את ה- Pis. שים את Pi1 ליד הדלת שלך ואת Pi2 סביב אזור העבודה שלך. בפעם הבאה שמישהו יכנס, תוכל לבדוק את המצב! או יותר טוב, נסה להסתתר אצל פיי במכונית שלך עם מארז סוללות. לטרוק את הדלתות כמה פעמים, לראות מה קורה!
זוהי רק התחלה לאפשרויות לגבי מה שאתה יכול לעשות עם פטל פייס ובסיס Firebase. ה- SenseHat כולל גם חיישנים סביבתיים, גירוסים ומצפן. אתה יכול להגדיר את ה- Pis שלך כדי לרשום שינויים מסוימים בסביבה. רוצה להגביר את המשחק שלך? כאשר ה- Pi שלך מזהה תנועות, השתמש במצלמה לצלם תמונות והעביר את ה- Pi לטקסט שלך לתמונות. נסה גם להשתמש באלגוריתם ראיית מחשב לזיהוי פרצופים. אם זה הפנים של מישהו שאתה מכיר, אתה יכול לקבל הודעה! תעשה חיים!
מוּמלָץ:
2 פיס פטל ל- RAID מרחוק קל וזול: 19 שלבים
2 פטל פיס ל- RAID מרחוק קל וזול: מטרה במקרה של תקרית בבית, אני רוצה להיות מסוגל לשחזר את המסמכים הדיגיטליים העיקריים שלי (תמונות, תעודות זהות וכו '), ולחלוק אותם. אני רוצה לשתף את הפתרון הזה עם מישהו אחר (מישהו שאני סומך עליו, הורים או חבר)
מצלמת אבטחה חיצונית עם כל התכונות המבוססות על פטל פטל: 21 שלבים
מצלמת אבטחה חיצונית במלואה המבוססת על פטל פאי: אם היו לך חוויות מאכזבות עם מצלמות אינטרנט זולות, התוכנה הלא כתובה שלהן ו/או חומרה לא מספקת, תוכל לבנות בקלות מצלמת רשת חצי מקצועית עם פטל פי ועוד כמה רכיבים אלקטרוניים אחרים. למצוא על איזה רץ
אבטחה ביתית עם פטל פטל: 6 שלבים (עם תמונות)
אבטחת הבית עם פטל פטל: זהו פתרון פשוט שיכול לגרום לך להרגיש רגוע יותר כאשר אתה עוזב את הדירה שלך - קבל הודעות דוא"ל עם תמונות של הנכס שלך מבקר על ידי אורחים לא רצויים, זרוע ופרק את מערכת האבטחה שלך בצורה הקלה והאמינה ביותר ( ללחוץ
מערכת אבטחה מבוססת PIR: 7 שלבים
מערכת אבטחה מבוססת PIR: מודול זה מבוסס על חיישני PIR ומדויק מאוד, הוא מורכב ממודול זמזם וכוח גיבוי לאבטחה נוספת
מערכת GPS מבוססת Arduino מבוססת GPS+GPRS למניעת גניבה: 5 שלבים (עם תמונות)
מערכת GPS מבוססת Arduino מלאה+מערכת גניבת GPRS: שלום לכולם! רציתי לבנות פתרון מלא למכשיר נגד גניבה לרכב GPS, שיהיה: כמה שיותר זול, שלם ככל האפשר כפי שהוא פשוט עובד -אין-דבר-אחר-לעשות ככל האפשר אז בסופו של דבר בניתי פתרונות מבוססי ארדואינו