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

R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס: 8 שלבים (עם תמונות)
R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס: 8 שלבים (עם תמונות)

וִידֵאוֹ: R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס: 8 שלבים (עם תמונות)

וִידֵאוֹ: R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס: 8 שלבים (עם תמונות)
וִידֵאוֹ: Большое шоу NRF Retail Expo Tour 2022 NYC Javits Center 4K HD 2024, יולי
Anonim
Image
Image
R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס
R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס
R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס
R-PiAlerts: בנה מערכת אבטחה מבוססת WiFi עם פטל פיס

בזמן העבודה ליד שולחן העבודה שלך, פתאום אתה שומע רעש רחוק. מישהו חזר הביתה? המכונית שלי חונה מול הבית שלי, מישהו פרץ לרכב שלי? האם אינך מאחל שקיבלת הודעה בטלפון או בשולחן העבודה שלך, כך שתוכל להחליט אם לחקור או לא? טוב שאלה לא יותר! 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.

יישומים מעשיים

  1. אם אתה מחנה את המכונית שלך בטווח wifi. חבר מארז סוללות ל- Pi1 (ראה תמונה). הסתר את Pi1 במכוניתך. הצב את Pi2 במקום כלשהו שניתן לצפות בו בקלות, כגון ליד שולחן העבודה שלך (ראה תמונה).
  2. יישום נוסף הוא למקם את Pi1 בבית שלך בצד הדלת. ה- Pi כה זעיר שרוב האנשים לא ישימו לב אליו במיוחד אם הוא מאחורי צד הציר (ראו תמונה). לאחר מכן הנח את ה- Pi2 ליד שולחן העבודה שלך.
  3. כלב נכנס למקום בבית שהוא לא אמור לעשות? מקם 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

הגדר חשבונות Firebase ו- Twilio
הגדר חשבונות Firebase ו- Twilio
הגדר חשבונות Firebase ו- Twilio
הגדר חשבונות Firebase ו- Twilio

ראשית, לפני שנתחיל להתעסק עם ה- Pis שלנו, עלינו להתקין את Firebase ו- Twilio. Firebase הוא תומך התמיכה של Google כשירות. Firebase כולל תכונות כגון מסד נתונים, הודעות ענן, אימות, אחסון וכו '. לפרויקט זה, נצטרך להשתמש רק במסד הנתונים והאימות בזמן אמת של Firebase. יהיה צורך באימות כדי לקרוא ולכתוב למסד הנתונים של Firebase שלך. כדי להגדיר את Firebase:

  1. הירשם לחשבון Firebase בחינם
  2. לך לקונסולה. צור פרויקט חדש ותן לו שם.
  3. בתפריט השמאלי, לחץ על "סקירה כללית"
  4. לחץ על "הוסף Firebase לאפליקציית האינטרנט שלך", העתק את ה- APIKey ואת ה- projectid (לא את כתובת האתר). מזהה הפרויקט ממוקם בכתובות האתרים השונות כגון מסד הנתונים:
  5. בתפריט השמאלי, לחץ על "אימות". עבור אל "שיטת כניסה" והפעל את "דוא"ל/סיסמה"
  6. תחת "משתמש" צור חשבון משתמש חדש עם דוא"ל/סיסמה לבחירתך. תוכל להשתמש באישור זה כדי להיכנס למסד הנתונים.
  7. תחת התפריט השמאלי, עבור אל "מסד הנתונים"
  8. זהו מסד הנתונים שלך. הוא ריק כרגע. כאשר הוא מלא, הוא יהיה בפורמט JSON. כתובת האתר צריכה להיות זהה לזו שראית קודם.

טוויליו מאפשרת למפתחים לשלוח הודעות ללקוחותיהם. נשתמש בו כדי לשלוח SMS לטלפון שלך כאשר ה- Pi מזהה תנועה. טוויליו תספק לך מספר טלפון לשליחת הודעות SMS. להתקנת Twilio:

  1. הירשם לחשבון חינם באתר Twilio
  2. העתק את חשבון ה- SID וה- authentToken שלך
  3. לחץ על "הגבלות ניסיון" ובחר "קבל את מספר הטלפון הראשון שלך Twilio"
  4. העתק את מספר הטלפון החדש שלך

שלב 2: הגדר את ה- Pis שלך

הגדר את ה- Pis שלך
הגדר את ה- Pis שלך
הגדר את ה- Pis שלך
הגדר את ה- 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

סקריפט Python עבור Pi2
סקריפט Python עבור Pi2

אם אתה מסתכל על התמונה, זה של Pi2 המציג הודעה על תנועה אפשרית.

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

  • כל 10 שניות, Pi2 יבדוק את "notifypi2" להצגה. אם יש הודעת התראה להציג, ה- Pi2 יציג אותה ברציפות כך שהמשתמש יראה אותה.
  • רק התערבות המשתמש בלחיצה על כפתור הג'ויסטיק תבהיר את ההודעה ותתאפס בצד מסד הנתונים.

שלב 5: בדוק את ה- Pis

Image
Image
בדוק את הפיס
בדוק את הפיס

הגיע הזמן לבדוק את הפיס.

  • הפעל את הסקריפטים עבור Pis בהתאמה.
  • היכנס ל- Firebase ועבור לקטע מסד הנתונים של הפרויקטים שלך.
  • לנער את Pi1 שלך, אתה אמור לראות סימן קריאה אדום על צג ה- LED של Pi1. אתה אמור לקבל גם הודעת SMS.
  • בדוק את מסד הנתונים, ערכי התראה צריכים להתחיל להופיע. יש לעדכן גם את "notifypi2".
  • תסתכל על Pi2. כדאי גם לגלול "!!!" כדי לנקות את הודעת ההתראה הזו, פשוט לחץ על הג'ויסטיק. יש לאפס את "notifypi2". בדוק את Firebase שלך כדי לאשר.
  • אם אתה מוצא את Pi1 רגיש מדי לתנועה, הגדל את הסף לגודל של יותר מ- 1G בתסריט Pi1.

אם הכל ילך כשורה, הסקריפטים שלך לא יקרוס. כעת, יש לך מערכת התראות עובדת. לאחר ש- Pi1 יזהה תנועות או רעידות, תקבל הודעת הודעת SMS והתראת LED חזותית ב- Pi2.

שלב 6: בניית אפליקציית IOS של R-PiAlerts

בניית אפליקציית IOS של R-PiAlerts
בניית אפליקציית 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 לטקסט שלך לתמונות. נסה גם להשתמש באלגוריתם ראיית מחשב לזיהוי פרצופים. אם זה הפנים של מישהו שאתה מכיר, אתה יכול לקבל הודעה! תעשה חיים!

מוּמלָץ: