विषयसूची:

रास्पबेरी पाई के साथ एक रेफ्रिजरेटर के लिए चेहरे की पहचान सुरक्षा प्रणाली: 7 कदम (चित्रों के साथ)
रास्पबेरी पाई के साथ एक रेफ्रिजरेटर के लिए चेहरे की पहचान सुरक्षा प्रणाली: 7 कदम (चित्रों के साथ)
Anonim
Image
Image
रास्पबेरी पाई के साथ एक रेफ्रिजरेटर के लिए चेहरे की पहचान सुरक्षा प्रणाली
रास्पबेरी पाई के साथ एक रेफ्रिजरेटर के लिए चेहरे की पहचान सुरक्षा प्रणाली
रास्पबेरी पाई के साथ एक रेफ्रिजरेटर के लिए चेहरे की पहचान सुरक्षा प्रणाली
रास्पबेरी पाई के साथ एक रेफ्रिजरेटर के लिए चेहरे की पहचान सुरक्षा प्रणाली

इंटरनेट ब्राउज़ करने पर मैंने पाया है कि सुरक्षा प्रणालियों की कीमतें 150$ से 600$ और अधिक तक भिन्न होती हैं, लेकिन सभी समाधान (यहां तक कि बहुत महंगे वाले भी) को आपके घर पर अन्य स्मार्ट उपकरणों के साथ एकीकृत नहीं किया जा सकता है! उदाहरण के लिए, आप अपने सामने के दरवाजे पर एक सुरक्षा कैमरा स्थापित नहीं कर सकते हैं, इसलिए यह स्वचालित रूप से आपके या आपके दोस्तों के लिए दरवाजा खोल देता है!

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

यह कैसे काम करता है? एक रेफ्रिजरेटर के शीर्ष पर रखा गया आईपी कैमरा, सेंसर (दो बटन) का पता लगाता है जब कोई व्यक्ति रेफ्रिजरेटर का दरवाजा खोलता है, उसके बाद रास्पबेरी पाई उस व्यक्ति की तस्वीर (आईपी कैमरा के साथ) लेता है, फिर उसे माइक्रोसॉफ्ट फेस एपीआई को भेजता है छवि का विश्लेषण करने और व्यक्ति का नाम प्राप्त करने के लिए। इस जानकारी के साथ रास्पबेरी पाई "एक्सेस लिस्ट" को स्कैन करती है: यदि व्यक्ति के पास रेफ्रिजरेटर तक पहुंचने की अनुमति नहीं है, तो रास्पबेरी ईमेल, टेक्स्ट संदेश और ट्विटर के माध्यम से मालिक को सूचित करता है! (ऊपर चित्र देखें)

क्यों? सिस्टम आपको अपने परिवार के सदस्यों को नियंत्रित करने की अनुमति देता है, खासकर जब वे आहार पर होते हैं, या आधी रात के बाद नहीं खाने के लिए संघर्ष करते हैं! या सिर्फ मनोरंजन के लिए इसका इस्तेमाल करें!

इसके अलावा, आप वास्तव में अपने सामने के दरवाजे पर कैमरा स्थापित कर सकते हैं और जब आप, आपके परिवार के सदस्य या मित्र आ रहे हों तो दरवाजा खोलने के लिए सिस्टम को कॉन्फ़िगर कर सकते हैं। और यह अंत नहीं है! आवेदन की संभावनाएं अनंत हैं!

चलो शुरू करें!

चरण 1: तैयारी

तैयारी
तैयारी

आपको चाहिये होगा:

  • रास्पबेरी पाई 3 (आप पुराने संस्करणों का उपयोग कर सकते हैं, लेकिन तीसरी पीढ़ी में वाई-फाई है, इसलिए यह बहुत सुविधाजनक है)
  • बटन
  • तारों
  • पुराना स्मार्टफोन या रास्पबेरी पाई कैमरा

सबसे पहले आपको अपने रास्पबेरी पाई को कॉन्फ़िगर करना है। यह कैसे करना है, इस पर विस्तृत निर्देश आप यहां और यहां पा सकते हैं, लेकिन हम इस मैनुअल में सबसे महत्वपूर्ण चरणों को शामिल करेंगे।

  1. Win32 DiskImager यहाँ से डाउनलोड करें (यदि आप Windows का उपयोग करते हैं)
  2. एसडी फॉर्मेटर को यहां से डाउनलोड करें
  3. अपने कंप्यूटर में एसडी कार्ड डालें और इसे एसडी फॉर्मेटर के साथ प्रारूपित करें
  4. यहां से रास्पियन छवि डाउनलोड करें ("पिक्सेल के साथ रास्पियन जेसी चुनें")
  5. Win32 DiskImager चलाएँ, अपना SD कार्ड चुनें, रास्पियन छवि के लिए पथ निर्दिष्ट करें, "लिखें" पर क्लिक करें
  6. अपने रास्पबेरी पाई में एसडी कार्ड डालें और बिजली चालू करें!

इसके अतिरिक्त, आपको SSH के माध्यम से सिस्टम तक पहुंच प्राप्त करने के लिए अपने रास्पबेरी पाई को कॉन्फ़िगर करने की आवश्यकता होगी। इंटरनेट में बहुत सारे निर्देश हैं, आप इसका उपयोग कर सकते हैं, उदाहरण के लिए, या आप मॉनिटर और कीबोर्ड संलग्न कर सकते हैं।

अब आपका पाई कॉन्फ़िगर हो गया है और आप आगे बढ़ने के लिए तैयार हैं!

चरण 2: एक सेंसर बनाना

सेंसर बनाना
सेंसर बनाना
सेंसर बनाना
सेंसर बनाना
सेंसर बनाना
सेंसर बनाना

चरण विवरण: इस चरण में हम एक सेंसर बनाएंगे जो यह पता लगाएगा कि कोई व्यक्ति रेफ्रिजरेटर का दरवाजा कब खोलता है और रास्पबेरी पाई को सक्रिय करता है।

इसे सेट करने के लिए आपको उन 2 बटनों की आवश्यकता होगी जिन्हें आपने मूल रूप से तैयार किया है। पहला बटन यह पता लगाएगा कि दरवाजा कब खोला गया है, दूसरा बटन यह पता लगाएगा कि दरवाजा कब खोला गया है जब हम किसी व्यक्ति की तस्वीर ले रहे हैं।

  1. बटन को मिलाप तार।
  2. रेफ्रिजरेटर के दरवाजे के लिए पहला बटन संलग्न करें ताकि दरवाजा बंद होने पर इसे धक्का दिया जाए (ऊपर चित्र देखें)
  3. रेफ्रिजरेटर के दरवाजे पर दूसरा बटन संलग्न करें जैसा कि ऊपर की तस्वीर में दिखाया गया है। इस बटन को हर समय जारी करना पड़ता है, सिवाय इसके कि जब सिस्टम उस बिंदु पर पहुंच जाए जब सिस्टम एक तस्वीर लेता है। इसे सेट करने के लिए आपको अपने रेफ्रिजरेटर में कुछ संलग्न करने की आवश्यकता है ताकि वांछित सीमा तक दरवाजा खोले जाने पर यह बटन दबाया जाए (ऊपर फोटो देखें)।
  4. रास्पबेरी पाई के लिए बटन से तार संलग्न करें: पहला बटन GPIO 23 और ग्राउंड, दूसरा बटन GPIO 24 और ग्राउंड (फ्रिटिंग आरेख देखें)।

नोट: मैं बीसीएम पिनआउट (बोर्ड नहीं) का उपयोग करता हूं, यहां पढ़े गए अंतर पर अधिक।

एक बार SSH के माध्यम से अपने रास्पबेरी पाई से कनेक्ट होने के बाद, अजगर शेल को चलाने के लिए, टर्मिनल में टाइप करें:

अजगर3

यदि आप रास्पबेरी पाई में मॉनिटर और कीबोर्ड संलग्न कर रहे हैं तो मेनू से "पायथन 3 आईडीएलई" चलाएं।

अगला कदम रास्पबेरी पाई को बटनों के साथ काम करना है। हम विशेष श्रोताओं को GPIO 23 और 24 पिनों से जोड़ेंगे, जो उन पिनों पर "राइजिंग एज" इवेंट और "फॉलिंग एज" इवेंट को सुनेंगे। घटना के मामले में श्रोता उन कार्यों को बुलाएंगे जिन्हें हमने परिभाषित किया है। "राइजिंग एज" का अर्थ है कि बटन दबाया गया और अब छोड़ा गया (पहला बटन - दरवाजा खुला है), "फॉलिंग एज" का अर्थ है कि बटन छोड़ा गया और अब दबाया गया (दूसरा बटन - दरवाजा विशिष्ट बिंदु पर पहुंच गया है)। बटन कार्यक्षमता पर अधिक - यहाँ।

सबसे पहले, आयात पुस्तकालय जो हमें पिन तक पहुंच प्रदान करता है:

RPI. GPIO को GPIO के रूप में आयात करें

अब विशेष कार्यों को परिभाषित करें जिन्हें ईवेंट ट्रिगर होने पर बुलाया जाएगा:

def sensor1 (चैनल): प्रिंट ("सेंसर 1 ट्रिगर") def sensor2 (चैनल): प्रिंट ("सेंसर 2 ट्रिगर)

पिनआउट प्रकार सेट करें:

GPIO.सेटमोड (GPIO. BCM)

पिन कॉन्फ़िगर करें:

GPIO.setup(23, GPIO. IN, pull_up_down=GPIO. PUD_UP)GPIO.setup(24, GPIO. IN, pull_up_down=GPIO. PUD_UP)

श्रोताओं को संलग्न करें:

GPIO.add_event_detect(23, GPIO. RISING, कॉलबैक = सेंसर 1, बाउंसटाइम = 300) GPIO.add_event_detect(24, GPIO. FALLING, कॉलबैक = सेंसर 2, बाउंसटाइम = 300)

अब आप इसका परीक्षण कर सकते हैं! यदि आप बटन 1 दबाते हैं तो आपको टर्मिनल "सेंसर 1 ट्रिगर" में एक संदेश दिखाई देगा, बटन 2 आपको "सेंसर 2 ट्रिगर" संदेश देता है।

नोट: जब आप प्रयोग कर लें तो निम्न फ़ंक्शन को कॉल करना न भूलें: GPIO.cleanup()।

आइए एक और फ़ंक्शन सेट करें जिसे कहा जाता है जब दरवाजा उस बिंदु पर पहुंचता है जहां हम एक फोटो लेते हैं! आप इसे स्वयं कर सकते हैं या मेरे कार्यान्वयन का उपयोग कर सकते हैं जो मैंने यहां संलग्न किया है (sensor.py)

नोट: sensor.py का उपयोग केवल परीक्षण उद्देश्यों के लिए किया जाता है, पूर्ण कार्यक्षमता वाली फाइलें जिन्हें मैंने अंतिम चरण में संलग्न किया है।

चरण 3: आईपी कैमरा कॉन्फ़िगर करें

आईपी कैमरा कॉन्फ़िगर करें
आईपी कैमरा कॉन्फ़िगर करें
आईपी कैमरा कॉन्फ़िगर करें
आईपी कैमरा कॉन्फ़िगर करें
आईपी कैमरा कॉन्फ़िगर करें
आईपी कैमरा कॉन्फ़िगर करें

चरण विवरण: अब हम पुराने स्मार्टफोन को आईपी कैमरा के रूप में कॉन्फ़िगर करने जा रहे हैं।

स्मार्टफोन का उपयोग आईपी कैमरा के रूप में ऐप के माध्यम से किया जाता है। एंड्रॉइड, आईओएस, विंडोज फोन के लिए अलग-अलग ऐप हैं जिनका आप उपयोग कर सकते हैं। मैंने Android के लिए "IP Webcam" नामक एक को चुना। यह एक फ्री ऐप है और इसे कॉन्फिगर करना आसान है।

ऐप चलाएँ, फ़ोटो का रिज़ॉल्यूशन सेट करने के लिए "वीडियो प्राथमिकताएँ" पर जाएँ जो ऐप प्रदान करेगा। फिर "सर्वर प्रारंभ करें" (उपरोक्त पहली छवि) पर टैप करें। स्क्रीन के नीचे आपको कैम का आईपी एड्रेस देखना होगा (ऊपर दूसरी इमेज देखें)। ब्राउज़र में आप https://cam_ip_address/photo-j.webp

अंत में, कैमरे को रेफ़्रिजरेटर से जोड़ दें (ऊपर की अंतिम छवि)।

चरण 4: फेस एपीआई

फेस एपीआई
फेस एपीआई

स्टेप डिस्क्रिप्शन: इस स्टेप में हम माइक्रोसॉफ्ट के फेस एपीआई के बारे में बात करेंगे जो चेहरे की पहचान करता है और लोगों की पहचान करता है।

माइक्रोसॉफ्ट की फेस एपीआई एक फेस रिकग्निशन सर्विस है, जिसके जरिए हम तस्वीरों का विश्लेषण कर सकते हैं और उन पर लोगों की पहचान कर सकते हैं।

सबसे पहले, आपको Microsoft Azure खाते की आवश्यकता है। यदि आपके पास एक नहीं है तो आप इसे यहां मुफ्त में बना सकते हैं।

दूसरा, https://portal.azure.com पर जाएं, बाईं ओर "नया" पर क्लिक करें, "कॉग्निटिव सर्विसेज एपीआई" फॉर्म में टाइप करें, इसे चुनें और "क्रिएट" पर क्लिक करें। या आप इस लिंक को खोल सकते हैं। अब आपको अपनी सेवा का नाम दर्ज करना होगा, सदस्यता का प्रकार चुनें, एपीआई का प्रकार जो आपको चाहिए (हमारे मामले में यह फेस एपीआई है), स्थान, मूल्य निर्धारण स्तर, संसाधन समूह और कानूनी शर्तों से सहमत हों (इस चरण में जोड़ा गया स्क्रीनशॉट देखें)।

तीसरा, "सभी संसाधन" पर क्लिक करें, आप फेस एपीआई सेवा का चयन करें और उपयोग के आंकड़े, क्रेडेंशियल आदि देखें।

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

आइए फेस एपीआई के साथ काम की संरचना पर चलते हैं। "पहचान" कार्यक्षमता का उपयोग करने के लिए हमें लोगों की एक लाइब्रेरी बनानी होगी, जिसका उपयोग करके फेस एपीआई सेवा उन तस्वीरों को पहचान लेगी जो ऐप द्वारा ली जा रही हैं। इसे सेट करने के लिए, कृपया चरणों का पालन करें:

  1. एक समूह बनाएं
  2. इस समूह में व्यक्तियों को जोड़ें
  3. इन लोगों में चेहरे जोड़ें
  4. ट्रेन समूह
  5. उस व्यक्ति के साथ फोटो जमा करें जिसे आप पहचानना चाहते हैं (आपको फोटो और समूह आईडी प्रदान करनी होगी जिसमें सेवा उम्मीदवारों की तलाश करेगी)
  6. परिणाम: जवाब में आपको उन उम्मीदवारों की एक सूची मिलेगी जो आपके द्वारा सबमिट किए गए फोटो पर हो सकते हैं।

मैंने विशिष्ट कार्यक्षमता वाली तीन फाइलें बनाई हैं जो समूहों, एकल व्यक्तियों और एकल तस्वीरों के साथ काम करने की अनुमति देती हैं:

  • PersonGroup.py - इसमें ऐसी विशेषताएं हैं जो अनुमति देती हैं: समूह बनाएं, समूह के बारे में जानकारी प्राप्त करें, अपने सभी समूहों की सूची प्राप्त करें, समूह को प्रशिक्षित करें और प्रशिक्षण की स्थिति प्राप्त करें
  • Person.py - इसमें ऐसी विशेषताएं हैं जो अनुमति देती हैं: व्यक्ति बनाएं, व्यक्ति की जानकारी प्राप्त करें, निर्दिष्ट समूह में सभी व्यक्तियों की सूची बनाएं, निर्दिष्ट व्यक्ति में चेहरे जोड़ें
  • Face.py - इसमें ऐसी विशेषताएं हैं जो अनुमति देती हैं: छवि पर चेहरे का पता लगाएं, व्यक्ति की पहचान करें, पहचाने गए व्यक्ति का नाम प्राप्त करें

"Recognition.py" नामक फ़ाइल में मैं ऐसी सुविधाएं प्रदान करता हूं जो आपको यह जांचने की अनुमति देती हैं कि क्या छवि में एक चेहरा है और निर्दिष्ट व्यक्ति के लिए चेहरे जोड़ें (निर्दिष्ट फ़ोल्डर से कई छवियों से स्वचालित रूप से चेहरा जोड़ता है)।

इस चरण से जुड़ी फ़ाइल डाउनलोड करें, इसे अनपैक करें, इन तीन फ़ाइलों में 'कुंजी' वैश्विक चर बदलें: PersonGroup.py, Person.py और Face.py आपके लिए कुंजी है जिसे आप पा सकते हैं: portal.azure.com > सभी संसाधन > फेस एपीआई सर्विस (या आपने इसे कैसे कहा) > कीज़ टैब। आप दोनों चाबियों में से किसी का भी उपयोग कर सकते हैं।

नोट: यहां हम लोगों को पहचानने के लिए फेस एपीआई सेवा को प्रशिक्षित करने जा रहे हैं, इसलिए किसी भी कंप्यूटर से निम्नलिखित क्रियाएं की जा सकती हैं (उसके लिए रास्पबेरी पाई की आवश्यकता नहीं है) - माइक्रोसॉफ्ट के सर्वर पर परिवर्तन सहेजे जाते हैं।

कुंजी बदलने के बाद, मान्यता.py चलाएँ और अजगर शेल में निम्न कमांड दर्ज करें:

PersonGroup.create("family", 'fff-fff')) // आप इसके लिए अपने नाम और आईडी का उपयोग कर सकते हैं

समूह PrintResJson (PersonGroup.getPersonGroup ('fff-fff'))

आपको अपने द्वारा अभी बनाए गए समूह के बारे में डेटा देखना होगा। अब दर्ज करें:

PrintResJson (Person.createPerson ('fff-fff', 'व्यक्ति का नाम'))

अब आपको व्यक्ति आईडी मिलती है। इस व्यक्ति की छवियों के साथ फ़ोल्डर बनाएं ताकि सभी छवियों में इस व्यक्ति का चेहरा हो। आप रिकग्निशन.py में फंक्शन डिटेक्टफेसऑनइमेज का उपयोग कर सकते हैं जो आपको दिखाता है कि किस फोटो फेस का पता लगाया गया है। अब, कमांड चलाएँ:

addFacesToPerson ('छवियों के साथ फ़ोल्डर', 'व्यक्ति आईडी जो आपको पिछली कमांड के बाद मिली थी', 'fff-fff')

फिर हमें निम्नलिखित दर्ज करके अपनी सेवा को प्रशिक्षित करना होगा:

PersonGroup.trainPersonGroup('fff-fff')printResJson(PersonGroup.getPersonGroupTrainingStatus('fff-fff'))

अब हमारा समूह प्रशिक्षित है और एक व्यक्ति की पहचान करने के लिए तैयार है।

छवि पर व्यक्ति की जांच करने के लिए आप यह कर सकते हैं:

Face.checkPerson(छवि, 'fff-fff')

जवाब में आपको उम्मीदवारों की एक सूची मिलेगी और संभावना है कि फोटो पर कौन है।

नोट: हर बार जब आप किसी व्यक्ति या व्यक्ति को किसी समूह में चेहरे जोड़ते हैं तो आपको समूह को प्रशिक्षित करना होता है!

चरण 5: नोड-लाल विन्यास

नोड-लाल विन्यास
नोड-लाल विन्यास

चरण विवरण: इस चरण में, हम नोड-लाल प्रवाह बनाएंगे जो आपको आपके रेफ्रिजरेटर तक पहुंच उल्लंघन के बारे में सूचित करेगा =)

यदि आपका रास्पबेरी पाई रास्पियन जेसी नवंबर 2015 या बाद के संस्करण पर चलता है, तो आपको नोड-रेड स्थापित करने की आवश्यकता नहीं है, क्योंकि यह पहले से ही पूर्वस्थापित है। आपको बस इसे अपडेट करने की जरूरत है। कृपया यहां मैनुअल का उपयोग करें।

अब, हमें ट्विलियो नोड को नोड-रेड में स्थापित करना होगा, ताकि हम एक टेक्स्ट संदेश ट्रिगर कर सकें। टर्मिनल खोलें और इसमें टाइप करें:

cd ~/.node-rednpm नोड-रेड-नोड-ट्विलियो स्थापित करें

ट्विलियो नोड के बारे में यहाँ और अधिक। उसके बाद, टर्मिनल में टाइप करके नोड-रेड चलाएँ:

नोड-लाल

फिर यहां जाएं: https://127.0.0.1:1880/ - यदि आप अपने रास्पबेरी पाई पर ब्राउज़र खोलते हैं: // {raspberry_pi_ip}: 1880/ - यदि आप अन्य कंप्यूटर से नोड-रेड संपादक खोलना चाहते हैं

रास्पबेरी पाई का आईपी पता जानने के लिए इस निर्देश का उपयोग करें।

अब आपको अपने नोड-रेड एडिटर में नोड्स की सूची में ट्विलियो नोड को खोजना होगा (आमतौर पर यह 'सोशल' ग्रुप के बाद दिखाई देता है)।

यह प्रवाह बनाने का समय है!

नोट: आप इस चरण से जुड़े मेरे प्रवाह का उपयोग कर सकते हैं, लेकिन नोड्स को कॉन्फ़िगर करना न भूलें: ईमेल, ट्विटर और ट्विलियो। उसके बारे में बाद में पढ़ें।

हमारा प्रवाह "सूचित" नोड से शुरू होता है जो एक्सेस उल्लंघन के बारे में कुछ डेटा के साथ हमारे मुख्य कार्यक्रम से POST अनुरोध स्वीकार करता है (डेटा का उदाहरण "ऑब्जेक्ट प्राप्त करने के बारे में" टिप्पणी नोड में पाया जा सकता है)। यह नोड तुरंत "ओके" संदेश के साथ प्रतिक्रिया करता है, इसलिए मुख्य कार्यक्रम को पता है कि डेटा प्राप्त हुआ था (फ्लो: / नोटिफिकेशन> ओके के साथ प्रतिक्रिया> प्रतिक्रिया)। डिबगिंग उद्देश्यों के लिए msg.payload नाम के साथ सबसे नीचे ग्रीन नोड है: यदि कुछ काम नहीं कर रहा है तो आप इसका उपयोग कर सकते हैं।

मुट्ठी नोड (/ सूचित करें) से डेटा "डेटा विषय" और "छवि विषय" के लिए प्रचारित किया जाता है जहां विषय "डेटा" और "छवि" क्रमशः जोड़े जाते हैं।

"संकलन" नोड में हमें "डेटा" विषय के साथ डेटा (जो हमें पहले चरण के दौरान मिलता है) और "छवि" विषय के साथ एक छवि (छवि /home/pi/image-j.webp

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

जब परिणाम "सत्य" होता है तो हम ट्विटर, ट्विलियो और ईमेल पर सूचना भेजते हैं; जब परिणाम "गलत" हो - केवल ईमेल और टवीलियो। हम एक संदेश के साथ ईमेल के लिए एक वस्तु, संलग्न छवि और ईमेल विषय, एक संदेश के साथ ट्विलियो के लिए एक वस्तु बनाते हैं। ट्विटर के लिए हम किसी वस्तु में डेटा जोड़ते हैं यदि "विश्वसनीय व्यक्ति" सत्य है। फिर इन तीन वस्तुओं को तीन अलग-अलग नोड्स में भेजें।

नोट: यदि निम्न नोड को कोई संदेश प्राप्त नहीं होना चाहिए, तो हम उसे केवल "null" भेजते हैं।

अधिसूचना के लिए नोड्स को कॉन्फ़िगर करने का समय आ गया है!

चहचहाना प्रवाह में "ट्विटर" नोड जोड़ें। इसे डबल क्लिक करके खोलें। "ट्विटर आईडी" के आगे पेंसिल पर क्लिक करें। फिर "ट्विटर से प्रमाणित करने के लिए यहां क्लिक करें" पर क्लिक करें। अपने ट्विटर खाते में प्रवेश करें और नोड-रेड को आवश्यक अनुमति दें।

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

  • के लिए > ईमेल पता जिस पर संदेश भेजे जाएंगे
  • Userid > अपने ईमेल से लॉगिन करें (शायद "टू" फ़ील्ड के समान)
  • पासवर्ड> आपके ईमेल खाते से पासवर्ड
  • नाम > इस नोड के लिए नाम

Twilio https://www.twilio.com/try-twilio पर जाएं और एक खाता पंजीकृत करें। इसे सत्यापित करें। https://www.twilio.com/console पर जाएं। "फ़ोन नंबर" (बड़ा # आइकन) पर क्लिक करें और निःशुल्क नंबर बनाएं। यदि आप यूएसए से बाहर हैं तो आपको GEO अनुमतियां जोड़नी होंगी, https://www.twilio.com/console/sms/settings/geo-pe… पर जाएं और अपना देश जोड़ें।

अब, नोड-रेड संपादक पर जाएं, ट्विलियो नोड जोड़ें, कॉन्फ़िगर करने के लिए उस पर डबल क्लिक करें और सभी फ़ील्ड भरें:

  • क्रेडेंशियल > स्थानीय क्रेडेंशियल का इस्तेमाल करें
  • ट्विलियो > संपादित करें

    • खाता SID > यहाँ से लें
    • From > आपके द्वारा बनाए गए वर्चुअल नंबर में टाइप करें
    • टोकन > यहाँ से लें
    • नाम > ट्विलियो
  • आउटपुट> एसएमएस
  • टू > आपका फोन नंबर
  • नाम> इस नोड के लिए नाम।

तैनाती पर क्लिक करें

अब आपका फ्लो तैयार है! आप निर्दिष्ट वस्तु के साथ POST अनुरोध भेजकर इसका परीक्षण कर सकते हैं!

चरण 6: संपूर्ण परियोजना का संकलन

संपूर्ण परियोजना का संकलन
संपूर्ण परियोजना का संकलन
संपूर्ण परियोजना का संकलन
संपूर्ण परियोजना का संकलन

चरण विवरण: इस चरण में हम सभी भागों को एक साथ रखेंगे और उन्हें एक अलग प्रणाली के रूप में काम करेंगे।

इस कदम से आपको यह करना होगा:

  1. पुराने स्मार्टफोन को आईपी कैमरा के रूप में कॉन्फ़िगर करें
  2. काम करने वाले सेंसर हैं
  3. प्रशिक्षित माइक्रोसॉफ्ट का फेस एपीआई
  4. कॉन्फ़िगर किया गया नोड-लाल प्रवाह

अब हमें चरण 2 में लिखे गए कोड में सुधार करना होगा। अधिक विशेष रूप से फ़ंक्शन प्रक्रिया () जिसे व्यक्ति द्वारा दरवाजा खोलने पर कहा जाता है। इस फ़ंक्शन में हम निम्नलिखित कार्य करेंगे:

  1. आईपी कैमरा से छवि प्राप्त करें और इसे "/home/pi/" में "image.jpg" नाम से सहेजें (फ़ंक्शन "fromIpCam" फ़ाइल "getImage" में)
  2. उस छवि पर व्यक्ति का नाम प्राप्त करें (फ़ाइल "मान्यता" में "चेकपर्सन" फ़ंक्शन करें)
  3. उस व्यक्ति के लिए एक्सेस अनुमति जांचें (फ़ाइल "एक्सेस" में "चेक" फ़ंक्शन करें)
  4. "चेक" फ़ंक्शन के परिणाम के आधार पर संदेश लिखें
  5. नोड-रेड को रचित संदेश भेजें (फ़ंक्शन "toNodeRed" फ़ाइल "sendData" में)

नोट: उल्लिखित कार्यों का पूरा कोड देखने के लिए कृपया इस चरण से जुड़ी ज़िप फ़ाइल डाउनलोड करें।

समारोह के बारे में "IpCam से"। यह फ़ंक्शन आपके आईपी कैमरे से जीईटी अनुरोध करता है, प्रतिक्रिया में केंद्रित छवि प्राप्त करता है और इसे आपके द्वारा निर्दिष्ट पथ पर सहेजता है। आपको इस फंक्शन को कैमरा आईपी एड्रेस देना होगा।

फ़ंक्शन "चेकपर्सन" के बारे में। फ़ंक्शन को छवि और समूह का पथ मिलता है जिसमें आप फोटो से व्यक्ति को पैरामीटर के रूप में खोजना चाहते हैं। सबसे पहले, यह प्रदान की गई छवि पर एक चेहरे का पता लगाता है (फ़ाइल Face.py, फ़ंक्शन "पता लगाएं")। जवाब में यह आईडी हो जाता है अगर चेहरे का पता चला था। फिर यह "पहचान" फ़ंक्शन (Face.py फ़ाइल) को कॉल करता है जो निर्दिष्ट समूह में समान व्यक्तियों को ढूंढता है। जवाब में व्यक्ति मिलने पर उसे एक व्यक्ति आईडी मिलती है। फिर पैरामीटर के रूप में व्यक्ति आईडी के साथ फ़ंक्शन "व्यक्ति" (फ़ाइल Person.py) को कॉल करें, "व्यक्ति" फ़ंक्शन निर्दिष्ट आईडी वाले व्यक्ति को लौटाता है, हम व्यक्ति का नाम प्राप्त करते हैं और इसे वापस कर देते हैं।

फ़ंक्शन "चेक" के बारे में। यह फ़ंक्शन फ़ाइल "एक्सेस" में रखा गया है जहां "एक्सेस सूची" को वैश्विक चर के रूप में भी रखा गया है (आप इसे अपनी इच्छानुसार संशोधित कर सकते हैं)। पिछले फ़ंक्शन से व्यक्ति का नाम प्राप्त करना, "चेक" फ़ंक्शन करें, इस व्यक्ति की एक्सेस सूची से तुलना करें और परिणाम वापस करें।

नोट: पूरा प्रोजेक्ट अगले चरण के साथ संलग्न है।

चरण 7: निष्कर्ष

इस चरण में मैंने पूरा प्रोजेक्ट संलग्न किया है जिसे आपको अनज़िप करना चाहिए और अपने रास्पबेरी पाई पर रखना चाहिए।

इस परियोजना को काम करने के लिए "main.py" फ़ाइल चलाएं।

यदि आप SSH के माध्यम से रास्पबेरी पाई को नियंत्रित करते हैं, तो आपको एक शेल से दो प्रोग्राम चलाने होंगे: पायथन प्रोग्राम और नोड-रेड। टर्मिनल में निम्नलिखित टाइप करें:

नोड-लाल

"Ctrl + Z" दबाएं और टाइप करें:

नौकरियां

आपने नोड-रेड प्रक्रिया देखी है। प्रक्रिया की आईडी देखें और टाइप करें:

बीजी

अब Node-Red को बैकग्राउंड में काम करना शुरू करना होगा। फिर अपनी परियोजना के साथ निर्देशिका में जाएं और मुख्य कार्यक्रम चलाएं:

python3 main.py

नोट: अजगर फ़ाइलों (चरण 4) में कुंजी और नोड-लाल प्रवाह (चरण 5) में क्रेडेंशियल्स को बदलना न भूलें

किया हुआ! आपका रेफ्रिजरेटर सुरक्षित है!

मुझे आशा है कि आपने इस अट्रैक्टिव का आनंद लिया! टिप्पणियों में अपना दिमाग छोड़ने के लिए स्वतंत्र महसूस करें।

यदि आप मेरे प्रोजेक्ट के लिए वोट करते हैं तो मैं आभारी रहूंगा =)

शुक्रिया!

सिफारिश की: