विषयसूची:

रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार: 5 कदम (चित्रों के साथ)
रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार: 5 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार: 5 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार: 5 कदम (चित्रों के साथ)
वीडियो: raspberry pi 4 camera setup | raspberry pi 4 camera module install 2024, जुलाई
Anonim
रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार
रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार
रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार
रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार
रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार
रास्पबेरी पीआई कैमरा और लाइट कंट्रोल डेथ स्टार

हमेशा की तरह मैं ऐसे उपकरणों का निर्माण करना चाहता हूं जो उपयोगी हों, मजबूती से काम करें और अक्सर शेल्फ समाधानों से वर्तमान की तुलना में सुधार भी होते हैं।

यहाँ अभी तक एक और बेहतरीन प्रोजेक्ट है, जिसका नाम मूल रूप से शैडो 0f फीनिक्स है, जो Arduino आधारित मोशन डिटेक्शन और लाइट कंट्रोल के संयोजन के साथ एक रास्पबेरी PI शील्ड है।

चरण 1: वाणिज्यिक आईपी कैमरों की स्थिति

वाणिज्यिक आईपी कैमरों की स्थिति
वाणिज्यिक आईपी कैमरों की स्थिति
वाणिज्यिक आईपी कैमरों की स्थिति
वाणिज्यिक आईपी कैमरों की स्थिति
वाणिज्यिक आईपी कैमरों की स्थिति
वाणिज्यिक आईपी कैमरों की स्थिति

इसके अलावा अपना खुद का कैमरा/निगरानी प्रणाली बनाना अधिक अच्छा है आइए देखें कि यह शेल्फ समाधान से बाहर क्यों सुधार है।

मैं इसकी तुलना NEO COOLCAM फुल एचडी 1080P वायरलेस आईपी कैमरा सीरीज़ से करूँगा क्योंकि मेरे पास नियो कूलकैम (ONVIF) कैमरों के इन विभिन्न मॉडलों का बहुत स्वामित्व है। वे अलग-अलग आकार और आकार में आते हैं, बाहर और घर के अंदर, उनमें से अधिकांश ने वाईफाई समर्थन में बनाया है, लेकिन आइए उनकी चेतावनी देखें:

  • इन कैमरों को बेचने वाले चीनी निर्माता लगभग हमेशा अंतर्निहित छवि सेंसर रिज़ॉल्यूशन के बारे में झूठ बोलते हैं, जब आप eBay पर 5MP/8MP कैमरा खरीदते हैं तो आप खराब तस्वीर के साथ सस्ते 2MP कैमरा के साथ समाप्त हो सकते हैं (यह काम करता है लेकिन गुणवत्ता कचरा है)। जब आप मूल रिटेलर से 8MP का रास्पबेरी PI v2 कैमरा खरीदते हैं, तो आपको वह मिलेगा जो आपने भुगतान किया था और वास्तविक 8MP सेंसर रिज़ॉल्यूशन के साथ 3280 × 2464 पिक्सेल =>
  • सुरक्षा के दृष्टिकोण से ये कैमरे (यहां तक कि अधिक महंगे Dlink और अन्य मॉडल) भयानक हैं, वे डिफ़ॉल्ट पासवर्ड का उपयोग करते हैं जैसे कि 123456 या उपयोगकर्ताओं में निर्मित जैसे कि व्यवस्थापक/व्यवस्थापक ऑपरेटर/ऑपरेटर जिसे आप बदल भी नहीं पाएंगे या रीबूट के बाद परिवर्तन चला गया है। इन कैमरों में से कई फोन घर के साथ इसे बंद करें (चीन में अपने सर्वर से कनेक्ट करें, कुछ भी आपको बिना पूछे वीडियो/चित्रों को वापस स्ट्रीम करते हैं, अगर आप एक दिन अपने एंड्रॉइड/आईफोन ऐप को इंस्टॉल करने का निर्णय लेते हैं तो इसे आसान बनाने के लिए आपकी जांच करने के लिए घर)। यहां तक कि अगर आप इन उपकरणों को राउटर के पीछे रखते हैं तो यह काफी अच्छा नहीं है, सबसे अच्छा यह है कि यदि आप उनमें एक डिफ़ॉल्ट गेटवे सेट नहीं करते हैं, तो उन्हें फ़ायरवॉल से बाहर कर दें या उन्हें वीएलएएन में डाल दें ताकि उनके लिए बाहर जाना असंभव हो जाए। इंटरनेट या इससे भी बेहतर: उनका बिल्कुल भी उपयोग न करें।
  • क्या वे अधिक विश्वसनीय हैं? नहीं, उनमें से बहुत से अधिक महंगे डीलिंक्स के पास दैनिक/साप्ताहिक आदि में कैमरा रीबूट करने का विकल्प होता है। वह विकल्प एक कारण से है, क्योंकि एक्स दिनों के बाद वे अक्सर वाईफाई कनेक्टिविटी खो देते हैं या अन्य तरीकों से दुर्व्यवहार करते हैं। बस उन्हें अच्छे पुराने Win95 बॉक्स के रूप में सोचें जिन्हें अधिक बार रीबूट करने की आवश्यकता नहीं है:) मैं यह नहीं कहता कि रास्पी आधारित हार्डवेयर इतने ठोस हैं कि आप उन्हें परमाणु ऊर्जा संयंत्रों को नियंत्रित करने में सक्षम बना सकते हैं लेकिन उचित हार्डवेयर/सॉफ्टवेयर के साथ एसडीकार्ड पर कॉन्फ़िगरेशन, हीटसिंक, स्वचालित कूलिंग पंखे और न्यूनतम आरडब्ल्यू ऑपरेशन वे आसानी से बिना किसी समस्या के 100+ दिनों के अपटाइम को हिट कर सकते हैं। लिखने के समय मेरा डेथस्टार ३४ दिनों से चलता है, १०० से अधिक हो गया है, लेकिन कभी-कभी मैं बिजली स्रोत में फ़ीड पर हैकिंग कर रहा था जो मेरे कुछ अन्य सर्किटों को शक्ति प्रदान कर रहा है इसलिए इसे बंद करना पड़ा:(
  • लक्षित हार्डवेयर: वे 1 विशिष्ट उद्देश्य के लिए बने होते हैं, अक्सर एक छोटे से nvram क्षेत्र और बिजीबॉक्स के साथ आते हैं, लेकिन कुछ मॉडल इस शेल तक पहुंच को असंभव बना देते हैं, इसलिए आप उनका उपयोग केवल उसी के लिए कर सकते हैं, जिसका उपयोग आप कर सकते हैं, जबकि आप कर सकते हैं। अन्य कार्यों के लिए अपने रास्पि आधारित कैमरे का उपयोग करें: फ़ाइल सर्वर, tftp/dhcp सर्वर, वेब सर्वर, भूकंप सर्वर … विकल्प असीमित हैं।
  • भंडारण स्थान: उनके पास या तो कोई नहीं है या वे रास्पबेरी पीआईएस पर एफएटी 32 फाइल सिस्टम वीएस के साथ माइक्रोएसडी कार्ड का उपयोग करते हैं, यदि आप चाहें तो 2 टीबी हार्ड ड्राइव भी संलग्न कर सकते हैं।
  • रोशनी को नियंत्रित करना: कुछ में अलार्म आउटपुट होता है जहां आप रोशनी को चालू करने के लिए एक छोटे रिले को कनेक्ट करने में सक्षम हो सकते हैं। जैसा कि मैं आपको इस ट्यूटोरियल में दिखाऊंगा कि इन्फ्रारेड कैमरों का उपयोग करना समय की पूरी बर्बादी है क्योंकि आप खराब गुणवत्ता के कारण IR चित्रों पर किसी की पहचान नहीं कर पाएंगे। यदि आपको अंधेरे में वीडियो रिकॉर्ड करने की आवश्यकता है तो ऐसा करने का सबसे अच्छा तरीका है कि पहले कुछ प्रकाश चालू करें और फिर वीडियो रिकॉर्ड करें।

तो आप पूछ सकते हैं कि क्या कोई PRO बंद शेल्फ कैमरा का उपयोग करने का है? हां उन व्यवसायों के लिए जहां इसे स्थापित करने के लिए काम के घंटे रास्पबेरी पीआईएस के साथ छेड़छाड़ करने से अधिक महंगा होगा (वैसे भी मेरे लिए नहीं:)) और हां लाइन कैमरों के शीर्ष पर हैं (500$+ के पीआई कैमरे की तुलना में बेहतर रिज़ॉल्यूशन अवधि)। एक अन्य लाभ के रूप में मैं कह सकता हूं कि ओएनवीआईएफ मानक का पालन करने वाले कैमरों ने केंद्रीकृत प्रावधान को आसान बना दिया। यह एक मानक इंटरफ़ेस प्रदान करता है जिसका उपयोग कैमरे को आईपी/नेटवर्क मास्क/गेटवे और अन्य चीजों को सेट करने के लिए कमांड भेजने के लिए किया जा सकता है। इसके लिए आप सोर्सफोर्ज से ऑनविफ डिवाइस मैनेजर डाउनलोड कर सकते हैं। इनमें से बहुत से उपकरण भद्दे टूटे हुए वेब फ्रंटएंड के साथ आते हैं जहां उदाहरण के लिए यह आपको आईपी या नेटमास्क को सही ढंग से सेट करने की अनुमति नहीं देता है क्योंकि जावास्क्रिप्ट जो इन क्षेत्रों को मान्य करता है वह खराब है और इन मापदंडों को सही ढंग से सेट करने का आपका एकमात्र तरीका ओएनवीआईएफ है।

चरण 2: डेथ स्टार की योजनाएं

डेथ स्टार की योजनाएं
डेथ स्टार की योजनाएं
डेथ स्टार की योजनाएं
डेथ स्टार की योजनाएं
डेथ स्टार की योजनाएं
डेथ स्टार की योजनाएं

आप इस डिवाइस को 1 से 3B+ तक के किसी भी रास्पबेरी पीआई के साथ बना सकते हैं। यहां तक कि शून्य में भी कैमरा पोर्ट हैं, लेकिन चूंकि बाजार में बहुत सारे अलग-अलग सेकेंड हैंड रास्पिस हैं, इसलिए आप सोच रहे होंगे कि इस बिल्ड के लिए सबसे आदर्श कौन सा है।

उत्तर इस बात पर निर्भर करता है कि आप वीडियो स्ट्रीम को कहां संसाधित करना चाहते हैं।

दो विकल्प हैं:

1, गति के साथ वीडियो को स्थानीय रूप से संसाधित करें और गति का पता चलने पर एक वीडियो स्ट्रीम अग्रेषित करें (नोट: गति सर्वर पर धीमी स्थिर स्ट्रीम को आगे बढ़ाती है, इससे कोई फर्क नहीं पड़ता, यह आपके द्वारा उपयोग किए जाने वाले रिज़ॉल्यूशन और फ्रेम दर के आधार पर हो सकता है। एक दिन में सौ मेगाबाइट से कई गीगाबाइट, बस एक अनुस्मारक यदि आप एक मीटर्ड कनेक्शन पर सेटअप करना चाहते हैं)। यहां सीपीयू मायने रखता है और दुर्भाग्य से गति (लेखन के समय) कई कोर का लाभ नहीं उठाती है, हालांकि ओएस लोड को थोड़ा संतुलित करने का प्रयास करेगा। 100% उपयोग पर आपके पास हमेशा एक कोर होगा।

2, केंद्रीय सर्वर पर वीडियो संसाधित करें: यहां आप कैमरे से कच्चे वीडियो स्ट्रीम को बाहरी स्ट्रीमिंग सेवर (जैसे x86 कंप्यूटर पर चल रहे iSpy या किसी अन्य समर्पित मिनीकंप्यूटर पर चलने वाले MotionEyeOS) पर अग्रेषित करते हैं। चूंकि स्थानीय रूप से कोई प्रसंस्करण नहीं है, इसलिए आपके द्वारा उपयोग किए जाने वाले PI के मॉडल से कोई फर्क नहीं पड़ता, एक PI1 उसी स्ट्रीम को PI3B+ के रूप में भेजेगा।

इस ट्यूटोरियल में मैं पहली पसंद के साथ जाऊंगा।

यहां नियम यह है कि आप जितनी तेजी से सीपीयू को गति में फेंकेंगे, आपको उतने ही बेहतर परिणाम मिलेंगे। उदाहरण के लिए, मेरा रास्पी २ आधारित कैमरा कभी-कभी गलियारे को देख रहा होता है, जब कोई तेजी से चला जाता है और जब यह रिकॉर्डिंग कर रहा होता है तो रिकॉर्डिंग सुस्त होती है, मॉडल ३ की तुलना में बहुत सारे फ्रेम गिराते हैं। मॉडल ३ में भी 802.11 है। abgn वाईफाई जो उच्च गुणवत्ता वाले वीडियो को स्ट्रीम करने में सक्षम होने के लिए काम आता है, यह बॉक्स से बाहर काम करता है और यह काफी विश्वसनीय है। यह लिखते समय कि मॉडल 3B+ आ चुका है, मैं केवल अनुशंसा करता हूँ कि आप इसे 1.4 Ghz क्वाड कोर सीपीयू के साथ प्राप्त करें।

सामग्री की सूची

  • 30 सेमी प्लास्टिक डेथस्टार:)
  • रास्पबेरी पाई 3 बी+
  • पिकैम v2 (8MP)
  • Arduino प्रो माइक्रो 5.5v
  • 2x SIP-1A05 रीड स्विच रिले
  • 1x PCS HC-SR501 IR पाइरोइलेक्ट्रिक इन्फ्रारेड IR PIR मोशन सेंसर डिटेक्टर मॉड्यूल
  • LDR. के लिए 1x 10kohm रोकनेवाला
  • 1x एलडीआर
  • 1x12V 4A डीसी एडाप्टर
  • 1xWarm व्हाइट एलईडी 5050 SMD फ्लेक्सिबल लाइट लैंप स्ट्रिप 12V DC
  • 1xबक वोल्टेज नियामक

जैसा कि आप इसे योजनाबद्ध पर देख सकते हैं, इस परियोजना को मूल रूप से एक रिले के साथ एक एकल प्रकाश को नियंत्रित करने के लिए डिज़ाइन किया गया था क्योंकि मैंने आंतरिक प्रकाश व्यवस्था (जो काफी शांत है) को जोड़ने की योजना नहीं बनाई थी, इसलिए मैंने सिर्फ Arduino के लिए एक दूसरे रिले को हार्डवेअर किया। SIP-1A05 के बारे में सबसे अच्छी बात यह है कि इसमें आंतरिक फ्लाईबैक डायोड है और mA में खपत Arduino की प्रति पिन शक्ति सीमा के तहत है।

तस्वीरों पर पीर ढाल पर होने का कारण यह है कि शुरुआत में S0P को डेथस्टार के बजाय एक साधारण आईपी प्लास्टिक बॉक्स में डालने की योजना थी। जैसा कि आप अनुमान लगा सकते हैं कि कैमरा सीधे लेजर गन में है, पीआईआर और एलडीआर को एक और ड्रिल किए गए छेद की जरूरत है और वे गोंद-बंदूक हैं क्योंकि मैं उन्हें हटाने की योजना नहीं बना रहा हूं।

डेथस्टार के तल पर एक छेद ड्रिल किया गया था जहां मैंने एक बड़े बोल्ट में एक मजबूत 2 घटक गोंद के साथ चिपकाया था। इसे मूल नियो कूलकैम स्टैंड में खराब किया जा सकता है (यह सब के बाद कुछ के लिए अच्छा था:))। एक अतिरिक्त समर्थन के लिए मैं तांबे के कड़े तारों का उपयोग करके तारे के शीर्ष पर पकड़ बना सकता हूं।

बिजली की आपूर्ति के बारे में महत्वपूर्ण नोट: चूंकि एक ही आपूर्ति पीआई, अरुडिनो और एलईडी पट्टी दोनों को शक्ति प्रदान करेगी, इसलिए उन सभी को संभालने में सक्षम होने के लिए पर्याप्त रूप से गोमांस होना चाहिए, इसलिए यह परियोजना के लिए आपके द्वारा चुनी गई एलईडी पट्टी पर आधारित होगा। एक कमर्शियल ५०५० १२वी ३ मीटर एलईडी स्ट्रिप २ए के आसपास निकलती है, यह बहुत है। PI और Arduino के लिए आपको +2A में गणना करनी होगी (हालाँकि यह ओवरसाइज़ कर रहा है इससे कोई नुकसान नहीं होगा)। मानक हलोजन बल्ब, नियॉन या अन्य उच्च शक्ति प्रकाश पर एलईडी पट्टी का उपयोग करना यह है कि आप इस पूरे सर्किट को बैकअप के रूप में एक अच्छी 12V@10Ah लीड एसिड बैटरी पर रख सकते हैं, इसलिए यह पावर आउटेज के मामले में भी काम करेगा।

Arduino और PI को पावर देने के लिए हिरन 12-> 5V से वोल्टेज को नीचे ले जाएगा, जबकि LED स्ट्रिप को चालू करने के लिए रिले पर डायरेक्ट 12V फीड को वायर किया जाता है।

चरण 3: सॉफ्टवेयर Arduino

सॉफ्टवेयर Arduino
सॉफ्टवेयर Arduino

आप नीचे पूर्ण स्रोत कोड पा सकते हैं, जिस पर अच्छी तरह से टिप्पणी की गई है, लेकिन यहां एक संक्षिप्त विवरण दिया गया है कि यह कैसे काम करता है: प्रत्येक लूप की शुरुआत में सामान्य xcomm () फ़ंक्शन को यह देखने के लिए कहा जाता है कि क्या रास्पबेरी पीआई से कोई कमांड आता है जो कि डेथस्टार बैकलाइट को चालू/बंद करने के लिए कॉरिडोर लाइट को चालू या DS_ON/बंद करने के लिए LIGHT_ON/OFF हो सकता है, मैंने इन्हें केवल पूर्णता के लिए लागू किया है क्योंकि अगर कोई पीआईआर से गुजरता है तो उसे उठाकर चालू करना चाहिए रोशनी लेकिन हो सकता है कि आप किसी कारण से उस जगह को देखना चाहते हों, तब भी जब कोई न हो।

इसके बाद फोटोकेल वैल्यू को रीड इन किया जाता है और मोशन पिन को मोशन के लिए चेक किया जाता है। यदि गति है तो कोड जांचता है कि क्या यह पर्याप्त अंधेरा है तो यह जांचता है कि क्या हम होल्ड पर नहीं हैं। यदि यह सब बीत जाता है तो यह कॉरिडोर की रोशनी को चालू कर देता है और रास्पबेरी पीआई को PHOENIX_MOTION_DETECTED वापस भेजता है, अगर यह पर्याप्त अंधेरा नहीं है तो यह अभी भी कंप्यूटर पर वापस सिग्नल करता है लेकिन प्रकाश चालू नहीं करता है। एक बार गति का पता चलने पर 5 मिनट का होल्ड टाइमर चालू हो जाता है।

इसके ठीक बाद अगला कोड अनुभाग यह देखने के लिए जांच करेगा कि क्या हम होल्ड पर हैं (जो कि केवल एक गति घटना होने पर मामला होना चाहिए, तो मान लें कि 5 मिनट बीत चुके हैं ताकि यह चेक पुष्टि कर सके)। कोड यह देखने के लिए जांचता है कि क्या फिर से गति है, यदि नहीं तो लाइट बंद कर दें। जैसा कि आप देख सकते हैं कि अगर कोई गति नहीं है तो यह फ़ंक्शन बार-बार खुद को दोहराएगा और बार-बार लाइट बंद करने की कोशिश करता रहेगा ताकि पीसी पर कोई प्रतिक्रिया न हो।

डेथस्टार की आंतरिक रोशनी के लिए हमारे पास एक और होल्ड टाइमर है जो पूरी तरह से photocellReading <dark_limit पर निर्भर करता है।

हालांकि दोनों रूटीन एक-दूसरे के बारे में नहीं जानते हैं, वे पूरी तरह से एक साथ काम करेंगे क्योंकि जब कॉरिडोर की रोशनी चालू होती है तो यह इतनी रोशनी प्रदान करती है कि एलडीआर सोचेगा कि यह फिर से दिन है और यह आंतरिक प्रकाश व्यवस्था को बंद कर देता है। हालाँकि इस प्रक्रिया के बारे में कुछ चेतावनी थी जो कोड में बताई गई है यदि आप रुचि रखते हैं, यदि नहीं तो एनवीडिया का उत्तर लें कि "यह सिर्फ काम करता है!"।

चरण 4: सॉफ्टवेयर रास्पबेरी पीआई

सॉफ्टवेयर रास्पबेरी पीआई
सॉफ्टवेयर रास्पबेरी पीआई
सॉफ्टवेयर रास्पबेरी पीआई
सॉफ्टवेयर रास्पबेरी पीआई
सॉफ्टवेयर रास्पबेरी पीआई
सॉफ्टवेयर रास्पबेरी पीआई

नवीनतम रास्पियन मेरे लिए काम करता है:

रास्पियन जीएनयू/लिनक्स 9.4 (खिंचाव)

Linux फीनिक्स 4.9.35-v7+ #1014 SMP शुक्र जून 30 14:47:43 BST 2017 armv7l GNU/Linux ii गति 4.0-1 armhf V4L कैप्चर प्रोग्राम जो मोशन डिटेक्शन को सपोर्ट करता है

जबकि आप अन्य डिस्ट्रो का उपयोग कर सकते हैं, यदि आप कैमरे के साथ किसी भी समस्या का सामना करते हैं, तो आपको टीम से केवल तभी समर्थन मिलेगा जब आप उनके आधिकारिक ओएस का उपयोग कर रहे हों। सिस्टमड जैसे अवांछित ब्लोटवेयर को हटाने की भी अत्यधिक अनुशंसा की जाती है।

गति को स्रोत से भी आसानी से बनाया जा सकता है:

apt-get -y autoconf ऑटोमेक स्थापित करें pkgconf libtool libjpeg8-dev बिल्ड-आवश्यक libzip-dev apt-get libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev इंस्टॉल करें

apt-get -y libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev apt-get -y install git क्लोन https://github.com/Motion-Project/motion cd Motion/ autoreconf -fiv इंस्टॉल करें। /configure --prefix=/usr/motion make && make install /usr/motion/bin/motion -v

मैं iSpy को वीडियो रिकॉर्डर/कलेक्टर सर्वर के रूप में अनुशंसा करता हूं। दुर्भाग्य से लेखन के समय लिनक्स के लिए कोई अच्छा विकल्प नहीं है। कैमरे को MJPEG url https://CAMERA_IP:8081 डिफ़ॉल्ट पोर्ट के साथ जोड़ा जा सकता है।

गति प्रसंस्करण उपयोगी हो सकता है उदाहरण के लिए आपको दिन भर अपने iSpy सर्वर को देखते रहने की आवश्यकता नहीं है, गति के मामले में आप एक ईमेल प्राप्त कर सकते हैं। हालाँकि iSpy में गति के मामले में ईमेल में अलर्ट करने की यह कार्यक्षमता है, लेकिन यह एक बार में विविध घटनाओं के लिए रिकॉर्डिंग चालू कर देता है जैसे कि कुछ प्रकाश क्षेत्र में परिलक्षित होता है। पीर मोशन डिटेक्शन के साथ मेरे पास कभी एक भी झूठा अलार्म नहीं था। अलर्ट स्थानीय रूप से संसाधित किए जा सकते हैं:

सेंसर पर पीर मोशन इवेंट का पता चला> Arduino अलर्ट> रास्पबेरी पाई कंसोल पर प्राप्त होता है> C प्रोसेसिंग प्रोग्राम> बाहरी मेल एप्लिकेशन

हालांकि मैं लॉग और वीडियो दोनों को दूरस्थ रूप से संसाधित करना पसंद करता हूं, इसलिए इस मामले में मैंने सी नियंत्रण कार्यक्रम में एक अनुभाग जोड़ा है, जबकि यह स्थानीय रूप से एक सादे पाठ फ़ाइल में लॉग लॉग करता है, इसे syslog में भी लॉग करता है और इसे एक सिएम में अग्रेषित किया जाता है आगे की प्रक्रिया।

शून्य लकड़हारा (चार * पाठ) {

फ़ाइल * एफ = फॉपेन ("फीनिक्स.लॉग", "ए"); अगर (f == NULL) { प्रिंटफ ("लॉग फाइल खोलने में त्रुटि! / n"); वापसी; } fprintf(f, "%s => %s\n", cur_time(0), text); एफक्लोज (एफ); #ifdef SYSLOG चार लॉगी [500]; स्प्रिंटफ (लॉगी, "% s =>% s / n", cur_time (0), पाठ); सेटलॉगमास्क (LOG_UPTO (LOG_NOTICE)); ओपनलॉग ("डेथस्टार", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_USER); // syslog (LOG_NOTICE, "उपयोगकर्ता% d द्वारा शुरू किया गया प्रोग्राम", getuid ()); syslog (LOG_NOTICE, लॉगी); क्लोजलॉग (); #endif वापसी; }

प्राप्त करने के अंत में syslog-ng इन घटनाओं को मुख्य लॉग स्ट्रीम से हटा सकता है:

फ़िल्टर f_phx{

मैच ("डेथस्टार"); }; गंतव्य d_phx {फ़ाइल ("/ var/log/phoenix/deathstar.log"); }; लॉग {स्रोत (s_net); फ़िल्टर (f_phx); गंतव्य (d_phx); };

और इसे विश्लेषण और चेतावनी के लिए किसी अन्य टूल (मोशन.php संलग्न देखें) को पास किया जा सकता है।

इस स्क्रिप्ट में आप सप्ताह के दौरान सामान्य समय निर्धारित कर सकते हैं जब आप घर पर नहीं होते हैं:

$ऑप्ट['अलर्ट_आफ्टर']='09: 00:00'; // मॉर्निंग $ ऑप्ट ['अलर्ट_बिफोर'] = '17: 00: 00'; // शाम

PHP प्रोग्राम लॉग को पार्स करने के लिए उत्कृष्ट लॉगटेल उपयोगिता का उपयोग करता है।

$cmd = "लॉगटेल -o"।$offsetfile।' '.$logfile.'>'.$logfile2;

लॉगटेल एक ऑफसेट फ़ाइल में स्थिति को ट्रैक करता है, इसलिए मुख्य कार्यक्रम को यह जानने की जरूरत नहीं है कि किस समय से लॉग को देखना शुरू करना है, इसे नवीनतम असंसाधित डेटा प्रदान किया जाएगा।

Motion.php को क्रॉस्टैब से सप्ताहांत के लिए एक छोटी सी चाल के साथ चलाया जा सकता है, जब यह लॉग के माध्यम से जाएगा, लेकिन आगे की प्रक्रिया नहीं करेगा।

*/5 * * * 1-5 /usr/local/bin/php ~/motion.php &>/dev/null*/5 * * * 6-7 /usr/local/bin/php ~/motion.php सप्ताहांत और>/dev/null

चरण 5: मुद्दे और कार्य सूची

मुद्दे और कार्य सूची
मुद्दे और कार्य सूची
मुद्दे और कार्य सूची
मुद्दे और कार्य सूची

यदि आप रास्पबेरी पाई 3 या नए का उपयोग कर रहे हैं तो आप इस अनुभाग को छोड़ सकते हैं, आप सबसे अधिक संभावना है कि आप इन समस्याओं में नहीं चलेंगे।

वर्षों के दौरान मेरे पास रास्पबेरी पीआई 2 आधारित बोर्डों के साथ कुछ मुद्दे थे जो एक ही सॉफ्टवेयर स्टैक चला सकते थे लेकिन अलग-अलग स्थानों से अलग-अलग समय पर खरीदे गए थे। एक निश्चित अवधि के बाद जो 2 दिन या 20 दिन हो सकता है जब एसएसएच डिवाइस पर एसएसएच बस लटका होगा, इसलिए गति डेमॉन और स्थानीय सी कोड जो Arduino से बात करते थे, दोनों को रैम में लोड किया गया था इसलिए डिवाइस काम कर रहा था लेकिन इस राज्य में अब इसके साथ कुछ और करना असंभव था।

बहुत सारी समस्या निवारण के बाद मैं एक समाधान लेकर आया हूँ:

Homesync.sh

#!/बिन/श -ई

### आरंभ जानकारी # प्रदान करता है: होमसिंक # आवश्यक-प्रारंभ: माउंटकर्नफ्स $local_fs # आवश्यक-स्टॉप: कैमरा फीनिक्स # डिफ़ॉल्ट-प्रारंभ: एस # डिफ़ॉल्ट-स्टॉप: 0 6 # लघु-विवरण: होम सिंक्रोनाइज़र # विवरण: होम सिंक्रोनाइज़र एनएलडी द्वारा ### END INIT INFO NAME=home DESC="Ramdisk Home Synchronizer" RAM="/home/" DISK="/realhome/" set -e case "$1" in start|forth) echo -n "शुरुआती $ विवरण: "rsync -az --numeric-ids --delete $DISK $RAM &> /dev/null echo "$NAME.";; स्टॉप|बैक) इको-एन "स्टॉपिंग $DESC:" rsync -az --numeric-ids --delete $RAM $DISK &> /dev/null echo "$NAME।";; *) गूंज "उपयोग: $0 {शुरू|रोकें}" बाहर निकलें 1;; esac बाहर निकलें 0

स्क्रिप्ट fstab संशोधन के साथ चलती है:

tmpfs /home tmpfs rw, size=८०%, nosuid, nodev 0 0

होम पार्टीशन को रैमडिस्क के रूप में माउंट किया गया है जो रास्पबेरी पाई 2 पर लगभग 600MB खाली स्थान देगा जो कुछ बायनेरिज़ और छोटी लॉग फ़ाइलों को संग्रहीत करने के लिए पर्याप्त से अधिक है:

tmpfs 690M 8.6M 682M 2% /होम

यह पता चला कि पीआई हैंग को एसडीकार्ड पर लिखने के संचालन के लिए जिम्मेदार ठहराया गया था, हालांकि मैंने अलग-अलग कार्ड (सैमसंग ईवीओ, सैंडिस्क) की कोशिश की है, जो पहले और बाद में कई बार त्रुटियों के लिए स्कैन किए गए थे और उन्हें अन्य लैपटॉप में कोई समस्या नहीं थी। आ रहा है। मेरे पास रास्पबेरी पीआई 3 एस और उच्च हार्डवेयर के साथ एक ही मुद्दा (अभी तक) नहीं था, इसलिए मैं उन्हें इस ट्यूटोरियल में अनुशंसा करता हूं।

हालांकि रास्पबेरी पीआई 3 पर वर्तमान गति मेरे लिए काफी अच्छी है, यहां कुछ विचार तलाशने लायक हैं:

  1. गति का उपयोग न करें, लेकिन नेटवर्क पर एक तेज धारा का उपयोग करें और एक शक्तिशाली सर्वर को गति का पता लगाने और वीडियो एन्कोडिंग (जैसे iSpy) करने दें। -> समस्या: निरंतर नेटवर्क बैंडविड्थ हॉगिंग।
  2. गति का प्रयोग करें और ffmpeg को वीडियो एन्कोडिंग करने दें। -> समस्या: सीपीयू उच्च संकल्पों को संभाल नहीं सकता
  3. गति का उपयोग करें, कच्चा वीडियो रिकॉर्ड करें और एक शक्तिशाली सर्वर को एन्कोडिंग करने दें। -> आरपीआई पर सीपीयू का उपयोग कम है और वास्तविक गति होने पर नेटवर्क बैंडविड्थ सीमित है। इस परिदृश्य के लिए हम अधिकतम थ्रूपुट के लिए एसडी-कार्ड/रैमडिस्क को लिख सकते हैं और फिर वीडियो को किसी अन्य सर्वर पर कॉपी कर सकते हैं।

मैं यह भी नोट करूंगा कि इस परियोजना का निर्माण बिना Arduino के बनाना संभव है। सभी घटकों (रिले, एलडीआर, पीआईआर) को किसी तरह रास्पबेरी पाई से जोड़ा जा सकता है लेकिन मैं सेंसर और आउटपुट डिवाइस के साथ बातचीत करने के लिए रीयल टाइम माइक्रोकंट्रोलर पसंद करता हूं। उन मामलों में जहां मेरी रास्पबेरी पाई उदाहरण के लिए लटक रही थी या दुर्घटनाग्रस्त हो गई थी, Arduino द्वारा चलाए गए प्रकाश नियंत्रण ने ठीक काम किया।

अगर आपको यह निर्देश योग्य पसंद आया तो देखते रहिए क्योंकि मैं अगले साल अपने 360 डिग्री आउटडोर रास्पबेरी पाई जीरो डोम कैमरा के साथ श्रृंखला जारी रखूंगा।

सिफारिश की: