جدول المحتويات:

Raspberry Pi HomeLab ومن هو المنزل: 11 خطوة
Raspberry Pi HomeLab ومن هو المنزل: 11 خطوة

فيديو: Raspberry Pi HomeLab ومن هو المنزل: 11 خطوة

فيديو: Raspberry Pi HomeLab ومن هو المنزل: 11 خطوة
فيديو: Raspberry Pi 4B - Установка Debian 12 Bookworm, и Supervised Home Assistant - сентябрь 2023 2024, يوليو
Anonim
Raspberry Pi HomeLab ومن هو المنزل
Raspberry Pi HomeLab ومن هو المنزل
Raspberry Pi HomeLab ومن هو المنزل
Raspberry Pi HomeLab ومن هو المنزل
Raspberry Pi HomeLab ومن هو المنزل
Raspberry Pi HomeLab ومن هو المنزل
Raspberry Pi HomeLab ومن هو المنزل
Raspberry Pi HomeLab ومن هو المنزل

هذا هو أول شيء غير قابل للتدمير ، لكن هذا التوجيه له توهان.

faze one: هو إعداد pi للعمل كمختبر منزلي لعمل IOT لفريق من الطلاب المطورين.

faze الثاني: استخدام النظام من أجل التطوير ، من خلال تنفيذ عرض توضيحي باستخدام مشروعنا من هو المنزل.

بحلول نهاية هذا ، سيكون لديك pi بدون رأس يمكن الوصول إليه عن بُعد ويمكن استخدامه من قبل الأشخاص للبرمجة عن بُعد والعمل على أجهزة IOT.

الآن أحذر من أنه من خلال فتح pi الخاص بك للجمهور دون حماية كافية ، فإنك تفتح نفسك لخطر التعرض لهجوم شبكتك المنزلية.

سننتقل إلى أول مشكلة في الخطوات التالية ، ولكن هذا رابط لبعض المعلومات حول نادينا ومشروع من هو المنزل.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

يقوم مشروع Who Is home بما يلي: يقوم بتشغيل برنامج نصي من نوع python يتحقق من عناوين mac للأجهزة المتصلة بشبكتك. يستخدم Nmap لهذا الغرض. يقوم بتشغيل هذه العناوين مقابل قائمة العناوين وإذا كان العنوان المدرج موجودًا ، فإنه يرسل حرفًا إلى arduino باستخدام الاتصالات التسلسلية. يتحكم arduino في شريط LED وعندما يتلقى حرفًا ، يكون له لون مرتبط بهذا الجهاز ويضيء مصابيح LED لهذا الشخص بناءً على وجوده.

أقسامنا الفرعية

sites.google.com/view/valencia-robotics

sites.google.com/view/valencia-robotics/cl…

موقع أنديتنا

sites.google.com/view/valenciatechclub

تم توفير نص بايثون بواسطة: جوناثان دي لا كروز

www.linkedin.com/in/jonathandelacruz96/

تم تنفيذ برنامج Arduino Script والمشي وإعداد المعمل المنزلي بواسطة: Dylan Poll

www.linkedin.com/in/dylan-poll-4a324a1a2/

أنا ديلان بول ، وأنا الرئيس الحالي للنادي التكنولوجي في كليتنا وأنا أيضًا قائد الأنظمة المدمجة.

اللوازم

بي

اردوينو

لوح التجارب

أسلاك العبور

كاميرا ويب

شريط RGB LED قابل للتوجيه بشكل فردي

مزود الطاقة لبي الخاص بك ، ولوحة المفاتيح والماوس ، والكمبيوتر للقيام بالإعداد الأولي.

الخطوة 1: تنزيل ملفات الإعداد الأولية وتثبيتها

تحميل وتثبيت المعجون (ويندوز)

www.putty.org

تحميل برنامج rufus وتثبيته

rufus.ie

تنزيل برنامج raspbian full buster والبرامج الموصى بها (.zip)

www.raspberrypi.org/downloads/raspbian/

قم باستخراج المحتويات الموجودة في.zip وسيكون هذا هو [ملف الصورة] الخاص بك.

خذ بطاقة micro sd ، واستخدم dock أو microsd لجهاز USB وقم بتوصيله بجهاز الكمبيوتر الخاص بك ، قم بتهيئة بطاقة sd الخاصة بك

الخطوة 2: الجزء الثاني: تثبيت Raspbian باستخدام Rufus

الجزء الثاني: تثبيت Raspbian باستخدام Rufus
الجزء الثاني: تثبيت Raspbian باستخدام Rufus

قم بتشغيل rufus حدد بطاقة sd الخاصة بك في الحقل الأول ، حدد ملف صورة raspbian لـ.iso /.img حدد start وانتظر حتى ينتهي.

الخطوة 3: الجزء الثالث: توصيل Pi

بعد ذلك ، اسحب بطاقة sd ، وضعها في فتحة بطاقة sd الموجودة على pi ، وقم بتوصيل سلك HDMI إلى pi أولاً ، بدلاً من لوحة المفاتيح والماوس وكابل الطاقة الأخير. إذا قمت بتوصيل الطاقة أولاً ، فقد لا يتم تسجيل الشاشة / التلفزيون.

الخطوة 4: الجزء الرابع: إنشاء حسابك

قم بتسجيل الدخول إلى pi! قم بإعداد التشغيل الأول! لا تتخطاه! حدد لوحة المفاتيح باللغة الإنجليزية الأمريكية وإلا فلن تجد الرمز @ الخاص بك لاحقًا … إذا لم يكن الرمز @ الخاص بك هو مكان "موجود. سجل الدخول إلى wifi الخاص بك على pi ، فلا تقم بالتحديث بعد. لدي سبب. اضغط على" مفتاح لوحة مفاتيح Windows "وانتقل إلى التفضيلات ، وانتقل إلى تكوين pi. انتقل إلى علامة التبويب الواجهات.

تمكين VNC…. ولا يتم إعادة تشغيل كل شيء آخر.

الخطوة 5: الجزء الخامس: إعداد جهاز Pi الخاص بك بلا رأس (أفضل شيء على الإطلاق)

الجزء الخامس: إعداد جهاز Pi الخاص بك باعتباره مقطوع الرأس (أفضل شيء على الإطلاق)
الجزء الخامس: إعداد جهاز Pi الخاص بك باعتباره مقطوع الرأس (أفضل شيء على الإطلاق)

انظر إلى أعلى يمين الشاشة. سترى شعار VNC باللونين الأسود والأزرق. افتح ذلك. اضغط على تسجيل الدخول وإنشاء الحساب. أضف بي. على سطح المكتب / الكمبيوتر المحمول ، افتح المتصفح ، ابحث عن تثبيت تنزيل برنامج Google VNC viewer. تسجيل الدخول إلى حسابك. تحقق من بريدك الإلكتروني لتسجيل الدخول وتفويض نفسك. الاتصال بـ pi (اكتب كلمة مرور pi في قائمة تسجيل الدخول الثانية) إذا كانت تعمل ، فقم بإيقاف تشغيل pi. افصل بي الخاص بك وكل شيء. ضع pi في زاوية في غرفتك وقم بتشغيل كابل الطاقة فقط. يمكنك الاتصال بـ pi باستخدام عارض VNC. لديك الآن بي "مقطوعة الرأس". يمكنك أيضًا استخدام SSH. (انظر معلومات SSH في قسم الأشياء الرائعة)

الخطوة 6: الجزء السادس: تثبيت جميع الأدوات الأساسية للتطوير على Pi

الجزء السادس: تثبيت جميع الأدوات الأساسية للتطوير على Pi
الجزء السادس: تثبيت جميع الأدوات الأساسية للتطوير على Pi

باستخدام SSH أو VNC (أو إذا قررت ألا تكون هادئًا وقمت بإعداده بلا رأس) ، فقم بما يلي. افتح Terminal (قد يستغرق هذا الجزء التالي بعض الوقت….) قم بتشغيل هذه الأوامر واحدًا تلو الآخر بعد الانتهاء من كل واحد.

تحديث sudo apt-get ؛ sudo apt-get ترقية تثبيت ffmpeg {sudo apt-get install ffmpeg

الخطوة 7: الجزء السابع: تثبيت Adafruit WebIDE

الجزء السابع: تثبيت Adafruit WebIDE
الجزء السابع: تثبيت Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh افتح متصفحًا على سطح المكتب الرئيسي. قم بتوجيه عنوان URL الخاص بالمتصفح إلى "https://***.*.*.***: 8080" واستبدل "*" بعنوان IP المحلي الخاص بـ Pi. قم بعمل اسم مستخدم وتمريره. لديك الآن إعداد adafruit webIDE.

الخطوة 8: الجزء الثامن: تحديث Node-red و Node.js

update-nodejs-and-nodered الكود التالي سيجعل تشغيل nodered عند بدء التشغيل تمامًا مثل adafruit webIDE ، وهذا مهم إذا كنت ترغب في تطوير هذه الأشياء. sudo systemctl تمكين nodered.service إعادة تشغيل Pi

الخطوة 9: الجزء التاسع: تثبيت Arduino IDE

الجزء التاسع: تثبيت Arduino IDE
الجزء التاسع: تثبيت Arduino IDE

يمكنك القيام بذلك عبر سطر الأوامر ولكن…. لن يكون الإصدار الكامل.. مما يعني أنه لا يمكنك استخدام أداة استيراد / بحث المكتبة ، لتثبيت الإصدار الكامل ، يلزمك الانتقال إلى موقع ويب اردوينو وتنزيل الإصدار الخاص بنموذج pi الخاص بك. سيكون ARM32bit لـ pi3 ، احصل على الإصدار المستقر. افتح Terminal. (استبدل * بمعلومات الإصدار) قم بتشغيل هذه الأوامر.

www.arduino.cc/en/Main/Software

تنزيلات cd / tar -xf arduino-1. *. * - linuxarm.tar.xz sudo mv arduino-1. *. * / opt sudo /opt/arduino-1.*.*/install.sh

الخطوة 10: الجزء العاشر: Ffmpeg

الجزء العاشر: Ffmpeg
الجزء العاشر: Ffmpeg

1x كاميرا ويب لوجيتك

(لا تتضمن العناصر التالية ما تحتاجه لتشغيل دفق على مدار الساعة طوال أيام الأسبوع) 1x لوح توصيل وثاني raspberry pi موديل 3 b (مع بطاقة sd) شريط LED قابل للعنونة بشكل فردي. يعمل سلك وصلة اردوينو نانو على تمكين عارض VNC على كل من Pi (s)

تفضيلات pi ، قم بتمكين vnc ، قم بإنشاء حساب مع VNC viewer هام: في pi الذي تخطط لاستخدامه كمقعد عمل عام ، انتقل إلى إعدادات خادم vnc ، والخيارات ، وعلامة تبويب الخبراء ، واجعل مهلة الخمول: 0 ثانية ، تم تعيينه لإغلاق Vnc إذا كان العارض خاملاً بعد ساعة ، فسيؤدي ذلك إلى منع نافذتك من إغلاق عارض VNC المثبت أثناء البث على جهاز البث في الطرفية.

sudo apt-get install vnc-java y

قم بتوصيل كاميرا الويب الخاصة بك و.. تثبيت كاميرا الويب الخاصة بك.

sudo apt install fswebcam

قم بتثبيت ffmpeg sudo apt-get install ffmpeg y

هذا هو المكان الذي تلعب فيه اختياراتك. في المحطة الطرفية ، قم بتشغيل هذا البرنامج النصي لفتح نافذة على سطح مكتب Streamer pi لكاميرا الويب الخاصة بك.

ffplay -window_title "pi-cam" / dev / video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay سيسمح لك برؤية هذا في نافذة تسمى pi-cam ، كاميرا الويب تظهر لك في الموقع dev / video0 وحجمه الأصلي 1920x1080. أريد فقط أن أرى المحصول = العرض: الارتفاع: topleft_X: topleft_Y ومعدل الإطارات 20 يكفي بالنسبة لي. الكود التالي سوف يتدفق إلى نشل.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -vf scale = 1280x720 -c: v h264 -g 24 -b: v 2M -preset فائق السرعة -c: aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

-f x11grab يستخدم للاستيلاء على شاشتك. تم ضبط دقة شاشتي على 1280 × 1024 أريد أن أعرض ذلك بتنسيق 1280x720 so -vf.

2 م = 2 ميجابايت معدل التحميل. -f flv هو تنسيق الفيديو إلى.flv حتى يتمكن twitch من استخدامه.

يمكنك الآن منح فريقك بيانات اعتماد VNC الخاصة بك إلى طاولة العمل Pi ويمكنهم رؤية التغييرات التي تم إجراؤها على شريط LED مباشرةً عن بُعد. تصرخ لهذا الرجل ~! ساعدني مقطع الفيديو الخاص به في الوصول إلى المسار الصحيح ، ولا يزال يتعين علي معرفة كيفية عرض كاميرا الويب الخاصة بي على الرغم من … ومعرفة المزيد عن ffmpeg X /

آرثر ريدر https://www.youtube.com/watch؟v=kb_5_9GkwZc ملاحظة: أنا لست الشخص الأكثر استنارة ، هذا يعمل ببساطة لاحتياجاتي ، إذا كان لدى أي شخص نصيحة بناءة ، فأنا أحب سماعها ولكن من فضلك لا يعني أن أحد الطرق الممكنة للمضي قدمًا في هذا الأمر ، سيكون استخدام هذا الميكانيكي لدفق هذا ، واستخدام pi آخر وضوء تمديد الكروم لجلب هذا الدفق وإدخال كاميرا الويب في ذلك أو بأي طريقة أخرى. https://www.youtube.com/watch؟ تم إرسالها إلى twitch ، هذا جالس في غرفتي لذا لا أقوم ببث أي صوت ، كما أنه يساعد في تقليل الحمل على pi.

ffmpeg -f x11grab -video_size 1280x1024 -إطار 24 -i $ DISPLAY -f alsa -i افتراضي -af acompressor = العتبة = 0.089: النسبة = 9: الهجوم = 200: الإصدار = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -preset فائق السرعة -c: aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

الخطوة 11:

صورة
صورة
صورة
صورة
صورة
صورة
صورة
صورة

الآن حتى النهاية ، تنفيذ اتصالات اردوينو وباي التسلسلية مع بيثون.

--- مشروع من هو المنزل --- يستخدم المشروع برنامج نصي بيثون يقوم بتشغيل nmap في المحطة الطرفية ، ونسخ محتويات ذلك ، وتحليل النص الذي لا نحتاج إليه ، ومقارنة عناوين mac الموجودة على الشبكة مقابل العناوين المدرجة عناوين mac وإذا كان هناك تطابق ، فهذا الشخص في المنزل. تم العثور على عناوين mac من خلال القيام بعمل استقصائي على جهاز التوجيه ، ولكن أداة nmap تمنحك معلومات حول الأجهزة الموجودة في الملف النصي الذي تم إنشاؤه بواسطة الرمز. إذا كان المستخدم موجودًا ، فإنه يرسل حرفًا إلى arduino ، وينتظر arduino حتى يتم الانتهاء من قائمة التحقق ، ويضيء مصابيح LED المقابلة لملفات التعريف المدرجة لعناوين mac للأجهزة الحالية. يمكنك إضافة أشياء أخرى ، مثل تشغيل روبوتات الخلاف على الأشخاص الذين يأتون أو ينتقلون باستخدام نفس الرمز باستخدام مشغل العملية الفرعية لتنفيذ أوامر المحطة الطرفية داخل نص Python الخاص بك. لذلك نقوم أولاً بتثبيت nmap sudo apt-get install nmap. بعد ذلك ، سترغب في تنزيل الملفات على أنديتنا Git-Hub.

github.com/ValenciaRobotics/embeddedclub

بالنسبة إلى كود python ، يأتي تثبيت raspbian مع كل ما هو مستخدم في هذا الرمز ، لذلك لا تحتاج إلى تثبيت أي شيء إضافي. استخدمنا عملية الاستيراد ، عملية الاستيراد الفرعية ، وقت الاستيراد ، استيراد المسلسل ، من المهم ملاحظة أن بيثون يستخدم المسافة البادئة لفصل كتل التعليمات البرمجية ، لذا كن على دراية بذلك إذا قررت تغيير طريقة كتابة الكود:) يأتي py thonny id وعدد قليل من الخيارات الأخرى ، أجد أن تشغيل البرنامج النصي في thonny أمر مباشر حقًا ، إذا نقرت على الملف وحاولت تنفيذه ، فقد اقترح أو افترض أن thonny هو ما تريد استخدامه. قبل تشغيل البرنامج ، ستحتاج إلى تعديل ما يلي. السطر 14: تُستخدم الرموز * لإخفاء معلومات جهاز التوجيه الخاص بي ، سيتعين عليك استبدال ذلك بـ IP المحلي الخاص بك. سيكون نفس ما تستخدمه للاتصال بجهاز التوجيه الخاص بك. الأسطر 28 و 38 و 48 و 58: تستخدم جميعها الرمز * لإخفاء عناوين أجهزة Mac المدرجة من شبكتي ، يجب عليك تغييرها إلى عناوين mac الخاصة بالأجهزة الموجودة على شبكتك لاكتشاف الاتصالات. لماذا عناوين ماك؟ لأنه بدون حجز مواقع لجهازك ، فمن المؤكد أنها ستبقى كما هي إلا إذا قام شخص ما بالانتحال. مشاكل مع هذا الرمز ، سيتم اكتشافه فقط أثناء استخدام الاتصال للإنترنت بشكل نشط ، لذلك قد لا يتم اكتشافه على الرغم من وجود المستخدم. في كود اردوينو ، سترغب في تغيير ما يلي. أولاً ، سترغب في الانتقال إلى علامة التبويب "أدوات" ، وتحديد مدير المكتبات ، والبحث عن "fastLED" وتثبيت مكتبة "fastLED". بعد ذلك ، ستحتاج إلى تحميل كود.ino "who is home" من صفحة github وتغيير التالي كما تريد. السطر 86: قم بتغيير الألوان بناءً على ما تريد أن يعلقه المستخدمون:)

// قم بتشغيل ما تحتاجه

إذا (د == 1) {المصابيح [0] = 0xdd8bff ؛ // المصابيح الأرجواني [1] = 0xdd8bff ؛}

إذا (l == 1) {المصابيح [2] = CRGB:: أخضر ؛ المصابيح [3] = CRGB:: أخضر ؛}

إذا (ك == 1) {المصابيح [4] = CRGB:: أحمر ؛ المصابيح [5] = CRGB:: أحمر ؛ }

إذا (j == 1) {المصابيح [6] = CRGB:: أزرق ؛ المصابيح [7] = CRGB:: أزرق ؛}

FastLED.show () ، تأخير (30000) ؛ // 10 ثوانٍ انتظر في حالة التبديل ، فيما يلي شرح موجز لكيفية إضافة المزيد من المستخدمين

حلقة فارغة(){

إذا (Serial.available ()> 0) {

Serial.println () ،

شخص = Serial.read () ،

تأخير (1000) ؛

تبديل (شخص) {

case'D ': د = 1 ؛

شخص = 'F' ؛

العد = العد + 1 ؛

استراحة؛

case'd ':

د = 0 ؛

شخص = 'F' ؛

العد = العد + 1 ؛

استراحة؛

الحرف الكبير D هو الحرف الذي تم استلامه من نص Python ، لذلك فهو يعرف أن المستخدم موجود لأن الحرف المستلم هو الحرف الكبير D ، لذلك يغير قيمة INTEGER d إلى 1 ، إذا كان حرفًا صغيرًا مما يعرفه غائبة ، لذلك يتم تعيين العدد الصحيح على 0. تستخدم حالة إضاءة المصابيح في البرنامج النصي من قبل عبارة تفيد بأن إذا كانت d تساوي 1 من ستضيء المصباح ، ولكن إذا لم يكن الأمر كذلك ، فإن المصباح يبقى على أنه "أسود" بمعنى غير مضاء. يستخدم هذا الرمز مكتبة "fastLED" وهناك الكثير من الوثائق حول هذا الموضوع. لاحظ أنه إذا قمت بتغيير الأحرف أو إضافة أحرف أو إزالة الأحرف ، فسيتعين عليك تغيير نص Python لإرجاع تلك التي قمت بتغييرها أيضًا ، سيكون عليك أيضًا تغيير الشرط في الحلقة الفارغة. إذا (count == 4) {holdup ()؛}} يجب أن يعكس العدد عدد الأجهزة التي "تتبعها". في حالتي هي 4 ، لذا فهي تنتظر حتى يتم الإعلان عن 4 أجهزة على أنها موجودة أو غائبة ثم تقوم بتحديث شريط LED. في كود Python ، تحتوي الأسطر 31 ، 34 ، 41 ، 44 ، 51 ، 54 ، 61 ، 64 على السطر التالي ، اكتب (b '*') # يرسل الحرف المصبوب على شكل بايت على المسلسل حيث * هو حرف هو إرسالها إلى اردوينو. قم بتغيير هذا إذا قمت بتغيير الكود في اردوينو أو العكس:)

مرة أخرى ، كبيان ختامي ، أريد أن أنسب الفضل إلى زميلي في الفريق جون ، لقد قام بعمل رائع في التقاط فترة الركود عندما احتجنا إليها.

تم توفير نص بايثون بواسطة: جوناثان دي لا كروز

تم تنفيذ برنامج Arduino Script والمشي وإعداد المعمل المنزلي بواسطة: Dylan Poll

www.linkedin.com/in/dylan-poll-4a324a1a2/

نأمل أن نفوز بقميص على الأقل! سوف أقوم بتحديث هذا بأوامر shell للتنزيل التلقائي وتثبيت معظم هذا ، يحتوي موقع نادينا في الواقع على نصوص شل قابلة للتنزيل للقيام بعمليات ffmpeg.

استغرق هذا المشروع الكثير من الوقت ، لقد قمت بتأسيس هذا القسم من النادي من الألف إلى الياء لذلك أستطيع أن أقول بكل فخر أن هذه اللحظة تجلب لي الكثير من السعادة.:) شكرا لك على وقتك ، لدينا منصة عمل لتطويرها الآن في فريقي بسبب هذا المشروع.

موصى به: