תוכן עניינים:
- שלב 1: היכנס לחשבון AWS שלך
- שלב 2: תחילת העבודה עם "דברים" של AWS IOT
- שלב 3: רישום "דבר" של AWS IOT
- שלב 4: הפעלת תעודה
- שלב 5: הוספת מדיניות לתעודה שלך
- שלב 6: הגדרה ראשונית עבור נושא AWS SNS
- שלב 7: יצירת קובץ Iot-role.trust.json
- שלב 8: יצירת קובץ Iot-policy.json
- שלב 9: צור נושא AWS SNS (חלק 1)
- שלב 10: צור נושא AWS SNS (חלק 2)
- שלב 11: צור נושא AWS SNS (חלק 3)
- שלב 12: צור דלי ב- Amazon S3
- שלב 13: צור מדיניות AWS (חלק 1)
- שלב 14: צור מדיניות AWS (חלק 2)
- שלב 15: יצירת טבלאות עבור DynamoDB
- שלב 16: Roomstatus.py
- שלב 17: Rfid.py
- שלב 18: Server.py
- שלב 19: Telegram.py
- שלב 20: שידור חי (camera_pi.py)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
Seroma הוא מנהל הכל-ב-אחד לחדרי שרתים המאפשר למשתמשים לבדוק את מצב השרתים (טמפרטורה ולחות), יומני הגישה של חדר השרת, כמו גם לעקוב אחר חדר השרת עצמו לכל הפרות אבטחה.
שלב 1: היכנס לחשבון AWS שלך
- עבורנו, התחברנו דרך שער הסטודנטים של AWS educate, כיוון שיש לנו חשבון AWS.
- עבור לכרטיסייה "חשבון AWS" בתפריט הניווט בפינה השמאלית העליונה.
- לחץ על "עבור אל חשבון AWS Educate Starter שלך"
- פתח את מסוף כדי לגשת למסוף ניהול AWS שלך.
שלב 2: תחילת העבודה עם "דברים" של AWS IOT
- חפש את "AWS IoT" בשורת החיפוש של שירותי AWS.
- לחץ על "התחל" כדי להמשיך ללוח המחוונים של AWS IoT Console, שם תוכל לצפות בכל מכשירי IoT הרשומים בחשבון AWS שלך.
שלב 3: רישום "דבר" של AWS IOT
- בסרגל הניווט, נווט כדי לנהל את "הדברים" שלך ב- IoT.
- לחץ על "רשום דבר" אם עדיין אין לך דבר. (אם כבר יש לך משהו לחץ על כפתור "צור" בפינה השמאלית העליונה של המסך לצד כרטיסיית החיפוש.)
- לחץ על הכפתור הראשון בשם "צור דבר אחד".
- הקלד "RaspberryPi" כשם הדבר. עבור שלב זה, אין צורך בקלט מלבד "שם". לאחר שתעשה זאת, לחץ על הבא.
שלב 4: הפעלת תעודה
- בשלב הבא, לחץ על כפתור "צור אישור".
- הורד ושמור את 4 קישורי ההורדה בעמוד הבא לספרייה או לתיקייה עובדת. כדי לשמור את קובץ ה- root של CA, לחץ לחיצה ימנית ושמור בשם.
- לחץ על "הפעל" ותופיע הודעת הצלחה.
- השתמש בשמות ידידותיים לקבצים על ידי הסרת המספרים שלפני כל שם קובץ, ושינוי שם קובץ ה- root של CA ל- "rootca.pem".
- לחץ על "צרף מדיניות" כדי להמשיך.
שלב 5: הוספת מדיניות לתעודה שלך
- בדף הבא, אם אין לך מדיניות, הם יבקשו ממך לבצע כפתור בכפתור "צור מדיניות".
- אם כבר יש לך מדיניות קיימת, לחץ על הלחצן "צור מדיניות חדשה" למטה.
-
הכנס את המידע הבא לטופס יצירת המדיניות.
שם: RaspberryPiSecurityPolicy
פעולה: iot:*
משאב ARN: *
אפקט: אפשר
- לאחר מכן המדיניות שלך אמורה להופיע בכרטיסייה "מדיניות" תחת "אבטחה".
- לאחר מכן, עבור לכרטיסייה "אישורים" הנמצאת גם תחת "אבטחה" וצירף את המדיניות שלך לאישור שיצרת בעבר.
- בדף הבא, לחץ על המדיניות שלך ולאחר מכן לחץ על "צרף".
- בדף הפרטים של הדבר שיצרת, בכרטיסייה "אינטראקציה", יש נקודת קצה של REST API אותה יש להעתיק ולשמור.
- כעת ל- AWS צריך להיות דבר המצורף למדיניות ויש לו אישור.
שלב 6: הגדרה ראשונית עבור נושא AWS SNS
SSH לתוך Raspberry Pi והתקן AWS CLI באמצעות פקודת pip הבאה:
sudo pip התקן awscli
AWS CLI כולל תכונת השלמת פקודה אך היא אינה מותקנת כברירת מחדל. השתמש בפקודה הבאה כדי להתקין את תכונת השלמת הפקודה בממשק CLI של Raspberry Pi:
להשלים -C aws_completer aws
הגדר את AWS CLI עם מזהה מפתח גישה, מפתח גישה סודית, שם אזור AWS ותבנית פלט פקודה באמצעות הפקודה הבאה:
aws להגדיר
לאחר מכן הקונסולה תבקש ממך למלא את המידע הבא:
pi@raspberrypi: ~ $ aws להגדיר
מזהה מפתח גישה של AWS [ללא]: "שים כאן את מזהה מפתח הגישה של המשתמש שלך" מפתח גישה סודי של AWS [ללא]: "הכנס את מפתח הגישה הסודי של המשתמש שלך כאן" שם אזור ברירת מחדל [ללא]: פורמט פלט ברירת מחדל של eu-central-1 [אין]: json pi@raspberrypi: ~ $
שלב 7: יצירת קובץ Iot-role.trust.json
- צור קובץ JSON עם מדיניות IAM לעיל עם שם הקובץ iot-role.trust.json.
- צור את התפקיד באמצעות ה- AWS CLI באמצעות הפקודה הבאה
aws iam create-role --role-name my-iot-role-assume-role-policy-document file: //iot-role-trust.json
שלב 8: יצירת קובץ Iot-policy.json
- צור קובץ JSON עם המדיניות לעיל עם שם הקובץ iot-policy.json.
- צור את מדיניות התפקידים באמצעות AWS CLI באמצעות הפקודה הבאה:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
שלב 9: צור נושא AWS SNS (חלק 1)
- בסרגל החיפוש של שירותי AWS, חפש שירות "SNS" או עבור אל
- מכיוון שאין לך נושאים כעת, לחץ על "צור נושא חדש" כדי ליצור נושא.
- הקלד את שם הנושא ואת שם התצוגה ולחץ על "צור נושא" ונושא חדש יופיע כאשר כל השלבים יצליחו.
- לחץ על הלחצן הנפתח "פעולות" ועל "ערוך מדיניות נושאים".
שלב 10: צור נושא AWS SNS (חלק 2)
- הגדר את המדיניות כדי לאפשר לכולם לפרסם ולהירשם כמנוי, מכיוון שמדובר במגבלות של חשבון AWSEducate.
- הירשם לנושא זה כדי לקבל עדכונים המתפרסמים בנושא זה.
-
שנה את הפרוטוקול ל"דוא"ל "והזן את הדוא"ל שלך בנקודת הסיום.
- עבור אל הדוא"ל שלך שבו הקלדת את נקודת הסיום שלך, לחץ על קישור האישור כדי לאשר את הרשמת הדוא"ל שלך כדי להירשם לנושא.
- נווט לשירותי "AWS IoT", בתפריט הניווט בצד שמאל, לחץ על "פעולה". דף זה הוא המקום בו החוקים שלך מוצגים וזמינים עבורך לצפייה ולעריכה. נכון לעכשיו, אין כללים לדבר ה- IoT שלך, לחץ על "צור חוק".
שלב 11: צור נושא AWS SNS (חלק 3)
- הקלד שם בשדה שם עבור הכלל שלך. בשדה תיאור, הקלד תיאור עבור הכלל שלך. בהמשך לסעיף מקור ההודעה, היינו בוחרים את גרסת ה- SQL המעודכנת ביותר בקטע "שימוש בגרסת SQL". הקלד * במאפיין כדי לבחור את כל הודעת MQTT מהנושא, במקרה שלנו הנושא שלנו הוא "TempHumid".
- לאחר מכן הוסף פעולת התראה של "SNS" לכלל שלך. לאחר מכן, לחץ על "הגדר פעולה".
- בדף "הגדר פעולה", בחר את נושא ה- SNS שיצרת זה עתה ואת פורמט ההודעה כ- RAW. לאחר מכן, בחר את התפקיד שיצרת זה עתה באמצעות AWS CLI ולחץ על "הוסף פעולה".
- הפעולה שלך תוגדר ותחזור אל "צור כלל".
- לחץ על ערוך אם ברצונך לערוך את הכלל.
שלב 12: צור דלי ב- Amazon S3
- חפש את S3 בשורת החיפוש של AWS.
- בדף Amazon S3, לחץ על כפתור "צור דלי" כדי להתחיל.
-
מלא את טופס הקופץ המופיע עם המידע הבא:
- שם דלי: seroma-bucket (זה חייב להיות ייחודי בכל הדליים הקיימים של אמזון S3)
- אזור: מערב ארה"ב (אורגון)
- הגדרות העתקה: (התעלם)
- בשלבים 2 עד 3, פשוט דלג עליו על ידי לחיצה על "הבא" מכיוון שאין מה לשנות. בשלב 4, לחץ על "צור דלי".
- לאחר היצירה, אתה אמור לראות את הדלי שלך בדף הבית.
שלב 13: צור מדיניות AWS (חלק 1)
- לחץ על הדלי שיצרת כדי להיכנס לדף לעיל, ולאחר מכן המשך אל "מדיניות דלי" בכרטיסייה "הרשאות".
- לאחר מכן, לחץ על הקישור "מחולל מדיניות" בתחתית הדף כדי ליצור את מדיניות AWS שלך.
-
בטופס, הזן את הערכים הבאים:
- סוג המדיניות: מדיניות דלי S3
- אפקט: אפשר
- מנהל: *
- שירות AWS: אמזון S3
- פעולות: GetObject
- שם משאבי אמזון (ARN): arn: aws: s3::: seroma-bucket
- לאחר מילוי המידע לחץ על הוסף הצהרה.
- לחץ על כפתור "צור מדיניות".
שלב 14: צור מדיניות AWS (חלק 2)
- העתק את הקודים שנוצרו ולחץ על סגור.
- חזור לעורך מדיניות הדלי של Amazon S3 Bucket והדבק את הקודים שהועתקו בעבר.
- הוסף "/*" לקודים ממש מאחורי קודי המשאבים, כמו בתמונה למעלה, ולאחר מכן לחץ על שמור.
- לאחר שתעשה זאת, הדלי שלך יוגדר בהצלחה ומוכן לשימוש.
שלב 15: יצירת טבלאות עבור DynamoDB
- חפש את DynamoDB בשורת החיפוש של AWS Services
-
לחץ על "צור טבלה" וצור 3 טבלאות עם המידע שלהלן: (רק "שם הטבלה" ו"מפתח הראשי "משתנים)
- accesslog, pk datetimevalue
- roomstatus, pk datetimevalue
- staffdata, שם משתמש pk
שלב 16: Roomstatus.py
חלק זה מכיל את הקוד עבור roomstatus.py, אשר כותב את כל הנתונים בנוגע לחדר השרת עצמו בכל דקה. זה כולל את הטמפרטורה, הלחות, התנועה (תמונות וסרטונים אם הם נכונים) ויומני גישה. הוא גם כותב נתונים לגיליון אלקטרוני של Google, נתונים ל- DynamoDB, תמונות וסרטונים (אם קיימים) ל- S3, מציג מידע על מסך ה- LCD, שולח הודעות SMS ודוא ל כאשר יש חשד להפרה, או כאשר הטמפרטורה או הלחות אינם סדירים..
כדי להפעיל קבצי פייתון, שנה את הספרייה למקום שבו הקובץ נמצא והקלד במסוף: "sudo python"
תמונה 2: פונקציות שהוכרזו לאפשר התראות SMS ודוא ל והעלאה ל- S3
תמונה 3: משתנים שהוכרזו עבור פונקציות ו- RPi לעבודה
תמונה 4: התחלת הלולאה שמקבלת את ערכי הטמפרטורה והלחות מה- RPi. הוא גם כותב את הנתונים לגיליון אלקטרוני של Google
תמונה 5: חלק האבטחה בלולאה. הוא יופעל רק משעה 19:00 עד 7 בבוקר (שעות פעילות). הוא יבדוק את התנועה בטווח של דקה אחת. אם תתגלה תנועה, היא תצלם תמונה ווידאו, תעלה אותה ל- S3, ותכתוב מידע ל- DynamoDB לעיון מאוחר יותר. לאחר מכן, הוא ישלח SMS ודוא ל אם משהו אינו סדיר.
תמונה 6: סוף הלולאה. הוא גם כותב נתונים ל- DynamoDB ושולח התראות בהתאם. השורה האחרונה של הלולאה תגרום לתסריט לישון עד שתגיע הדקה הבאה.
שלב 17: Rfid.py
קטע זה מכיל את הקוד עבור rfid.py, המוסיף את פונקציונליות למעקב כאשר איש צוות ניגש לחדר השרת. זה גם חלק מההיבט האבטחה של Seroma, שבו איש צוות אינו רשאי לגשת לחדר השרת לאחר שעות העבודה, כדי למנוע הפרת נתונים. הוא גם שולח דוא ל ושולח SMS לכל הצוות אם יש חשד להפרה.
תמונה 2: התחלת ההיגיון של קורא RFID. בכל פעם שנסרק כרטיס נגד הקורא, המזהה הייחודי (uid) של הכרטיס נלקח. לאחר מכן, אנו מנסים למצוא את ערך ה- uid של הכרטיס בטבלת נתוני הצוות כדי לראות אם הכרטיס שייך לאחד מהצוותים. תמונה 3: אם ה- uid של הכרטיס קיים במאגר הנתונים, הוא יבדוק אם הוא במהלך המשרד. מחוץ לשעות. אם כן, היא תתריע בפני שאר העובדים באמצעות הודעות SMS ודוא"ל על כתובות הדוא"ל הרשומות. אם הוא עדיין בשעות המשרד, הוא יכתוב שורה לטבלת Accesslog במאגר הנתונים עם הנתונים הרלוונטיים. הוא יציג גם הודעת קבלת פנים על צג ה- LCD.
שלב 18: Server.py
זהו הקובץ server.py. אנו נשתמש במסגרת הבקבוק לפורטל האינטרנט. קובצי HTML שיש להכניס /תבניות מצורפים גם כן.
תמונה 1: המסלול הראשון עבור בקבוק מוגדר. הוא ינתב את המשתמש לדף הכניסה אם הוא לא מחובר, ולדף לוח המחוונים אם כן. מגדיר גם פונקציה לשימוש בפונקציית השידור החי
תמונה 2, 3, 4: מסלולי בקבוק. הוא מקבל נתונים מטבלת DynamoDB ולאחר מכן מחזיר אותם לקבצי HTML כך שניתן יהיה להשתמש בהם שם.
תמונה 5: 2 המסלולים האחרונים של Flask. הוא מטפל בפונקציית היציאה ובפונקציית השידור החי. הוא גם מציין את היציאה שבה האתר יפעל.
שלב 19: Telegram.py
חלק זה כולל את הקוד לבוט המברקים של Seroma. הוא משתמש בספריית הטלפוט כדי להקיש על ה- API של Bot של טלגרם. זה עובד על ידי קבלת השאילתות שהוא מקבל והצגת המידע המתאים למשתמש. המשתמש יכול להקליד 'עזרה' לרשימה מלאה של פקודות.
תמונה 1, 2: כדי להגדיר בוט מברקים, עליך להשתמש ב- BotFather. פשוט בצע את ההוראות כדי לקבל את ה- API HTTP הדרוש לנו בקוד שלנו.
תמונה 4: דוגמא לפונקציה שלוקחת מספר מסוים של שורות נתונים ממסד הנתונים בהתבסס על בקשת המשתמש
תמונה 5: כיצד אנו לוקחים את קלט המשתמש ומחליטים מה להריץ בהתאם.
שלב 20: שידור חי (camera_pi.py)
יישמנו תכונה חדשה עבור מערכת הניטור שלנו לשרתים, זרם חי של המתרחש בחדר השרת, ניתן לגשת אליה בכל נקודת זמן, בכל מקום. כיצד פועל הזרם החי הזה: זוהי תכונה המתבצעת בבקבוק, יחד עם מצלמת הפי. מסגרות וידאו מורידות כפי שהן מתרחשות בחיים האמיתיים, כך שבאמת ניתן לראות שיש עיכוב קל (1-2 שניות) כאשר מסגרות וידיאו מורידות ומחוברות יחד. לא ניתן היה לעשות זאת ללא הברגה, שכן חוט הרקע קורא מסגרות מהמצלמה ושומר את המסגרת הנוכחית. אם נתחבר את כל המסגרות האלה יחזיק אז זרם חי.
תמונה 2: זהו קובץ נפרד שבו כל מסגרות הווידיאו מאוחסנות וכפי שאתם יכולים לראות, אנו משתמשים במודול פיקמרה כדי לגשת למצלמת הפטל פטל שלנו מכיוון שזהו הדבר המוכר לנו ביותר. יש לנו מצלמה ברמה כך שנוכל לייבא פונקציה כאילו מדובר בהזרמה חיה ולא בתמונות מרובות המתחברות יחד, מכאן שבקובץ היישום הראשי ייקח את זה כזרם חי מבלי לדאוג למה שקורה מאחורי הקלעים.
תמונה 3: זהו חלק מקובץ ה- server.py שלנו שבו מקודד חלק הזרם החי. המחלקה העיקרית שייבאנו לשם כך היא המצלמה מהקובץ camera_pi.py שלנו בחלק העליון של קובץ ה- server.py שלנו. הגדרנו פונקציה בספריית השורש שלנו, gen, אולם היא נכנסת לשימוש רק כאשר אנו ניגשים אל /video_feed היכן שהזרם החי שלנו נמצא, שם הוא יעבור דרך הפונקציה הזו ויחזיר את הזרם החי בדף האינטרנט.
מוּמלָץ:
Magic Hercules - מנהל התקן עבור נוריות LED דיגיטליות: 10 שלבים
Magic Hercules - מנהל התקן עבור נוריות LED דיגיטליות: סקירה מהירה: מודול Magic Hercules הוא ממיר בין ה- SPI הידוע והפשוט לפרוטוקול NZR. כניסות המודול בעלות סובלנות של +3.3 V, כך שתוכל לחבר בבטחה כל בקרי מיקרו הפועלים במתח של +3.3 V. השימוש ב
צג חדר שרת: 4 שלבים
צג חדר שרת: אחת הבעיות של חדר שרת היא הטמפרטורה. עם ציוד אחר המייצר חום, הדבר עולה במהירות. ואם מיזוג האוויר נכשל, הוא עוצר במהירות הכל. כדי לחזות מצבים אלה אנו יכולים לרכוש אחת מסביבות שונות
נקודת גישה ESP8266 NodeMCU (שרת אינטרנט) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 והדפסת טמפרטורה ולחות בדפדפן: 5 שלבים
נקודת גישה ESP8266 NodeMCU (AP) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 וטמפרטורת הדפסה ולחות בדפדפן: שלום חברים ברוב הפרויקטים בהם אנו משתמשים ב- ESP8266 וברוב הפרויקטים אנו משתמשים ב- ESP8266 כשרת אינטרנט כך שניתן יהיה לגשת לנתונים ב כל מכשיר באמצעות wifi על ידי גישה לשרת האינטרנט המתארח על ידי ESP8266 אך הבעיה היחידה היא שאנחנו צריכים נתב עובד עבור
מנהל שרת / לוח אירוח אתרים עבור פטל פטל (Ajenti): 5 שלבים
מנהל / שרת פאנל אירוח אתרים עבור פטל פטל (Ajenti): שלום וברוכים הבאים למדריך הראשון שלי. מדריך זה עוסק בהתקנת Ajenti על פטל פטל. אך ניתן להשתמש במדריך זה גם להתקנת ajenti בכל מערכת הפעלה מבוססת דביאן. מהי Ajenti? Ajenti הוא פאנל לניהול שרת פתוח ש
עקיפת שרת חומת אש/שרת proxy: 3 שלבים
עקיפת שרת חומת אש/שרת proxy: סטודנטים רבים אחרים הגיעו ושאלו אותי כיצד ניתן להגיע לחומות האש והפרוקסי. אנשי IT בבית הספר הופכים חכמים יותר בנוגע לתלמידים שמשתמשים בפרוקסיות. חשבתי על הנושא הזה זמן מה ויש לי פתרון. למה לא ליצור דפי אינטרנט משלך