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

كاميرا Raspberry PI و Light Control Death Star: 5 خطوات (بالصور)
كاميرا Raspberry PI و Light Control Death Star: 5 خطوات (بالصور)

فيديو: كاميرا Raspberry PI و Light Control Death Star: 5 خطوات (بالصور)

فيديو: كاميرا Raspberry PI و Light Control Death Star: 5 خطوات (بالصور)
فيديو: The Choice is Ours (2016) Official Full Version 2024, يوليو
Anonim
كاميرا Raspberry PI و Light Control Death Star
كاميرا Raspberry PI و Light Control Death Star
كاميرا Raspberry PI و Light Control Death Star
كاميرا Raspberry PI و Light Control Death Star
كاميرا Raspberry PI و Light Control Death Star
كاميرا Raspberry PI و Light Control Death Star

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

إليكم مشروعًا رائعًا آخر ، أطلق عليه في الأصل Shadow 0f Phoenix ، وهو درع Raspberry PI بالاشتراك مع كشف الحركة القائم على Arduino وعناصر التحكم في الضوء.

الخطوة 1: حالة كاميرات IP التجارية

حالة كاميرات IP التجارية
حالة كاميرات IP التجارية
حالة كاميرات IP التجارية
حالة كاميرات IP التجارية
حالة كاميرات IP التجارية
حالة كاميرات IP التجارية

إلى جانب ذلك ، فإن بناء نظام الكاميرا / المراقبة الخاص بك هو أكثر روعة ، دعنا نرى لماذا يعد هذا تحسينًا من حل جاهز.

سأقارنه بسلسلة كاميرات NEO COOLCAM Full HD 1080P اللاسلكية IP لأنني امتلكت الكثير من هذه الطرز المختلفة من كاميرات neo coolcams (ONVIF). إنها تأتي بأشكال وأحجام مختلفة ، في الهواء الطلق وفي الداخل ، وقد تم بناء معظمها في دعم wifi ولكن دعنا نرى المحاذير الخاصة بهم:

  • يكذب المصنّعون الصينيون الذين يبيعون هذه الكاميرات دائمًا بشأن دقة مستشعر الصورة المضمنة ، فعند شراء كاميرا بدقة 5 ميجابكسل / 8 ميجابكسل على موقع Ebay ، قد ينتهي بك الأمر بكاميرا رخيصة بدقة 2 ميجابكسل مع صورة سيئة (إنها تعمل ولكن الجودة تافهة). عند شراء كاميرا Raspberry PI v2 بدقة 8 ميجابكسل من بائع التجزئة الأصلي ، ستحصل على ما دفعته ومستشعر 8 ميجابكسل الفعلي بدقة 3280 × 2464 بكسل =>
  • من وجهة نظر الأمان ، فإن هذه الكاميرات (حتى أكثر طرازات Dlink باهظة الثمن والنماذج الأخرى) مروعة ، فهي تستخدم كلمات مرور افتراضية مثل 123456 أو مستخدمين مدمجين مثل المشرف / المشرف المشغل / المشغل ما قد لا تتمكن حتى من تغييره أو ذهب التغيير بعد إعادة التشغيل. قم بتثبيته مع العديد من هذه الكاميرات في المنزل (اتصل بخوادمهم في الصين ، حتى أن البعض يبث الفيديو / الصور مرة أخرى دون أن يطلب منك فقط تسهيل الأمر في حال قررت تثبيت تطبيق Android / Iphone الخاص بهم يومًا ما للتحقق من الصفحة الرئيسية). حتى إذا وضعت هذه الأجهزة خلف جهاز توجيه ، فهذا ليس جيدًا بما فيه الكفاية ، والأفضل إذا لم تقم بتعيين بوابة افتراضية فيها ، أو قمت بإخراجها من جدار الحماية أو وضعها في شبكة محلية ظاهرية (VLAN) لتجعل من المستحيل عليها الخروج إلى الإنترنت أو أفضل: لا تستخدمها على الإطلاق.
  • هل هم أكثر موثوقية؟ كلا ، فالكثير منهم حتى DLINKs الأكثر تكلفة لديهم خيار إعادة تشغيل الكاميرا يوميًا / أسبوعيًا وما إلى ذلك. هذا الخيار موجود لسبب ما ، لأنه بعد X أيام غالبًا ما يفقدون اتصال Wifi أو يسيئون التصرف بطرق أخرى. ما عليك سوى التفكير فيها على أنها صناديق Win95 قديمة جيدة تحتاج إلى إعادة التشغيل في كثير من الأحيان:) لا أقول إن الأجهزة القائمة على Raspi صلبة للغاية بحيث يمكنك بناؤها للتحكم في محطات الطاقة النووية ولكن باستخدام الأجهزة / البرامج المناسبة التكوين ومبددات الحرارة ومراوح التبريد الأوتوماتيكية وتشغيل RW المصغر على SDCARD يمكنهم بسهولة الوصول إلى 100+ يوم من وقت التشغيل دون مشكلة. في وقت كتابة هذا التقرير ، كان برنامج DeathStar الخاص بي يعمل منذ 34 يومًا ، وكان أكثر من 100 يومًا ، لكن في بعض الأحيان كنت أقوم بالقرصنة على الخلاصة في مصدر الطاقة الذي يعمل على تشغيل بعض دوائري الأخرى ، لذا اضطررت إلى إغلاقها:(
  • الأجهزة المستهدفة: يتم تصنيعها لغرض واحد محدد ، وغالبًا ما تأتي مع منطقة nvram صغيرة وصندوق Busybox ، لكن بعض الطرز تجعل الوصول إلى هذا الغلاف مستحيلًا أيضًا ، لذا فإن كل ما يمكنك استخدامه من أجله هو ما قصدت استخدامه بينما يمكنك ذلك استخدم الكاميرا القائمة على Raspi لأي مهام أخرى: خادم الملفات ، خادم tftp / dhcp ، خادم الويب ، خادم quake … الخيارات غير محدودة.
  • مساحة التخزين: إما أنهم لا يملكون أي شيء أو يستخدمون بطاقات microsd مع نظام ملفات FAT32 VS على raspberry pis ، يمكنك حتى إرفاق محرك أقراص ثابتة بسعة 2 تيرابايت إذا أردت.
  • التحكم في الأضواء: يحتوي البعض على خرج ALARM حيث قد تتمكن من توصيل مرحل صغير لتشغيل الأضواء. كما سأوضح لك في هذا البرنامج التعليمي ، فإن استخدام كاميرات الأشعة تحت الحمراء يعد مضيعة للوقت تمامًا نظرًا لأنك لن تكون قادرًا على تحديد أي شخص على صور الأشعة تحت الحمراء بسبب الجودة السيئة. إذا كنت بحاجة إلى تسجيل مقطع فيديو في الظلام ، فإن أفضل طريقة للقيام بذلك هي تشغيل بعض الضوء أولاً ثم تسجيل الفيديو.

لذلك قد تسأل هل هناك أي عروض ترويجية لاستخدام كاميرا جاهزة؟ نعم بالنسبة للشركات التي تكون فيها ساعات العمل لإعدادها أكثر تكلفة من العبث باستخدام Raspberry pis (ليس بالنسبة لي على أي حال:)) ونعم ، هناك أفضل الكاميرات (500 دولار + بدقة أفضل من كاميرا pi) مسار). كميزة أخرى يمكنني القول أن الكاميرات التي تتبع معيار ONVIF جعلت التزويد المركزي أسهل. يوفر هذا واجهة قياسية يمكن استخدامها لإرسال أوامر إلى الكاميرا لتعيين IP / قناع الشبكة / البوابة وأشياء أخرى. لهذا يمكنك تنزيل Onvif device manager من Sourceforge. تأتي الكثير من هذه الأجهزة مع واجهات ويب معطلة سيئة حيث لا تسمح لك على سبيل المثال بتعيين IP أو قناع الشبكة بشكل صحيح لأن جافا سكريبت الذي يتحقق من صحة هذه الحقول معطل وطريقتك الوحيدة لتعيين هذه المعلمات بشكل صحيح هي من خلال ONVIF.

الخطوة الثانية: خطط نجم الموت

خطط نجمة الموت
خطط نجمة الموت
خطط نجمة الموت
خطط نجمة الموت
خطط نجمة الموت
خطط نجمة الموت

يمكنك بناء هذا الجهاز مع أي من Raspberry PIs بدءًا من 1 إلى 3B +. حتى الصفر يحتوي على منافذ للكاميرا ، ولكن نظرًا لوجود العديد من الخرطوشات المستعملة في السوق ، فقد تتساءل عن الخيار الأكثر مثالية لهذا التصميم.

تعتمد الإجابة على المكان الذي تريد معالجة دفق الفيديو فيه.

هناك خياران:

1 ، قم بمعالجة مقاطع الفيديو محليًا بالحركة وإعادة توجيه دفق الفيديو عند اكتشاف الحركة (ملاحظة: تقدم الحركة دفقًا ثابتًا بطيئًا إلى الخادم بغض النظر عن أي شيء ، يمكن أن يعتمد ذلك على الدقة ومعدلات الإطارات التي تستخدمها من زوجين من مئات ميغا بايت إلى عدة جيجابايت يوميًا ، فقط تذكير إذا كنت تريد إجراء إعداد على اتصال محدود). هنا أهمية وحدة المعالجة المركزية وللأسف لا تستفيد الحركة (في وقت كتابة هذا التقرير) من النوى المتعددة ، ولكن نظام التشغيل سيحاول موازنة الحمل قليلاً. سيكون لديك دائمًا أحد النوى عند الاستخدام بنسبة 100٪.

2 ، قم بمعالجة مقاطع الفيديو على خادم مركزي: هنا تقوم فقط بإعادة توجيه دفق الفيديو الخام من الكاميرا إلى جهاز دفق خارجي (مثل iSpy يعمل على كمبيوتر x86 أو MotionEyeOS يعمل على كمبيوتر صغير مخصص آخر). نظرًا لعدم وجود معالجة محليًا ، لا يهم نموذج PI الذي تستخدمه ، سيرسل PI1 نفس الدفق مثل PI3B +.

في هذا البرنامج التعليمي سوف أذهب مع الخيار الأول.

القاعدة الأساسية هنا هي أنه كلما زادت سرعة وحدة المعالجة المركزية التي تحركها ، ستحصل على نتائج أفضل. على سبيل المثال ، الكاميرا الخاصة بي التي تعتمد على Raspi 2 والتي تنظر إلى ممر في بعض الأحيان لا تلتقطها عندما يمر شخص ما بسرعة وعندما يتم التسجيل كان التسجيل بطيئًا ، مما أدى إلى إسقاط الكثير من الإطارات مقارنة بالنموذج 3. يحتوي الطراز 3 أيضًا على 802.11 abgn wifi الذي يكون في المتناول ليكون قادرًا على بث فيديو بجودة أعلى ، إنه يعمل خارج الصندوق وهو موثوق تمامًا. في وقت كتابة هذا التقرير ، كان الطراز 3B + قد خرج ، أوصي فقط بالحصول على وحدة المعالجة المركزية 1.4 جيجا هرتز رباعية النواة.

قائمة المواد

  • 30 سم ديث ستار بلاستيك:)
  • Raspberry Pi 3 B +
  • PiCam v2 (8 ميجا بكسل)
  • اردوينو برو مايكرو 5.5 فولت
  • 2x SIP-1A05 Reed Switch Relay
  • 1x PCS HC-SR501 IR وحدة كاشف مستشعر حركة الأشعة تحت الحمراء الكهروضوئية IR PIR
  • 1x 10 كيلو أوم المقاوم لـ LDR
  • 1x LDR
  • محول 1x12V 4A DC
  • 1xWarm الأبيض LED 5050 SMD شريط إضاءة مرن 12 فولت تيار مستمر
  • 1xBuck منظم الجهد

كما ترون في المخططات ، تم تصميم هذا المشروع في الأصل للتحكم في ضوء واحد مع مرحل واحد لأنني لم أخطط لإضافة إضاءة داخلية (وهو أمر رائع جدًا) لذلك قمت فقط بتوصيل مرحل ثانٍ إلى Arduino. إن الشيء العظيم في SIP-1A05 هو أنه يحتوي على الصمام الثنائي flyback الداخلي والاستهلاك في mA أقل بكثير من قيود الطاقة لكل طرف في Arduino.

سبب وجود PIR على الدرع على الصور لأنه في البداية كان من المخطط وضع S0P في صندوق بلاستيكي IP بسيط بدلاً من DeathStar. كما كنت قد خمنت أن الكاميرا موجودة مباشرة في مسدس الليزر ، احتاج PIR و LDR إلى ثقوب أخرى محفورة وتم لصقها بالغراء لأنني لا أخطط لإزالتها.

تم حفر حفرة في الجزء السفلي من DeathStar حيث قمت بلصقها في مسمار كبير بغراء قوي مكون من مكونين. يمكن ثمل هذا في حامل Neo Coolcams الأصلي (كان جيدًا لشيء ما بعد كل شيء:)). للحصول على دعم إضافي ، أستخدم أسلاكًا نحاسية صلبة لتثبيتها على الجزء العلوي من النجمة.

ملاحظة مهمة حول مصدر الطاقة: نظرًا لأن نفس مصدر الإمداد بالطاقة سيشغل كلاً من PI و Arduino وشريط LED ، فيجب أن يكون قويًا بما يكفي ليكون قادرًا على التعامل معها جميعًا ، لذا سيعتمد على شريط LED الذي تختاره للمشروع. يستنزف شريط LED التجاري 5050 12 فولت 3 متر حوالي 2 أمبير ، وهذا كثير. بالنسبة إلى PI و Arduino ، عليك أن تحسب في + 2A (على الرغم من أن هذا حجم كبير لن يضر). إن استخدام شريط LED فوق لمبات الهالوجين القياسية أو النيون أو غيرها من الإضاءة عالية الطاقة هو أنه يمكنك وضع هذه الدائرة بأكملها على بطارية حمض الرصاص بقوة 12 فولت @ 10 أمبير كاحتياطي حتى تعمل في حالة انقطاع التيار الكهربائي.

سيقوم باك بتخفيض الجهد من 12-> 5 فولت لتشغيل Arduino و PI بينما يتم توصيل التغذية المباشرة بجهد 12 فولت على التتابع لتشغيل شريط LED.

الخطوة 3: برنامج اردوينو

برنامج اردوينو
برنامج اردوينو

يمكنك العثور على الكود المصدري الكامل بالأسفل والذي تم التعليق عليه جيدًا ولكن إليك شرحًا موجزًا لكيفية عمله: في بداية كل حلقة يتم استدعاء وظيفة xcomm () المعتادة لمعرفة ما إذا كان هناك أمر يأتي من Raspberry PI والذي يمكن أن يكون LIGHT_ON / OFF لتشغيل أضواء الممر أو DS_ON / OFF لتشغيل / إيقاف تشغيل الإضاءة الخلفية لـ DeathStar ، لقد قمت بتنفيذها فقط من أجل الكمال المفرط لأنه إذا مر شخص ما من قبل PIR ، يجب أن يلتقطها وتشغيلها الأضواء ولكن ربما تريد أن تنظر إلى المكان لسبب ما حتى عندما لا يكون هناك أحد.

بعد ذلك تقرأ قيمة الخلية الكهروضوئية ويتم فحص دبوس الحركة للحركة. إذا كانت هناك حركة ، يتحقق الكود مما إذا كان مظلمًا بدرجة كافية ، فإنه يتحقق مما إذا كنا في حالة انتظار. إذا مر كل هذا ، فإنه ببساطة يضيء ضوء الممر ويرسل PHOENIX_MOTION_DETECTED مرة أخرى إلى Raspberry PI ، إذا لم يكن مظلمًا بدرجة كافية ، فإنه لا يزال يشير إلى الكمبيوتر ولكنه لا يضيء. بمجرد اكتشاف الحركة ، يبدأ مؤقت الانتظار لمدة 5 دقائق.

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

لدينا مؤقت تعليق آخر للإضاءة الداخلية لـ DeathStar والذي يعتمد تمامًا على قراءة الخلية الكهروضوئية <dark_limit.

على الرغم من أن الروتينين لا يعرفان بعضهما البعض ، إلا أنهما سيعملان معًا بشكل مثالي لأنه عندما يضيء ضوء الممر فإنه يوفر الكثير من الضوء بحيث يعتقد LDR أنه نهارًا مرة أخرى ويقوم بإيقاف تشغيل الإضاءة الداخلية. ومع ذلك ، كانت هناك بعض التحذيرات حول هذه العملية والتي تم شرحها في الكود إذا كنت مهتمًا ، وإذا لم يكن الأمر كذلك ، فاخذ إجابة Nvidia "إنها تعمل فقط!".

الخطوة 4: برنامج Raspberry PI

برنامج Raspberry PI
برنامج Raspberry PI
برنامج Raspberry PI
برنامج Raspberry PI
برنامج Raspberry PI
برنامج Raspberry PI

أحدث إصدار من Raspbian يناسبني:

Raspbian GNU / Linux 9.4 (امتداد)

Linux Phoenix 4.9.35-v7 + # 1014 SMP Fri 30 Jun 30 14:47:43 BST 2017 armv7l GNU / Linux ii motion 4.0-1 armhf V4L برنامج الالتقاط يدعم كشف الحركة

بينما يمكنك استخدام توزيعات أخرى ، إذا واجهت أي مشاكل مع الكاميرا ، فلن تحصل على دعم من الفريق إلا إذا كنت تستخدم نظام التشغيل الرسمي الخاص بهم. يوصى بشدة بإزالة برامج bloatware غير المرغوب فيها مثل systemd.

يمكن أيضًا إنشاء الحركة من المصدر بسهولة:

apt-get -y install autoconf automake pkgconf libtool libjpeg8-dev build-basic libzip-dev apt-get install libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev

apt-get -y install libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev apt-get -y install git git clone https://github.com/Motion-Project/motion cd motion / autoreconf -fiv. / config --prefix = / usr / Motion make && make install / usr / motion / bin / motion -v

أوصي بـ iSpy كخادم مسجل / خادم تجميع الفيديو. لسوء الحظ في وقت كتابة هذا التقرير ، لا توجد بدائل جيدة لنظام التشغيل Linux. يمكن إضافة الكاميرا باستخدام عنوان MJPEG url https:// CAMERA_IP: 8081 المنفذ الافتراضي.

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

تم اكتشاف حدث Pir Motion على المستشعر> تنبيه Arduino> استقبال Raspberry Pi على وحدة التحكم> برنامج معالجة C> تطبيق البريد الخارجي

ومع ذلك ، فإنني أفضل معالجة كل من السجلات ومقاطع الفيديو عن بُعد ، لذا في هذه الحالة ، أضفت قسمًا إلى برنامج التحكم C أثناء قيامه بتسجيل السجلات محليًا في ملف نصي عادي ، كما يتم تسجيله في سجل النظام ويتم إعادة توجيهه إلى SIEM لـ مزيد من المعالجة.

مسجل باطل (char * text) {

FILE * f = fopen ("phoenix.log"، "a")؛ if (f == NULL) {printf ("خطأ في فتح ملف السجل! / n")؛ إرجاع؛ } fprintf (f، "٪ s =>٪ s / n"، cur_time (0)، نص)؛ fclose (و) ؛ #ifdef SYSLOG char loggy [500]؛ sprintf (تسجيل الدخول ، "٪ s =>٪ s / n" ، cur_time (0) ، نص) ؛ setlogmask (LOG_UPTO (LOG_NOTICE)) ، openlog ("DeathStar" ، LOG_CONS | LOG_PID | LOG_NDELAY ، LOG_USER) ؛ // syslog (LOG_NOTICE، "بدأ البرنامج بواسطة المستخدم٪ d"، getuid ())؛ سجل النظام (LOG_NOTICE ، loggy) ؛ كلوسلوج () ؛ #endif عودة ؛ }

في الطرف المتلقي ، يمكن لـ syslog-ng عرض هذه الأحداث من تدفق السجل الرئيسي:

مرشح f_phx {

مباراة ("DeathStar") ؛ } ؛ الوجهة d_phx {file ("/ var / log / phoenix / deathstar.log") ؛ } ؛ سجل {المصدر (s_net) ؛ مرشح (f_phx) ؛ الوجهة (d_phx) ؛ } ؛

ويمكن تمريرها إلى أداة أخرى (motion.php انظر المرفق) للتحليل والتنبيه.

في هذا البرنامج النصي ، يمكنك ببساطة ضبط الوقت المعتاد خلال الأسبوع عندما لا تكون في المنزل:

$ opt ['alert_after'] = '09:00:00'؛ // Mornings $ opt ['alert_before'] = '17:00:00'؛ // أمسيات

يستخدم برنامج php الأداة المساعدة الممتازة logtail لتحليل السجلات.

$ cmd = "logtail -o". $ offsetfile. ' '. $ logfile.'> '. $ logfile2؛

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

يمكن تشغيل Motion.php من crontab بخدعة صغيرة لعطلات نهاية الأسبوع ، عندما يمر عبر السجلات ، ولكن لا يقوم بأي معالجة أخرى.

* / 5 * * 1-5 / usr / local / bin / php ~ / motion.php &> / dev / null * / 5 * * * 6-7 / usr / local / bin / php ~ / motion.php عطلة نهاية الأسبوع &> / dev / null

الخطوة 5: المشكلات وقائمة المهام

القضايا وقائمة المهام
القضايا وقائمة المهام
القضايا وقائمة المهام
القضايا وقائمة المهام

إذا كنت تستخدم Raspberry pi 3 أو أحدث ، يمكنك تخطي هذا القسم ، فعلى الأرجح لن تواجه هذه المشكلات بعد الآن.

خلال السنوات ، واجهت بعض المشكلات مع لوحات Raspberry pi 2 التي قد تعمل على نفس حزمة البرامج ولكن تم شراؤها في أوقات مختلفة من أماكن مختلفة. بعد فترة زمنية معينة يمكن أن تكون يومين أو 20 يومًا عندما يتم تثبيت SSH على الجهاز ، سيتم تعليق SSH فقط ، لذلك تم تحميل كل من البرنامج الخفي للحركة وكود C المحلي الذي تحدث إلى Arduino في ذاكرة الوصول العشوائي وبالتالي كان الجهاز يعمل لكن كان من المستحيل فعل أي شيء آخر بها بعد الآن في هذه الحالة.

بعد الكثير من استكشاف الأخطاء وإصلاحها ، توصلت إلى حل:

homync.sh

#! / bin / sh -e

### معلومات البدء # توفر: المزامنة المنزلية # مطلوب - بداية: mountkernfs $ local_fs # Required-Stop: camera phoenix # Default-Start: S # Default-Stop: 0 6 # Short-Description: Home المزامنة # الوصف: مزامن الصفحة الرئيسية بواسطة NLD ### END INFO INFO NAME = home DESC = "Ramdisk Home Synchronizer" RAM = "/ home /" DISK = "/ realhome /" set -e case "$ 1" في البداية | إيابًا) echo -n "بدءًا من $ تنازلي: "rsync -az - معرفات رقمية - حذف $ DISK $ RAM &> / dev / null echo" $ NAME. " ؛؛ stop | back) echo -n "Stopping $ DESC:" rsync -az --numeric-ids - حذف $ RAM $ DISK &> / dev / null echo "$ NAME." ؛؛ *) صدى "Usage: $ 0 {start | stop}" exit 1 ؛؛ مخرج esac 0

يتم دمج البرنامج النصي مع تعديل fstab:

tmpfs / home tmpfs rw ، الحجم = 80٪ ، nosuid ، nodev 0 0

يتم تثبيت قسم المنزل على شكل ramdisk مما ينتج عنه مساحة خالية تبلغ حوالي 600 ميجابايت على Raspberry pi 2 وهو أكثر من كافٍ لتخزين بعض الثنائيات وملفات السجلات الصغيرة:

tmpfs 690M 8.6M 682M 2٪ / المنزل

اتضح أن PI hang يُنسب إلى عمليات الكتابة على SDcard ، على الرغم من أنني جربت بطاقات مختلفة (Samsung EVO و Sandisk) والتي تم فحصها بحثًا عن أخطاء عدة مرات قبل وبعد ولم تكن لديهم مشكلة في أجهزة الكمبيوتر المحمولة الأخرى ، كان هذا فقط قادم. لم أواجه نفس المشكلة (حتى الآن) مع Raspberry PI 3s والأجهزة الأعلى ، ولهذا السبب أيضًا أوصي بها في هذا البرنامج التعليمي.

على الرغم من أن الحركة الحالية على Raspberry PI 3 جيدة بما يكفي بالنسبة لي ، فإليك بعض الأفكار التي تستحق الاستكشاف:

  1. لا تستخدم الحركة ، ولكن استخدم دفقًا خشنًا عبر الشبكة ودع خادمًا قويًا يقوم باكتشاف الحركة وتشفير الفيديو (مثل iSpy). -> المشكلة: استغراق عرض النطاق الترددي المستمر للشبكة.
  2. استخدم الحركة ودع ffmpeg يقوم بترميز الفيديو. -> المشكلة: لا تستطيع وحدة المعالجة المركزية معالجة الدقة الأعلى
  3. استخدم الحركة وسجل فيديو خام واترك خادمًا قويًا يقوم بالتشفير. -> استخدام وحدة المعالجة المركزية على RPi منخفض ويقتصر النطاق الترددي للشبكة على حالة وجود حركة فعلية. بالنسبة لهذا السيناريو ، يمكننا الكتابة إلى بطاقة SD / ramdisk للحصول على أقصى إنتاجية ثم نسخ الفيديو إلى خادم آخر crontab.

أود أن أشير أيضًا إلى أن بناء هذا المشروع ممكن البناء بدون Arduino. يمكن توصيل جميع المكونات (المرحلات ، LDR ، PIR) بـ raspberry pi بطريقة ما ولكني أفضل المتحكمات الدقيقة في الوقت الفعلي للتفاعل مع المستشعرات وأجهزة الإخراج. في الحالات التي كان فيها raspberry pi معلقًا على سبيل المثال أو تحطم ، كان التحكم في الضوء الذي يديره Arduino يعمل بشكل جيد.

إذا كنت تحب هذه التعليمات ، فابقى على اطلاع حيث سأستمر في المسلسل باستخدام كاميرا Raspberry pi zero dome الخارجية بزاوية 360 درجة في العام المقبل.

موصى به: