विषयसूची:

Google होम नियंत्रित एलईडी: 8 कदम
Google होम नियंत्रित एलईडी: 8 कदम

वीडियो: Google होम नियंत्रित एलईडी: 8 कदम

वीडियो: Google होम नियंत्रित एलईडी: 8 कदम
वीडियो: My new fav LED Light.Star Projector 2024, नवंबर
Anonim
Google होम नियंत्रित एलईडी
Google होम नियंत्रित एलईडी
Google होम नियंत्रित एलईडी
Google होम नियंत्रित एलईडी

हाल ही में, मेरे पास बहुत खाली समय है, इसलिए मैं कई परियोजनाओं पर काम कर रहा हूं।

यह परियोजना आपको रास्पबेरी पाई का उपयोग करके Google होम के माध्यम से आरजीबी एलईडी को नियंत्रित करने की अनुमति देगी। अब परियोजना के 3 भाग हैं, रास्पबेरी पाई की स्थापना, IFTTT का उपयोग करके एक कस्टम कमांड के साथ Google होम की स्थापना, और फिर रोशनी के लिए एक सर्किट बनाना। मैंने खुद सर्किट बनाया है, लेकिन मुझे यकीन है कि आपको एडफ्रूट से कुछ मिल सकता है जो कि जरूरत है।

रास्पबेरी पाई भाग के लिए सामग्री

  • रास्पबेरी पाई - कोई भी काम करेगा, लेकिन मैं शून्य का उपयोग कर रहा हूं
  • वायरलेस डोंगल - अगर Pi Wifi में नहीं बना है
  • Google होम - वैकल्पिक यदि आपके फ़ोन में Google सहायक है

सर्किट पार्ट के लिए सामग्री- इसे आपको बाधित न होने दें… यह काफी सरल है

  • protoboard
  • वायर
  • एलईडी स्ट्रिप
  • 12 वी बिजली की आपूर्ति - 2 एएमपीएस से ऊपर कुछ भी ठीक होना चाहिए
  • डीसी बैरल जैक - आपकी बिजली आपूर्ति के समान आकार
  • NPN BJT पावर ट्रांजिस्टर (x3) - मैं TIP31C. का उपयोग कर रहा हूँ
  • पुरुष और महिला पिन हेडर - वैकल्पिक, लेकिन अत्यधिक अनुशंसित

चरण 1: Pi. के लिए एक्सप्रेस डाउनलोड करना

Pi. के लिए एक्सप्रेस डाउनलोड कर रहा है
Pi. के लिए एक्सप्रेस डाउनलोड कर रहा है

मैं पाई को स्थापित करने के बारे में बहुत अधिक विस्तार में नहीं जा रहा हूं क्योंकि उन्हें स्थापित करने के लिए बहुत सारे ट्यूटोरियल हैं।

आपको क्या करना होगा जो मैं कवर नहीं कर रहा हूँ …

  • नवीनतम रास्पियन के साथ चमकती रास्पबेरी पाई
  • नेटवर्क कार्ड सेटअप करें ताकि आप Pi. से इंटरनेट एक्सेस कर सकें
  • रास्पबेरी पाई पर एक स्थिर आईपी सेट करें

अब यहाँ मज़ा शुरू होता है! हमें नोडजेएस, एनपीएम, एक्सप्रेस और एक्सप्रेस-जनरेटर स्थापित करने की आवश्यकता है।

सुडो एपीटी-अपडेट प्राप्त करें

sudo apt- नोडज npm. स्थापित करें

एक बार वे स्थापित हो जाने के बाद, निम्नलिखित चलाएँ

npm एक्सप्रेस एक्सप्रेस-जनरेटर स्थापित करें

एक्सप्रेस आपको अपने रास्पबेरी पाई के उपयोग के लिए एक बहुत ही बुनियादी वेबसर्वर बनाने की अनुमति देता है। एक्सप्रेस-जनरेटर सिर्फ एक एक्सप्रेस सर्वर के लिए फाइल बनाता है।

निर्देशिका में एक निर्देशिका और सीडी बनाएं। मैंने अपना piWebpage नाम दिया है। अब निम्नलिखित चलाएँ (चित्र में भी देखा गया)

एमकेडीआईआर पीआईवेबपेज

सीडी पीआईवेबपेज एक्सप्रेस --व्यू = ईजेएस वेबएप

यह सभी एक्सप्रेस फाइलों के साथ webApp नाम का एक फोल्डर जेनरेट करेगा। यदि आप बाद में इस वेबपेज के साथ और अधिक करने की योजना बना रहे हैं और आपको PUG पसंद है, तो --view=ejs को --view=pug से बदलें। हम वेबपेज को नहीं छूएंगे, इसलिए इस एप्लिकेशन के लिए, इससे कोई फर्क नहीं पड़ता कि हम क्या उपयोग करते हैं।

चरण 2: पाई सर्वर सेटअप

नई webApp निर्देशिका में ले जाएँ।

सीडी वेबएप

एनपीएम इंस्टॉल

npm install में कुछ समय लगेगा क्योंकि यह एक्सप्रेस के लिए सभी निर्भरताएँ स्थापित कर रहा है।

webApp फ़ोल्डर में setColor.py पेस्ट करें। इस फ़ाइल में मूल रंगों के लिए इसमें कुछ प्रीसेट हैं। आप जितना चाहें उतना जोड़ने के लिए स्वतंत्र महसूस करें। सीमा 0 से 255 है जहां 255 पूर्ण रंग है। कुछ बिंदु पर, मैं संभवतः रोशनी कम करने की क्षमता जोड़ूंगा, लेकिन अभी के लिए, वे पूर्ण चमक हैं।

मार्गों में ले जाएँ

सीडी मार्ग

अब index.js को संलग्न फाइल से बदलें। यह POST कमांड प्राप्त करने के लिए कुछ लाइनें जोड़ देगा जो कि Google होम भेजेगा। उस पोस्ट से, हम रंग का चयन करेंगे और पीआई को रोशनी समायोजित करने के लिए सेटकलर पायथन स्क्रिप्ट चलाने के लिए कहेंगे।

एक आखिरी बात… webApp फ़ोल्डर में वापस जाएं।

सीडी ~/पीआईवेबपेज/वेबएप

अपने पसंदीदा संपादक का उपयोग करके, नीचे दिए गए कोड को अपने webApp.js में पेस्ट करें और सहेजें। जब तक यह "module.exports = app;" से पहले है, तब तक कहीं भी ठीक है।

// सेटअप एलईडी हार्डवेयर ड्राइवरकॉन्स्ट {exec} = आवश्यकता ('child_process'); निष्पादन ('सुडो पिगपियोड', (गलती, स्टडआउट, स्टडर) => {अगर (गलती) {कंसोल। लॉग ('एलईडी ड्राइवर लोड करने में त्रुटि'); वापसी; } और कंसोल। लॉग ('एलईडी ड्राइवर सफलतापूर्वक लोड किया गया'); });

जैसा कि टिप्पणी कहती है, पीडब्लूएम सिग्नल के लिए पिगपियोड हार्डवेयर ड्राइवर है जिसका उपयोग हम एलईडी रंगों को समायोजित करने के लिए करेंगे। मेरा मानना है कि यह पहले से ही रास्पियन में स्थापित है, लेकिन यदि नहीं …

sudo apt-pigpiod स्थापित करें

अब असली परीक्षा के लिए! सर्वर शुरू!

DEBUG=webapp:* npm start

चरण 3: IFTTT सेटअप (ट्रिगर)

IFTTT सेटअप (ट्रिगर)
IFTTT सेटअप (ट्रिगर)
IFTTT सेटअप (ट्रिगर)
IFTTT सेटअप (ट्रिगर)

IFTTT बहुत कुछ कर सकता है, और मैं कुछ अनुप्रयोगों को देखने की अत्यधिक अनुशंसा करता हूं।

सबसे पहले, आपको एक खाता बनाना होगा। अपने Google होम से संबद्ध एक ही Google खाते का उपयोग करें, अन्यथा वे एक साथ समन्वयित नहीं होंगे। एक बार पूर्ण और लॉग इन करने के बाद, IFTTT पृष्ठ के ऊपरी दाएँ भाग पर क्लिक करें जहाँ यह आपका नाम और अवतार दिखाता है। फिर ड्रॉपडाउन से न्यू एप्लेट पर क्लिक करें।

यदि आप उत्सुक हैं, तो IFTTT का अर्थ है IF दिस दैट दैट अगर आपने पॉप अप स्क्रीन से ध्यान नहीं दिया। तो हम क्या चाहते हैं अगर Google सहायक है, तो वेबहुक हमारे विकल्प के रूप में है।

+इस पर क्लिक करके आगे बढ़ें जो एक खोज बार लोड करेगा। सर्च में गूगल असिस्टेंट टाइप करें और सर्च के नीचे आइकॉन पर क्लिक करें।

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

मैंने जिन 3 का उपयोग किया वे थे

एलईडी $

एलईडी $. सेट करें

एलईडी रंग $. सेट करें

अंतिम फ़ील्ड वह है जो आप चाहते हैं कि आपका Google होम आपकी आज्ञा कहने के बाद उत्तर दे। यह कुछ भी हो सकता है जो आप चाहते हैं, लेकिन मैंने रंग को $ पर सेट करने का उपयोग किया। $ का मतलब है कि वह रंग वापस दोहराएगी।

ट्रिगर बनाएं पर क्लिक करें

चरण 4: IFTTT सेटअप (कार्रवाई)

IFTTT सेटअप (कार्रवाई)
IFTTT सेटअप (कार्रवाई)
IFTTT सेटअप (कार्रवाई)
IFTTT सेटअप (कार्रवाई)

क्रिएट ट्रिगर पर क्लिक करने के बाद, आप अगर यह फिर उस दृश्य पर वापस लोड हो जाएंगे, लेकिन इसे Google सहायक लोगो से बदल दिया गया है। +that. पर क्लिक करके आगे बढ़ें

वही बात जो पहले आपको सर्च बार में ले आती है। वेबहुक टाइप करें और सर्च बार के नीचे वेबहुक आइकन पर क्लिक करें। वेबहुक के लिए कार्रवाई चुनें के तहत, केवल एक ही विकल्प है, इसलिए वेब अनुरोध करें पर क्लिक करें।

यहां वह जगह है जहां चीजें थोड़ी मुश्किल हो जाती हैं। चूँकि Google आपके घर का दूसरा कंप्यूटर नहीं है, इसलिए आपको अपने बाहरी IP पते की आवश्यकता होगी। इसके लिए कुछ पोर्ट फ़ॉरवर्डिंग की आवश्यकता होगी, लेकिन हम उस पर बाद में बात करेंगे। अपना बाहरी आईपी पता प्राप्त करने के लिए, https://canyouseeme.org/ पर जाएं।

URL फ़ील्ड में, https://xxx.xxx.xxx.xxx:3000/{{TextField}} टाइप करें (x आपका बाहरी IP पता होने के साथ)। यदि आप उत्सुक हैं, तो जब आप कोई आदेश देते हैं तो TextField में आपके द्वारा चुना गया रंग होगा। 3000 का उपयोग करने का कारण यह है कि वह पोर्ट है जिस पर रास्पबेरी पाई एक्सप्रेस सर्वर चल रहा है। (आप कोड में पोर्ट बदल सकते हैं, लेकिन हम एक्सप्रेस के लिए केवल डिफ़ॉल्ट सेटिंग्स का उपयोग कर रहे हैं)

विधि के लिए, पोस्ट का चयन करें।

सामग्री प्रकार के लिए, टेक्स्ट/सादा चुनें।

बॉडी के लिए, {{TextField}} टाइप करें

आप में से जो जानते हैं कि POST कमांड कैसे काम करता है, आप सोचेंगे कि यदि आप अनुरोध की बॉडी प्रॉपर्टी को पार्स करते हैं तो आपको रंग मिल जाएगा। किसी कारण से, अनुरोध के मुख्य भाग में कुछ भी नहीं डाला जाता है, इसलिए मैं वास्तव में रंग के लिए URL को पार्स कर रहा हूं। आशा है कि यह जल्द ही ठीक हो जाएगा, क्योंकि इससे index.js मार्ग में मेरा कोड सरल हो जाएगा। लेकिन मैं पीछे हटा।

अंत में, क्रिएट एक्शन पर क्लिक करें और फिर अगले पेज पर फिनिश करें। (मैंने सूचनाएं बंद कर दी हैं, लेकिन यह वरीयता है)

चरण 5: पोर्ट अग्रेषण

पोर्ट फॉरवार्डिंग
पोर्ट फॉरवार्डिंग
पोर्ट फॉरवार्डिंग
पोर्ट फॉरवार्डिंग

यह वह जगह है जहाँ चीजों को समझाना मुश्किल हो जाता है क्योंकि सभी राउटर अलग होते हैं…

अब हमारे पास पोर्ट 3000 का उपयोग करके Google हमारे घर में एक कमांड भेज रहा है, लेकिन यह नहीं जानता कि उसे LAN पर किस डिवाइस पर जाने की आवश्यकता है। इसका समाधान करने के लिए, हमें आपके रास्पबेरी पाई के स्थानीय आईपी पते पर पोर्ट 3000 को अग्रेषित करना होगा।

10.0.0.1 या 192.168.1.1 का उपयोग करके अपने राउटर में जाएं (मैंने इसे भी देखा है जहां अंतिम अंक 254 है) और पोर्ट फ़ॉरवर्डिंग ढूंढें। पोर्ट फ़ॉरवर्डिंग में, छवि के समान, आप एक नए डिवाइस (IFTTT) को नाम देंगे और पोर्ट (3000) को Pi के IP पते (मेरे मामले में 10.0.0.11) पर अग्रेषित करेंगे।

अपनी नई सेटिंग सहेजें, अपने राउटर को रीबूट करें, और यह सुनिश्चित करने के लिए जांचें कि आपका रास्पबेरी पाई सर्वर अभी भी चल रहा है। अगर यह नहीं चल रहा है, तो इसे फिर से शुरू करें।

उस आसान वेबसाइट https://canyouseeme.org/ पर वापस जाएं। आपके आईपी पते के नीचे, इसमें एक पोर्ट चेकर है। मान लें कि आपका पोर्ट फ़ॉरवर्डिंग सही है, 3000 टाइप करें और चेक पोर्ट हिट करें। इसे सफलता के साथ वापस आना चाहिए।

चरण 6: अब तक अपने काम की जाँच करना

अभी तक अपने काम की जाँच करना
अभी तक अपने काम की जाँच करना
अभी तक अपने काम की जाँच करना
अभी तक अपने काम की जाँच करना

अब… जिस क्षण का आप इंतजार कर रहे हैं… Google को LEDs नीला (यदि आपने मेरे उदाहरण का अनुसरण किया है) जैसी कोई कमांड बताएं।

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

(अगले चरण पर जाएं यदि यह चित्र के समान ही निकला हो)

अब यह देखने के लिए कुछ चीजें हैं कि क्या यह काम नहीं करता है …

तस्वीर में एक लाइन है जो कहती है

पोस्ट /रंग/नीला २०० २५०.४५८ एमएस - २

200 महत्वपूर्ण हिस्सा है। यदि आप 200 नहीं देख रहे हैं, तो एक खराब POST था जिसका अर्थ है कि आपके सर्वर को यह नहीं पता था कि डेटा का क्या करना है। चरण 2 पर वापस जाएं और अपनी index.js फ़ाइल देखें।

तस्वीर में भी

स्टडआउट: नीला

स्टेडर:

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

अंत में, अगर कुछ भी नहीं दिखा … आपका आईएफटीटीटी सही तरीके से सेटअप नहीं किया गया है या सर्वर से कनेक्ट करने में विफल रहा है। IFTTT पृष्ठ पर वापस जाएं, और शीर्ष नेविगेशन बार में, गतिविधि पर क्लिक करें। वहां, आप हर बार देख सकते हैं कि आपका ऐप कब चला है, और यदि कोई त्रुटि हुई है, तो आप देख सकते हैं कि यह क्या था। मैंने पीआई सर्वर के साथ एक Google कमांड बनाया और तस्वीर में त्रुटि मिली।

चरण 7: सर्किट का निर्माण

सर्किट का निर्माण
सर्किट का निर्माण
सर्किट का निर्माण
सर्किट का निर्माण
सर्किट का निर्माण
सर्किट का निर्माण

हमें ऐसा करने की आवश्यकता का कारण यह है कि रास्पबेरी पाई में पर्याप्त शक्ति नहीं है … तो समाधान है … अधिक शक्ति (टिम टूल मैन टेलर दूरी में घुरघुराहट करता है)। एकेए एक और बिजली की आपूर्ति (12 वी 2 ए)

सर्किट भाग के लिए सामग्री

  • protoboard
  • वायर
  • आरजीबी एलईडी पट्टी
  • 12 वी बिजली की आपूर्ति - 2 एएमपीएस से ऊपर कुछ भी ठीक होना चाहिए
  • डीसी बैरल जैक - आपकी बिजली आपूर्ति के समान आकार
  • NPN BJT पावर ट्रांजिस्टर (x3) - मैं TIP31C. का उपयोग कर रहा हूँ
  • पुरुष और महिला पिन हेडर

पाई ज़ीरो के GPIO के साथ इंटरवेब से चुराई गई आसान तस्वीर का उपयोग करके, आप देख सकते हैं कि GPIO17, GPIO18, और GPIO 27 एक GND के साथ एक दूसरे के ठीक बगल में हैं। हम 4 पिनों के उस वर्ग का उपयोग करेंगे (पिन 11, 12, 13, 14)।

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

सर्किट स्पष्टीकरण

आप में से जो लोग ट्रांजिस्टर से अपरिचित हैं, उनके लिए ट्रांजिस्टर मूल रूप से एक डिजिटल स्विच है। पाई से GPIO पिन तीन स्विच (लाल, हरा और नीला) को ट्रिगर करता है। सर्किट आरेख में RED को विशेष रूप से देखते हुए, जब GPIO_17 चालू होता है, तो RED को GND से जोड़ने वाला स्विच "बंद" हो जाता है, जिससे लाल बत्ती चालू हो जाती है। जब GPIO_17 बंद हो जाता है, तब स्विच खुला होता है और इस प्रकार रोशनी बंद हो जाती है।

आधार - जीपीआईओ

कलेक्टर - रंग (लाल, हरा, नीला)

एमिटर - ग्राउंड (विद्युत आपूर्ति और पाई दोनों का)

पाई की जमीन को बिजली की आपूर्ति की जमीन से जोड़ना सुनिश्चित करें। रोशनी अभी भी काम करेगी, लेकिन जमीन से जुड़े होने तक वे बहुत मंद दिखाई देंगी।

मेरे प्रोटोबार्ड पर एक चौथा ट्रांजिस्टर दिखने वाला उपकरण है। यह एक L7805CV है जिसका उपयोग 12V को 5V में बदलने के लिए किया जाता है ताकि मैं उसी सर्किट पर Pi को पावर दे सकूं। इसने काम किया लेकिन गर्म होता रहा, इसलिए मैंने इसके कनेक्शन हटा दिए।

चरण 8: इसका परीक्षण करें

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

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

जांच सूची

  • तारों की जाँच करें
  • पावर पाई
  • बिजली का सर्किट
  • सर्वर प्रारंभ करें (DEBUG=webapp:* npm start जबकि ~/piWebpage/webApp निर्देशिका में)
  • Google को अपनी बोली लगाने के लिए कहें!

बधाई हो आपने कुछ भी नहीं उड़ाया, और अब आप Google होम से अपने एलईडी को नियंत्रित कर सकते हैं।

यदि आपको कोई समस्या हो रही है तो टिप्पणी दें, और मैं आपसे संपर्क करने की पूरी कोशिश करूंगा!

सिफारिश की: