विषयसूची:

रास्पबेरी पाई प्रोजेक्ट में कस्टम एलेक्सा कंट्रोल जोड़ें: 5 कदम
रास्पबेरी पाई प्रोजेक्ट में कस्टम एलेक्सा कंट्रोल जोड़ें: 5 कदम

वीडियो: रास्पबेरी पाई प्रोजेक्ट में कस्टम एलेक्सा कंट्रोल जोड़ें: 5 कदम

वीडियो: रास्पबेरी पाई प्रोजेक्ट में कस्टम एलेक्सा कंट्रोल जोड़ें: 5 कदम
वीडियो: How to setup Amazon Alexa on Raspberry Pi | Build Alexa at Home [Hindi] 2024, जुलाई
Anonim
रास्पबेरी पाई प्रोजेक्ट में कस्टम एलेक्सा कंट्रोल जोड़ें
रास्पबेरी पाई प्रोजेक्ट में कस्टम एलेक्सा कंट्रोल जोड़ें

यह परियोजना किसी ऐसे व्यक्ति के लिए अभिप्रेत है जिसके पास रास्पबेरी पाई परियोजना है जो पायथन का उपयोग करती है जो अपने मौजूदा अमेज़ॅन इको उपकरणों के माध्यम से आवाज नियंत्रण जोड़ना चाहता है। आपको एक अनुभवी प्रोग्रामर होने की आवश्यकता नहीं है, लेकिन आपको कमांड लाइन का उपयोग करने और अपनी आवश्यकताओं के अनुरूप मौजूदा कोड को अपनाने में सहज होना चाहिए।

मैंने शुरू में अपने रास्पबेरी पाई को एलेक्सा के साथ आवाज-नियंत्रित करने में सक्षम बनाने के लिए एक परियोजना पर सेट किया ताकि यह एक केतली में एक विशिष्ट तापमान पर पानी गर्म कर सके। हालाँकि मैं जो बातचीत चाहता था वह काफी सरल थी (एलेक्सा से रास्पबेरी पाई तक एक नंबर पास करें), मौजूदा ट्यूटोरियल से उस स्थिति को प्राप्त करने में बहुत काम करना पड़ा। मुझे उम्मीद है कि यह ट्यूटोरियल उस प्रक्रिया को दूसरों के लिए जितनी जल्दी हो सके बना देगा।

मेरे उदाहरण में, मैं रास्पबेरी पाई ज़ीरो डब्ल्यू के साथ रास्पियन के साथ शुरुआत करता हूं। मेरे पास मेरे पीआई पर एक पायथन 3 प्रोग्राम है जो एसपीआई डिस्प्ले पर टेक्स्ट लिखने में सक्षम है, और मेरे पास थर्मामीटर जांच है जिसे मैं पढ़ सकता हूं। आपके लिए, यह प्रोग्राम लगभग कुछ भी हो सकता है, लेकिन विचार यह है कि आपके पास कुछ इनपुट डिवाइस हो सकते हैं जिन्हें आप एलेक्सा और/या कुछ आउटपुट डिवाइसों के माध्यम से पढ़ना चाहते हैं जिन्हें आप एलेक्सा का उपयोग करके नियंत्रित करना चाहते हैं।

लक्ष्य एक बुनियादी कार्यक्रम से जाना है जैसे कि ऊपर वर्णित एक डिवाइस पर जिसे आप आसानी से मेरी इको से नियंत्रित कर सकते हैं। यह मानते हुए कि आपके पास यह हार्डवेयर पहले से है, इस परियोजना के लिए आपको कोई पैसा खर्च नहीं करना चाहिए। अंत में, आप उस बिंदु पर पहुंच जाएंगे जहां आप इस तरह की बातें कह सकते हैं:

मैं: "एलेक्सा, मेरे गैजेट को सेंसर 1 पर तापमान की जांच करने के लिए कहें।"

एलेक्सा की प्रतिक्रिया: "जांच 72.31 डिग्री पढ़ता है।"

या

मैं: "एलेक्सा, मेरे गैजेट को जॉर्ज वाशिंगटन लिखने के लिए कहो"

प्रतिक्रिया: मेरे रास्पबेरी पाई से जुड़ा डिस्प्ले अब "जॉर्ज वाशिंगटन" पढ़ता है

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

चरण 1: पृष्ठभूमि

पृष्ठभूमि
पृष्ठभूमि

इस छवि में (क्रेडिट: https://developer.amazon.com/en-US/docs/alexa/alex… हम एलेक्सा गैजेट्स के लिए सामान्य आर्किटेक्चर देख सकते हैं।

जब आप अपने इको डिवाइस से कुछ कहते हैं, तो यह ऑडियो को एलेक्सा क्लाउड पर भेजता है, जहां इसे संसाधित किया जाता है और जहां आपको प्रतिक्रिया देने के लिए एक प्रतिक्रिया उत्पन्न होती है। जब आप पूछते हैं कि मौसम क्या है, तो संचार में बस यही दो हैं। अब मान लीजिए कि आप रास्पबेरी पाई पर अपनी एक छोटी परियोजना में आवाज नियंत्रण जोड़ना चाहते हैं। जहाज पर सब कुछ संसाधित करने के लिए महत्वपूर्ण हार्डवेयर और चीजों को प्राप्त करने के लिए एक बहुत ही परिष्कृत कोडबेस की आवश्यकता होगी। एक बेहतर समाधान एलेक्सा क्लाउड का लाभ उठाना होगा, जो बहुत परिष्कृत है और जटिल भाषण पैटर्न को संभालने में बहुत अच्छा है। एलेक्सा गैजेट्स आपको ऐसा करने का एक अच्छा तरीका प्रदान करता है।

एक एलेक्सा गैजेट ब्लूटूथ का उपयोग करके एक इको डिवाइस के साथ संचार करता है। एक बार यह कनेक्शन स्थापित हो जाने के बाद, दोनों UTF-8 एन्कोडिंग का उपयोग करके एक दूसरे को संदेश भेजते हैं। जब इको गैजेट को कुछ भेजता है, तो उसे निर्देश कहा जाता है। दूसरी दिशा को एक घटना के रूप में जाना जाता है। इन सब के सटीक प्रवाह में जाने से पहले, हमें एक और प्रमुख तत्व पेश करना चाहिए: कस्टम एलेक्सा स्किल्स।

एलेक्सा डेवलपर्स को अपने स्वयं के कस्टम कौशल बनाने की अनुमति देता है, जो उन्हें सभी इको उपकरणों पर उपयोग के लिए अपने स्वयं के इंटरैक्शन और व्यवहार को डिजाइन करने की अनुमति देता है। उदाहरण के लिए, एक डेवलपर आपको यूएस में दो हवाई अड्डों के बीच की दूरी बताने के लिए एक कस्टम कौशल बना सकता है। एक उपयोगकर्ता कहेगा: "एलेक्सा, मेरे कस्टम दूरी कैलकुलेटर से पूछें कि एलएएक्स और जेएफके के बीच की दूरी क्या है" और यह "2475 मील" के साथ जवाब दे सकता है। यह ऐसे कैसे करता है? जब कोई डेवलपर एक कस्टम कौशल बनाता है, तो वे परिभाषित करते हैं कि "कस्टम इरादे" को "स्लॉट" युक्त "नमूना उच्चारण" के साथ क्या कहा जाता है। उदाहरण के लिए, इस कौशल में दो बिंदुओं के बीच की दूरी की गणना करने के लिए मेरा इरादा "calc_dist" हो सकता है। एक नमूना उच्चारण होगा "{slot1} और {slot2} के बीच की दूरी क्या है" या "{slot1} और {slot2} के बीच कितनी दूरी है"। कोष्ठक में दिखाए गए स्लॉट विशिष्ट प्रकार के होते हैं। इस मामले में वे प्रकार एयरपोर्ट कोड होंगे जैसे LAX, JFK, BOS, ATL। जब कोई उपयोगकर्ता कस्टम कौशल के लिए पूछता है, तो एलेक्सा क्लाउड आपूर्ति किए गए नमूना कथनों का उपयोग करके उपयोगकर्ता के कस्टम इरादे से मेल खाने की कोशिश करता है और उस अनुरोध के लिए मान्य स्लॉट मान खोजने का प्रयास करता है। इस उदाहरण में, यह पाया जाएगा कि उपयोगकर्ता "calc_dist" आशय चाहता था और वह स्लॉट1 LAX है और स्लॉट2 JFK है। इस बिंदु पर, एलेक्सा क्लाउड काम को डेवलपर के अपने कोड में भेज देता है। मूल रूप से, यह डेवलपर्स कोड को बताता है कि उसे क्या इरादा प्राप्त हुआ और अन्य विवरणों के साथ सभी स्लॉट मान क्या थे।

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

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

इस प्रवाह को स्थापित करने से एक बहुत शक्तिशाली उपकरण बनता है क्योंकि सस्ते गैजेट्स में क्लाउड में कोड के साथ संचार करने की क्षमता हो सकती है और कुछ बेहतरीन वॉयस रिकग्निशन का उपयोग करके वॉयस कमांड का जवाब दे सकते हैं।

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

चरण 2: एलेक्सा वॉयस सर्विस डेवलपर कंसोल पर गैजेट पंजीकृत करें

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

  1. https://developer.amazon.com/alexa/console/avs/hom… पर नेविगेट करें।
  2. यदि आपके पास पहले से एक निःशुल्क खाता नहीं है, तो एक बनाएं
  3. "उत्पाद" पर क्लिक करें
  4. लेबल भरें और "एलेक्सा गैजेट" चुनें
  5. बाकी फ़ील्ड के लिए जो कुछ भी आप चाहते हैं उसे भरें
  6. समाप्त क्लिक करें

चरण 3: एडब्ल्यूएस लैम्ब्डा फंक्शन और कस्टम स्किल बनाएं

एलेक्सा स्किल किट डेवलपर कंसोल पर कस्टम स्किल बनाएं

इस ट्यूटोरियल के लिए कोड यहां पाया जा सकता है

इस चरण को पूरा करने से पहले, आपको एक.zip फ़ाइल बनानी होगी जिसमें AWS लैम्ब्डा फ़ंक्शन के लिए परिनियोजन पैकेज शामिल हो जैसा कि यहां ट्यूटोरियल में दिखाया गया है।

  1. मेरे जीथब से "लैम्ब्डा" फ़ोल्डर डाउनलोड करें जिसमें "lambda_function.py" और "requirements.txt" शामिल हैं।
  2. टर्मिनल खोलें और वर्तमान निर्देशिका को इस फ़ोल्डर के अंदर बदलें।
  3. निम्नलिखित क्रम चलाएँ:

पाइप स्थापित करें -r आवश्यकताएँ.txt -t skills_env

सीपी लैम्ब्डा_फंक्शन.पी स्किल_एनवी सीडी स्किल_एनवी ज़िप-आर../../स्किल-कोड.ज़िप

आपकी.zip फ़ाइल अब उस निर्देशिका में स्थित होगी जहां लैम्ब्डा फ़ोल्डर था और उसे "skill-code.zip" कहा जाएगा।

AWS पर होस्टिंग की लागत पर एक नोट: इस ट्यूटोरियल के लिए आवश्यक है कि आपके पास AWS खाता (बनाने के लिए निःशुल्क) हो। लैम्ब्डा फ़ंक्शंस में पैसे खर्च होते हैं, हालांकि, एन वर्जीनिया क्षेत्र में उनका वर्तमान मूल्य $0.000000208 प्रति 100ms उपयोग 128MB मेमोरी के साथ है। संदर्भ के लिए, मेरे कौशल का प्रत्येक आह्वान इस स्तर पर लगभग 800ms का उपयोग करता है। $1.00USD का बिल जमा करने के लिए, आपको इस फ़ंक्शन को लगभग ६००,००० बार लागू करना होगा जो (यदि यह आपको प्रति आमंत्रण ५ सेकंड लेता है) तो आपको ३४ दिनों से अधिक समय तक नॉनस्टॉप कॉल करना होगा। जब तक आप अपने कौशल को प्रकाशित नहीं करते हैं और बड़ी संख्या में लोग इसका उपयोग करना शुरू नहीं करते हैं, तब तक लागत एक महत्वपूर्ण मुद्दा नहीं होना चाहिए। यदि आप AWS पर बिल प्राप्त करने के बारे में चिंतित हैं, तो उपयोग अलार्म सेट करने पर विचार करें जो आपको सूचित करता है कि क्या उपयोग एक निर्धारित सीमा से गुजरता है।

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

  1. https://aws.amazon.com/ पर नेविगेट करें और कंसोल में साइन इन करें या यदि आपके पास एक नहीं है तो एक निःशुल्क खाता बनाएं
  2. सेवाओं के तहत लैम्ब्डा को खोजें और क्लिक करें
  3. "फ़ंक्शन बनाएँ" पर क्लिक करें
  4. "स्क्रैच से लेखक" चुनें, इसे एक नाम दें, और रनटाइम के लिए नवीनतम पायथन 3 संस्करण चुनें
  5. "कोड इनलाइन संपादित करें" को "एक.zip फ़ाइल अपलोड करें" में बदलें और ऊपर बनाई गई.zip फ़ाइल का चयन करें
  6. एक नई विंडो में, https://developer.amazon.com/alexa/console/ask पर नेविगेट करें और साइन इन करें
  7. "कौशल बनाएं" पर क्लिक करें
  8. इसे लेबल करें, "कस्टम" मॉडल चुनें और "अपना खुद का प्रावधान करें" और "कौशल बनाएं" पर क्लिक करें
  9. "स्क्रैच से प्रारंभ करें" पर क्लिक करें और "चुनें" पर क्लिक करें
  10. "इरादे" के तहत, "जोड़ें" पर क्लिक करें
  11. "alexa_to_pi" नामक एक कस्टम इंटेंट बनाएं और एक नमूना उच्चारण के रूप में "{person} लिखें" भरें
  12. "AMAZON. Person" प्रकार के साथ "व्यक्ति" नामक एक इंटेंट स्लॉट बनाएं
  13. "pi_to_alexa" नाम का एक कस्टम इंटेंट बनाएं और "सेंसर {sensor_num} से तापमान जांचें" भरें
  14. "AMAZON. NUMBER" प्रकार के साथ "sensor_num" नामक एक इंटेंट स्लॉट बनाएं
  15. इंटरफेस के तहत, "कस्टम इंटरफेस नियंत्रक" चालू करें
  16. एंडपॉइंट के तहत, "एडब्ल्यूएस लैम्ब्डा एआरएन" चुनें और "योर स्किल आईडी" को कॉपी करें।
  17. AWS कंसोल पर वापस नेविगेट करें
  18. "ट्रिगर जोड़ें" पर क्लिक करें
  19. "एलेक्सा स्किल्स किट" चुनें, स्किल आईडी वेरिफिकेशन के तहत "इनेबल" चेक करें, उस स्किल आईडी में पेस्ट करें जिसे आपने अभी कॉपी किया है और ऐड पर क्लिक करें
  20. लैम्ब्डा एआरएन को ऊपरी दाएं कोने में कॉपी करें
  21. एलेक्सा डेवलपर कंसोल पर वापस नेविगेट करें और लैम्ब्डा एआरएन को "डिफ़ॉल्ट क्षेत्र" फ़ील्ड में पेस्ट करें
  22. आमंत्रण के तहत, कौशल आमंत्रण नाम को "मेरा गैजेट" पर सेट करें
  23. "मॉडल सहेजें" पर क्लिक करें और फिर "मॉडल बनाएं"
  24. शीर्ष टैब में "परीक्षण" पर क्लिक करें और चयनकर्ता को "बंद" से "विकास" में बदलें
  25. ध्यान दें कि लैम्ब्डा फ़ंक्शन के लिए लॉग एडब्ल्यूएस पर "क्लाउडवॉच" सेवा में पाए जाते हैं।

चरण 4: अपने रास्पबेरी पाई पर कोड सेट करें

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

गिट क्लोन

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

सब कुछ कॉन्फ़िगर करने के लिए उनका सेटअप फ़ंक्शन चलाएँ।

सीडी /होम/पीआई/एलेक्सा-गैजेट्स-रास्पबेरी-पाई-नमूने

sudo python3 launch.py --setup

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

नोट: इस चरण में कितना समय लग सकता है, यह इस बात पर निर्भर करता है कि कितनी स्थापना की आवश्यकता है।

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

यदि आप चुनते हैं, तो आप "एलेक्सा-गैजेट्स-रास्पबेरी-पाई-नमूने/src" में "उदाहरण" फ़ोल्डर को हटा सकते हैं।

आप जहां चाहें अपना प्रोजेक्ट कोड रख सकते हैं, लेकिन मैं इसके लिए होम डायरेक्टरी में एक फोल्डर बनाऊंगा, वैकल्पिक रूप से आप मेरे जीथब से कोड के साथ फोल्डर डाउनलोड कर सकते हैं, बस नीचे बताए अनुसार.ini फाइलों को एडिट करना सुनिश्चित करें।

सीडी / घर / पीआई

mkdir my_project cd my_project my_gadget.py स्पर्श my_gadget.ini

मैंने अब "my_project" नामक फ़ोल्डर में दो फ़ाइलें बनाई हैं।.ini फ़ाइल महत्वपूर्ण है। सुनिश्चित करें कि इसमें आपके Amazon ID और गैजेट सीक्रेट में निम्नलिखित और स्थानापन्न शामिल हैं:

[गैजेट सेटिंग्स]

amazonId = INSERT_AMAZON_ID_HERE alexaGadgetSecret = INSERT_ALEXA_GADGET_SECRET_HERE [गैजेट क्षमताएं] Custom. MyGadget = 1.0

अब, विवरण में जाने से पहले पायथन फ़ाइल पर एक नज़र डालते हैं:

आयात जोंस

agt आयात से AlexaGadget

क्लास माईगैजेट (एलेक्सा गैजेट):

def _init_(स्वयं):

सुपर ()._ init _ ()

def on_custom_mygadget_alexatopi(स्वयं, निर्देश):

पेलोड = json.loads (directive.payload.decode ("utf-8")) प्रिंट ("प्राप्त डेटा:" + str (पेलोड)) write_text (str (पेलोड ['डेटा'] ['व्यक्ति'] ['मान ']))

def on_custom_mygadget_pitoalexa (स्वयं, निर्देश):

पेलोड = json.loads (directive.payload.decode ("utf-8")) प्रिंट ("प्राप्त डेटा:" + str (पेलोड)) पेलोड = {'डेटा': "जांच पढ़ता है" + str (get_temp (पेलोड) ['डेटा'] ['सेंसर_नम'] ['मान'])) + "डिग्री।"} self.send_custom_event('Custom. MyGadget', 'PiToAlexa', पेलोड) MyGadget().main()

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

एक बार जब आपके पास ये फ़ाइलें हों, तो "my_project" फ़ोल्डर में नेविगेट करें और पायथन फ़ाइल चलाएँ।

सुडो रिबूट

cd /home/pi/my_project sudo python3./my_gadget.py

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

अपने मोबाइल डिवाइस पर एलेक्सा ऐप में, निचले दाएं कोने में "डिवाइस" पर क्लिक करें।

ऊपर बाईं ओर "इको एंड एलेक्सा" पर क्लिक करें।

अपने इको डिवाइस पर क्लिक करें।

"वायरलेस" के अंतर्गत, "ब्लूटूथ डिवाइसेस" पर टैप करें।

"एक नया उपकरण जोड़ें" टैप करें और आपको सूची में अपना गैजेट देखना चाहिए।

अपने गैजेट पर टैप करें। आपको पीआई रिपोर्ट देखनी चाहिए कि यह सफलतापूर्वक जोड़ा गया है।

अपने पाई पर आउटपुट देखते समय, इको को वॉयस कमांड देने का प्रयास करें:

आप: "एलेक्सा, मेरे गैजेट से सेंसर एक से तापमान की जांच करने के लिए कहें"

अगर सब कुछ ठीक से काम करता है, तो आपको यह सुनना चाहिए:

इको: "जांच 120.505 डिग्री पढ़ता है।"

आप: "एलेक्सा, मेरे गैजेट को जॉर्ज वाशिंगटन लिखने के लिए कहें।"

पीआई को प्रिंट करना चाहिए:

प्राप्त डेटा: {'डेटा': {'व्यक्ति': {'नाम': 'व्यक्ति', 'मान': 'जॉर्ज वाशिंगटन', 'पुष्टिकरण': 'कोई नहीं'}}}

जॉर्ज वाशिंगटन"

चरण 5: रैपिंग अप

यहां दिखाया गया वीडियो तापमान को पढ़ने के साथ काम कर रहे गैजेट का एक उदाहरण है (एफ बनाम सी में एक ही जांच) और एक साधारण डिस्प्ले पर नाम लिख रहा है।

अब जब आप उम्मीद से कुछ काम कर रहे हैं, तो आपको अपनी खुद की परियोजना को और अधिक सक्षम बनाने के लिए इसे अनुकूलित करने का प्रयास करना चाहिए। याद रखें कि आप एलेक्सा डेवलपर कंसोल में आसानी से इंटेंट को संपादित कर सकते हैं और आपके द्वारा उपयोग किए जाने वाले सभी स्लॉट पेलोड में आपके पाई को पास कर दिए जाएंगे। इसके अलावा, आप एलेक्सा को कुछ भी कह सकते हैं जो आप अपने रास्पबेरी पीआई कोड से घटना में वापस आने वाले पेलोड को संपादित करके चाहते हैं।

कृपया ध्यान दें कि यह ट्यूटोरियल उन सभी क्षमताओं के लिए अंतिम समाधान नहीं है जो आप एलेक्सा गैजेट के साथ चाहते हैं। यह जानबूझकर आपको एलेक्सा और एक गैजेट के बीच प्रत्येक दिशा में डेटा पास करने के लिए दो सरल कार्य देने के लिए सीमित है। यदि आप अधिक परिष्कृत इंटरैक्शन मॉडल बनाने में रुचि रखते हैं, तो मैं आपको https://github.com/alexa/Alexa-Gadgets-Raspberry-P… में सभी रीडमी फ़ाइलों को पढ़ने और उनके द्वारा प्रदान किए गए सभी उदाहरणों को आज़माने के लिए प्रोत्साहित करूंगा।. मैं यह भी सुझाव दूंगा कि आप एलेक्सा गैजेट्स टूलकिट और एलेक्सा स्किल्स किट के लिए प्रलेखन पढ़ें।

सिफारिश की: