جدول المحتويات:
- الخطوة 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)
فيديو: Seroma: مدير غرفة الخادم: 20 خطوة
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
Seroma هو مدير غرفة خادم الكل في واحد يسمح للمستخدمين بالتحقق من حالة الخوادم (درجة الحرارة والرطوبة) ، وسجلات الوصول إلى غرفة الخادم ، وكذلك مراقبة غرفة الخادم نفسها بحثًا عن أي انتهاكات أمنية.
الخطوة 1: قم بتسجيل الدخول إلى حساب AWS الخاص بك
- بالنسبة لنا ، قمنا بتسجيل الدخول من خلال بوابة AWS لتعليم الطلاب نظرًا لأن لدينا حساب AWS للطالب.
- توجه إلى علامة التبويب "حساب AWS" في قائمة التنقل أعلى اليمين.
- انقر فوق "الانتقال إلى حساب AWS Educate Starter الخاص بك"
- افتح وحدة التحكم للوصول إلى وحدة الإدارة في AWS.
الخطوة 2: بدء استخدام "الأشياء" في AWS IOT
- ابحث عن "AWS IoT" في شريط بحث خدمات AWS.
- انقر فوق "البدء" للمتابعة إلى لوحة معلومات AWS IoT Console حيث يمكنك عرض جميع أجهزة إنترنت الأشياء المسجلة في حساب AWS الخاص بك.
الخطوة 3: تسجيل "شيء" في AWS IOT
- في شريط التنقل ، انتقل إلى إدارة "الأشياء" الخاصة بإنترنت الأشياء.
- انقر فوق "تسجيل شيء" إذا لم يكن لديك شيء بعد. (إذا كان لديك شيء بالفعل ، فانقر فوق الزر "إنشاء" في أعلى يمين الشاشة بجوار علامة تبويب البحث.)
- انقر فوق الزر الأول المسمى "إنشاء شيء واحد".
- اكتب “RaspberryPi” كاسم للشيء. لهذه الخطوة ، لا يلزم إدخال أي إدخال بخلاف "الاسم". بعد القيام بذلك ، انقر فوق التالي.
الخطوة 4: تفعيل الشهادة
- في الخطوة التالية ، انقر فوق الزر "إنشاء شهادة".
- قم بتنزيل وتخزين روابط التنزيل الأربعة في الصفحة التالية في دليل أو مجلد عمل. لحفظ ملف CA الجذر ، انقر بزر الماوس الأيمن واحفظ باسم.
- انقر فوق "تنشيط" وستظهر رسالة نجاح.
- استخدم الأسماء المألوفة للملفات عن طريق إزالة الأرقام الموجودة أمام كل اسم ملف ، وإعادة تسمية ملف 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 config
معرّف مفتاح AWS Access [بلا]: "ضع معرّف مفتاح الوصول الخاص بالمستخدم هنا" مفتاح الوصول السري لـ 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 - اسم الدور IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
الخطوة 9: إنشاء موضوع AWS SNS (الجزء 1)
- في شريط بحث خدمات AWS ، ابحث عن خدمة "SNS" أو توجه إلى https://us-west-2.console.aws.amazon.com/sns/home …
- نظرًا لعدم وجود مواضيع لديك الآن ، انقر فوق "إنشاء موضوع جديد" لإنشاء موضوع.
- اكتب اسم الموضوع واسم العرض وانقر على "إنشاء موضوع" وسيظهر موضوع جديد عند نجاح جميع الخطوات.
- انقر على زر القائمة المنسدلة "الإجراءات" و "تعديل سياسة الموضوع".
الخطوة 10: إنشاء موضوع AWS SNS (الجزء 2)
- ضع السياسة للسماح للجميع بالنشر والاشتراك ، لأن هذه قيود على حساب AWSEducate.
- اشترك في هذا الموضوع لتلقي التحديثات المنشورة على هذا الموضوع.
-
قم بتغيير البروتوكول إلى "بريد إلكتروني" وأدخل بريدك الإلكتروني في نقطة النهاية.
- توجه إلى بريدك الإلكتروني حيث كتبت نقطة النهاية الخاصة بك ، وانقر على رابط التأكيد لتأكيد اشتراك بريدك الإلكتروني للاشتراك في الموضوع.
- انتقل إلى خدمات "AWS IoT" ، في قائمة التنقل على اليسار ، انقر فوق "Act". هذه الصفحة هي المكان الذي يتم فيه عرض القواعد الخاصة بك وإتاحتها لك لعرضها وتحريرها. حاليًا ، لا توجد قواعد خاصة بشيء إنترنت الأشياء الخاص بك ، انقر فوق "إنشاء قاعدة".
الخطوة 11: إنشاء موضوع AWS SNS (الجزء 3)
- اكتب اسمًا في حقل الاسم لقاعدتك. في حقل الوصف ، اكتب وصفًا لقاعدتك. بالاستمرار في قسم "مصدر الرسالة" ، سنختار أحدث إصدار من SQL في قسم "استخدام إصدار SQL". اكتب * في السمة لتحديد رسالة MQTT بالكامل من الموضوع ، في حالتنا موضوعنا هو "TempHumid".
- ثم أضف إجراء إشعار "SNS" لقاعدتك. ثم ، انقر فوق "تكوين الإجراء".
- في صفحة "تكوين الإجراء" ، اختر موضوع SNS الذي أنشأته للتو وتنسيق الرسالة بتنسيق RAW. بعد ذلك ، اختر الدور الذي أنشأته للتو باستخدام AWS CLI وانقر على "إضافة إجراء".
- سيتم تكوين الإجراء الخاص بك والعودة إلى "إنشاء قاعدة".
- انقر فوق تحرير إذا كنت ترغب في تحرير القاعدة.
الخطوة 12: إنشاء حاوية على Amazon S3
- ابحث عن S3 في شريط بحث AWS.
- في صفحة Amazon S3 ، انقر فوق الزر "Create Bucket" للبدء.
-
املأ النموذج المنبثق الذي يظهر بالمعلومات التالية:
- اسم الجرافة: دلو المصلي (يجب أن يكون فريدًا عبر جميع حاويات Amazon S3 الحالية)
- المنطقة: غرب الولايات المتحدة (أوريغون)
- إعدادات النسخ: (تجاهل)
- للخطوات من 2 إلى 3 ، تخطيها ببساطة بالنقر فوق "التالي" حيث لا يوجد شيء يمكن تغييره. في الخطوة 4 ، انقر فوق "إنشاء حاوية".
- بعد الإنشاء ، سترى دلوك على الصفحة الرئيسية.
الخطوة 13: إنشاء سياسة AWS (الجزء 1)
- انقر فوق الحاوية التي أنشأتها للدخول إلى الصفحة أعلاه ، ثم انتقل إلى "سياسة الحاوية" ضمن علامة التبويب "الأذونات".
- بعد ذلك ، انقر على رابط "مُنشئ السياسة" في أسفل الصفحة لإنشاء سياسة AWS الخاصة بك.
-
في النموذج ، أدخل القيم التالية:
- نوع السياسة: S3 Bucket Policy
- التأثير: السماح
- المالك: *
- خدمة AWS: Amazon S3
- الإجراءات: GetObject
- اسم مورد أمازون (ARN): arn: aws: s3::: seroma-bucket
- بعد ملء المعلومات ، انقر فوق إضافة بيان.
- انقر فوق الزر "إنشاء سياسة".
الخطوة 14: إنشاء سياسة AWS (الجزء 2)
- انسخ الرموز التي تم إنشاؤها وانقر فوق إغلاق.
- ارجع إلى محرر Amazon S3 Bucket Policy والصق الرموز التي تم نسخها مسبقًا.
- أضف "/ *" إلى الأكواد خلف رموز الموارد مباشرةً ، كما في الصورة أعلاه ، ثم انقر فوق حفظ.
- بعد القيام بذلك ، سيتم إعداد الحاوية الخاصة بك بنجاح وستكون جاهزة للاستخدام.
الخطوة 15: إنشاء جداول لـ DynamoDB
- ابحث عن DynamoDB في شريط بحث AWS Services
-
انقر فوق "إنشاء جدول" وإنشاء 3 جداول بالمعلومات أدناه: (تم تغيير "اسم الجدول" و "المفتاح الأساسي" فقط)
- accesslog ، pk datimevalue
- حالة الغرفة ، تاريخ pk القيمة
- staffdata ، اسم المستخدم pk
الخطوة 16: Roomstatus.py
يحتوي هذا القسم على رمز roomstatus.py ، الذي يكتب جميع البيانات المتعلقة بغرفة الخادم نفسها كل دقيقة. يتضمن ذلك درجة الحرارة والرطوبة والحركة (الصور ومقاطع الفيديو إذا كانت صحيحة) وسجلات الوصول. يقوم أيضًا بكتابة البيانات إلى جدول بيانات Google ، والبيانات إلى DynamoDB ، والصور ومقاطع الفيديو (إن وجدت) إلى S3 ، وعرض المعلومات على شاشة LCD ، وإرسال الرسائل القصيرة والبريد الإلكتروني عندما يكون هناك خرق مشتبه به ، أو عندما تكون درجة الحرارة أو الرطوبة غير منتظمة.
لتشغيل ملفات python ، قم بتغيير الدليل إلى حيث يوجد الملف واكتب في وحدة التحكم: "sudo python"
الموافقة المسبقة عن علم 2: الوظائف المعلنة للسماح بتنبيهات الرسائل القصيرة والبريد الإلكتروني ، وتحميلها إلى S3
صورة 3: المتغيرات المعلنة للوظائف و RPi للعمل
الصورة 4: بداية الحلقة التي تحصل على قيم درجة الحرارة والرطوبة من RPi. كما أنه يكتب البيانات في جدول بيانات Google
الموافقة المسبقة عن علم 5: جزء الأمان من الحلقة. سيتم تفعيله فقط من 7 مساءً إلى 7 صباحًا (خارج ساعات العمل). سيتحقق من الحركة في غضون دقيقة واحدة. إذا تم اكتشاف الحركة ، فسيتم التقاط صورة وفيديو ، وتحميلها إلى S3 ، مع كتابة المعلومات أيضًا إلى DynamoDB للرجوع إليها لاحقًا. بعد ذلك ، سيتم إرسال رسالة نصية قصيرة وبريد إلكتروني إذا كان أي شيء غير منتظم.
صورة 6: نهاية الحلقة. كما أنه يكتب البيانات إلى DynamoDB ويرسل التنبيهات وفقًا لذلك. سيجعل السطر الأخير من الحلقة البرنامج النصي في وضع السكون حتى الوصول إلى الدقيقة التالية.
الخطوة 17: Rfid.py
يحتوي هذا القسم على الكود الخاص بـ rfid.py ، والذي يضيف وظيفة للتتبع عندما يصل أحد الموظفين إلى غرفة الخادم. إنه أيضًا جزء من الجانب الأمني في Seroma ، حيث لا يُسمح لأحد الموظفين بالوصول إلى غرفة الخادم بعد ساعات العمل ، لمنع خرق البيانات. كما أنها ترسل بريدًا إلكترونيًا ورسائل نصية قصيرة إلى جميع الموظفين في حالة الاشتباه في حدوث خرق.
الموافقة المسبقة عن علم 2: بداية منطق قارئ RFID. عندما يتم مسح البطاقة ضوئيًا مقابل القارئ ، يتم أخذ المعرف الفريد (uid) للبطاقة. بعد ذلك ، نحاول العثور على القيمة uid للبطاقة في جدول بيانات الموظفين لمعرفة ما إذا كانت البطاقة تنتمي إلى أي من الموظفين. ساعات الفراغ. إذا كان الأمر كذلك ، فسيتم تنبيه بقية الموظفين من خلال الرسائل النصية القصيرة والبريد الإلكتروني إلى عناوين البريد الإلكتروني المشتركين. إذا كان لا يزال خلال ساعات العمل ، فسوف يكتب صفًا إلى جدول سجل الوصول في قاعدة البيانات مع البيانات ذات الصلة. سيعرض أيضًا رسالة ترحيب على شاشة LCD.
الخطوة 18: Server.py
هذا هو ملف server.py. سنستخدم إطار عمل Flask لبوابة الويب. يتم أيضًا إرفاق ملفات HTML التي سيتم وضعها في / القوالب.
صورة 1: المسار الأول للقارورة تحديد. سيعيد توجيه المستخدم إلى صفحة تسجيل الدخول إذا لم يتم تسجيل دخولهم ، وإلى صفحة لوحة القيادة إذا كانوا كذلك. يحدد أيضًا وظيفة لاستخدامها في ميزة البث المباشر
صورة 2 ، 3 ، 4: مسارات للقارورة. يحصل على البيانات من جدول DynamoDB ثم يعيدها إلى ملفات HTML بحيث يمكن استخدامها هناك.
الموافقة المسبقة عن علم 5: آخر مسارين لـ Flask. يتعامل مع وظيفة تسجيل الخروج ووظيفة البث المباشر. كما تحدد المنفذ الذي سيتم تشغيل موقع الويب فيه.
الخطوة 19: Telegram.py
يتضمن هذا القسم رمز روبوت Telegram الخاص بـ Seroma. يستخدم مكتبة telepot للنقر على Telegram's Bot API. إنه يعمل عن طريق قبول الاستفسارات التي يحصل عليها وعرض المعلومات المعنية للمستخدم. يمكن للمستخدم كتابة "مساعدة" للحصول على قائمة كاملة من الأوامر.
صورة 1 ، 2: لإعداد روبوت برقية ، تحتاج إلى استخدام BotFather. ما عليك سوى تشغيل التعليمات للحصول على واجهة برمجة تطبيقات HTTP التي نحتاجها في التعليمات البرمجية الخاصة بنا.
صورة 4: مثال لدالة تأخذ عددًا معينًا من صفوف البيانات من قاعدة البيانات بناءً على طلب المستخدم
الموافقة المسبقة عن علم 5: كيف نأخذ مدخلات المستخدم ونقرر ما سيتم تشغيله وفقًا لذلك.
الخطوة 20: البث المباشر (camera_pi.py)
لقد قمنا بتنفيذ ميزة جديدة لنظام مراقبة غرفة الخادم لدينا ، وهي بث مباشر لما يحدث في غرفة الخادم ، ويمكن الوصول إليها في أي وقت وفي أي مكان. كيف يعمل هذا البث المباشر: إنها ميزة يتم إجراؤها في Flask ، جنبًا إلى جنب مع كاميرا Pi. يتم تنزيل إطارات الفيديو كما يحدث في الحياة الواقعية ، لذلك يمكنك أن ترى بالفعل أن هناك تأخيرًا طفيفًا (1-2 ثانية) حيث يتم تنزيل إطارات الفيديو وتجميعها معًا. لا يمكن القيام بذلك بدون الخيوط ، حيث يقرأ مؤشر ترابط الخلفية الإطارات من الكاميرا ويخزن الإطار الحالي. سيؤدي تجميع كل هذه الإطارات معًا إلى إنتاج دفق مباشر.
صورة 2: هذا ملف منفصل حيث يتم تخزين جميع إطارات الفيديو وكما ترى ، نحن نستخدم وحدة picamera للوصول إلى كاميرا raspberry pi الخاصة بنا لأن هذا هو أكثر ما نعرفه. لدينا كاميرا صفية حتى نتمكن من استيراد الوظيفة كما لو كانت بثًا مباشرًا وليس صورًا متعددة يتم تجميعها معًا ، وبالتالي في ملف التطبيق الرئيسي سوف نعتبرها بثًا مباشرًا دون الحاجة إلى القلق بشأن ما يحدث وراء الكواليس.
صورة 3: هذا جزء من ملف server.py حيث يتم ترميز جزء البث المباشر. الفئة الرئيسية التي استوردناها لهذا هي الكاميرا من ملف camera_pi.py أعلى ملف server.py. لقد حددنا وظيفة في الدليل الجذر الخاص بنا ، عام ، ومع ذلك لا يتم استخدامها إلا عندما نتوجه إلى / video_feed حيث يوجد البث المباشر ، حيث سيتم تكرار هذه الوظيفة وإعادة البث المباشر على صفحة الويب.
موصى به:
مدير الجلسة: تشغيل / إيقاف تشغيل الإضاءة الخلفية لشاشة LCD من Ender 3: 6 خطوات
MOD: Ender 3 LCD Backlight On / Off: Mod لضوء العرض تشغيل / إيقاف تشغيل الطباعة أثناء الليل. الآن يمكنك إطفاء الإضاءة الخلفية
مدير النوافذ المضمنة: 10 خطوات
Embedded Window Manager: يوضح هذا المشروع كيفية تنفيذ مدير النوافذ بنوافذ متداخلة متحركة على وحدة تحكم دقيقة مدمجة مع لوحة LCD وشاشة تعمل باللمس. توجد حزم برامج متوفرة تجاريًا للقيام بذلك ولكنها تكلف مالًا وقريبة
مراقب غرفة الخادم: 4 خطوات
مراقب غرفة الخادم: إحدى مشكلات غرفة الخادم هي درجة الحرارة. مع المعدات المختلفة التي تنتج الحرارة ، يرتفع هذا بسرعة. وإذا فشل تكييف الهواء ، فإنه يوقف كل شيء بسرعة. للتنبؤ بهذه المواقف يمكننا الحصول على واحدة من عدة بيئات
مدير الكابلات: 6 خطوات
مدير الكابلات: بصفتي طالبًا في مجال تكنولوجيا المعلومات ، يأتي الجميع ويسألونني عن كابل لهواتفهم ، للإنترنت ، … لذلك أردت طريقة سهلة لهم للعثور على الكابل الذي يحتاجونه دون مساعدتي. لهذا السبب قمت بإنشاء مدير الكابلات ، ويتم تطوير هذا المفهوم كحل نهائي
جعل مدير الملفات يعمل في Webmin: 5 خطوات
جعل مدير الملفات يعمل في Webmin: يعد Webmin File Manager أداة مفيدة للغاية. بسبب Oracle (صندوق الصابون) ، أصبح من الصعب جدًا استخدام تطبيقات Java في المتصفح. لسوء الحظ ، فإن File Manager هو تطبيق Java. إنه قوي للغاية ويستحق الجهد المبذول لجعله يعمل