विषयसूची:
- चरण 1: प्रारंभिक सेटअप
- चरण 2: सेटअप Ngrok
- चरण 3: लाइट स्विच नियंत्रण के लिए पायथन स्क्रिप्ट
- चरण 4: फैन कंट्रोल के लिए पायथन स्क्रिप्ट
- चरण 5: एलआईआरसी पैकेज को स्थापित और कॉन्फ़िगर करना
- चरण 6: टीवी नियंत्रण के लिए पायथन स्क्रिप्ट
- चरण 7: एडब्ल्यूएस खाते में लॉग इन करें
- चरण 8: टीवी एलेक्सा स्किल सेटअप
- स्टेप 9: लाइट्स एलेक्सा स्किल सेटअप
- चरण 10: फैन एलेक्सा स्किल सेटअप
- चरण 11: सर्किट का निर्माण करें
- चरण 12: एलेक्सा कमांड
वीडियो: एलेक्सा और रास्पबेरी पाई के साथ लिविंग रूम को नियंत्रित करें: 12 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:18
एलेक्सा (अमेज़ॅन इको या डॉट) और रास्पबेरी पाई जीपीआईओ के साथ अपने लिविंग रूम टीवी, लाइट और फैन को नियंत्रित करें।
चरण 1: प्रारंभिक सेटअप
मैंने https://www.raspberrypi.org/downloads/raspbian/ से डाउनलोड की गई रास्पबेरी पाई 2 और एक रास्पियन जेसी छवि का उपयोग किया
एक बार लॉग इन करने के बाद, आवश्यक पैकेज और पायथन लाइब्रेरी स्थापित करने के लिए निम्नलिखित कमांड दर्ज करें:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install फ्लास्क फ्लास्क-पूछें sudo apt-lirc इंस्टॉल करें
चरण 2: सेटअप Ngrok
ngrok.com/download पर जाएं और नवीनतम लिनक्स एआरएम रिलीज को ज़िप के रूप में प्राप्त करें और होम डायरेक्टरी के अंदर अनज़िप करें:
अनज़िप /home/pi/ngrok-stable-linux-arm.zip
एक नया टर्मिनल खोलें और निम्न कमांड दर्ज करें:
सुडो./ngrok http 4000
एक और नया टर्मिनल खोलें और निम्न कमांड दर्ज करें:
सुडो./ngrok http 4500
तीसरा नया टर्मिनल खोलें और निम्न कमांड दर्ज करें:
सुडो./ngrok http 5000
चरण 3: लाइट स्विच नियंत्रण के लिए पायथन स्क्रिप्ट
एक नया टर्मिनल सत्र खोलें और light_control.py नाम की एक नई अजगर फ़ाइल बनाएँ:
नैनो light_control.py
निम्न कोड को नई फ़ाइल में कॉपी/पेस्ट करें:
फ्लास्क आयात फ्लास्क से फ्लास्क_आस्क आयात से पूछें, स्टेटमेंट, कन्वर्ट_एरर्स आयात आरपीआई। जीपीआईओ को जीपीआईओ आयात लॉगिंग आयात ओएस जीपीआईओ.सेटमोड (जीपीआईओ. फ्लास्क_आस्क")। सेटलेवल (लॉगिंग। डीईबीयूजी) @ask.intent ('लाइटकंट्रोलइंटेंट', मैपिंग = {'स्टेटस': 'स्टेटस'}) डिफ लाइट_कंट्रोल (स्टेटस): कोशिश करें: पिननम = 27 अपवाद को छोड़कर ई: रिटर्न स्टेटमेंट ('पिन नंबर मान्य नहीं है।') GPIO.setup(pinNum, GPIO. OUT) यदि स्थिति ['on', 'high'] में है: GPIO.output(pinNum, GPIO. LOW) यदि स्थिति ['off', ' Low']: GPIO.output(pinNum, GPIO. HIGH) रिटर्न स्टेटमेंट ('टर्निंग {} लिविंग रूम लाइट्स'। फॉर्मेट (स्टेटस)) अगर _name_ == '_main_': पोर्ट = 4000 ऐप.रन (होस्ट =') 0.0.0.0', पोर्ट = पोर्ट)
फ़ाइल को सहेजें और बंद करें।
फ्लास्क सर्वर को इसके साथ शुरू करें:
सुडो पायथन light_control.py
ngrok और light_control.py दोनों को चालू रहने दें
चरण 4: फैन कंट्रोल के लिए पायथन स्क्रिप्ट
एक नया टर्मिनल सत्र खोलें और fan_control.py नामक एक नई पायथन फ़ाइल बनाएं:
नैनो fan_control.py
निम्नलिखित कोड को नई फ़ाइल में कॉपी/पेस्ट करें:
फ्लास्क आयात फ्लास्क से
Flask_ask आयात से पूछें, कथन, Convert_errors RPIO आयात करें।.setLevel(logging. DEBUG) @ask.intent('FanControlIntent', मैपिंग={'status': 'status'}) def fan_control(status): try: pinNum = 22 अपवाद को छोड़कर e: रिटर्न स्टेटमेंट ('पिन नंबर') मान्य नहीं है।') GPIO.setup(pinNum, GPIO. OUT) यदि स्थिति ['चालू', 'उच्च'] में है: GPIO.output(pinNum, GPIO. LOW) यदि स्थिति ['off', 'low'] में है: GPIO.output(pinNum, GPIO. HIGH) रिटर्न स्टेटमेंट ('टर्निंग {} लिविंग रूम लाइट्स'। फॉर्मेट (स्टेटस)) अगर _name_ == '_main_': पोर्ट = 4500 ऐप.रन (होस्ट = '0.0.0.0) ', पोर्ट = पोर्ट)
फ़ाइल को सहेजें और बंद करें।
फ्लास्क सर्वर को इसके साथ शुरू करें:
सूडो अजगर fan_control.py
ngrok, light_control.py, और fan_control.py दोनों को चालू रहने दें
चरण 5: एलआईआरसी पैकेज को स्थापित और कॉन्फ़िगर करना
टीवी को नियंत्रित करने के लिए आपको अपने विशिष्ट टीवी के लिए इन्फ्रारेड (आईआर) सिग्नल उत्पन्न करने के लिए रास्पबेरी पाई पर एक पिन कॉन्फ़िगर करना होगा। टर्मिनल खोलें और एलआईआरसी पैकेज स्थापित करने के लिए निम्न कमांड दर्ज करें जो कई रिमोट कंट्रोल के इन्फ्रारेड सिग्नल का अनुकरण करता है।
sudo apt-lirc स्थापित करें
इसके बाद, आपको lirc_rpi कर्नेल मॉड्यूल को सक्षम और कॉन्फ़िगर करने की आवश्यकता है। ऐसा करने के लिए, नैनो संपादक में मॉड्यूल खोलें
सुडो नैनो / आदि / मॉड्यूल
फ़ाइल में नीचे की पंक्तियाँ जोड़ें (सुनिश्चित करें कि gpio_out_pin पैरामीटर IR LED को नियंत्रित करने वाले पिन को इंगित करता है):
lirc_devlirc_rpi gpio_out_pin=17
इसके बाद, नैनो के साथ पहले की तरह हार्डवेयर.कॉन्फ फाइल को नैनो में खोलें:
सुडो नैनो /etc/lirc/hardware.conf
फ़ाइल में निम्न कॉन्फ़िगरेशन जोड़ें:
LIRCD_ARGS="--uinput"LOAD_MODULES=true
ड्राइवर = "डिफ़ॉल्ट"
DEVICE="/dev/lirc0"
मॉड्यूल = "lirc_rpi"
LIRCD_CONF=""
LIRCMD_CONF=""
अब, रास्पबेरी पाई को रिबूट करें:
सुडो रिबूट
चरण 6: टीवी नियंत्रण के लिए पायथन स्क्रिप्ट
एक नया टर्मिनल सत्र खोलें और ir_control.py नाम की एक नई अजगर फ़ाइल बनाएँ:
नैनो ir_control.py
lirc-remotes.sourceforge.net/remotes-table… पर जाएं
ऐसा रिमोट ढूंढें जो आपके टीवी के अनुकूल हो। मेरे मामले में मेरे पास एक सान्यो टीवी है जो sanyo-tv01 कॉन्फ़िग फ़ाइल के साथ काम करता है। एक बार जब आपको कोई फ़ाइल मिल जाए जो आपके टीवी का समर्थन करती है तो उसे खोलें और कमांड विकल्पों को देखें।
निम्नलिखित कोड को नई फ़ाइल में कॉपी/पेस्ट करें और sanyo-tv01 को उस फ़ाइल नाम से बदलें जो आपके टीवी के साथ काम करता है। यह भी सुनिश्चित करें कि टीवी कमांड आपके टीवी कॉन्फिग फाइल द्वारा समर्थित हैं; अपने टीवी की कॉन्फ़िग फ़ाइल के साथ ठीक से काम करने के लिए आपको KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN, और KEY_MUTE कमांड को संशोधित करना पड़ सकता है:
फ्लास्क आयात फ्लास्क से फ्लास्क_आस्क आयात से पूछें, स्टेटमेंट, कन्वर्ट_एरर्स आयात आरपीआई। जीपीआईओ को जीपीआईओ आयात लॉगिंग आयात ओएस जीपीआईओ.सेटमोड (जीपीआईओ. फ्लास्क_आस्क")। सेटलेवल (लॉगिंग। डीईबीयूजी) @ask.intent ('GPIOControlIntent', मैपिंग = {'स्टेटस': 'स्टेटस'}) #'पिन': 'पिन'}) def tv_function (स्टेटस): अगर स्टेटस इन ['टर्न ऑन']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_POWER") रिटर्न स्टेटमेंट('Turning on the TV') elif status in ['turn off']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_POWER") रिटर्न स्टेटमेंट ('टीवी बंद करना') एलिफ स्थिति ['इनपुट बदलें'] में: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VIDEO") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VIDEO") रिटर्न स्टेटमेंट ('टीवी पर इनपुट बदलना') एलिफ स्टेटस इन ['वॉल्यूम बढ़ाएं']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("भेजेंEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("Irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") रिटर्न स्टेटमेंट ('टीवी पर वॉल्यूम बढ़ाना') एलिफ स्टेटस ['कम वॉल्यूम'] में: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") ") रिटर्न स्टेटमेंट ('टीवी पर वॉल्यूम घटाना') एलिफ स्टेटस ['म्यूट'] में: os.system("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") रिटर्न स्टेटमेंट ('टीवी को म्यूट करना') एलिफ स्टेटस ['अनम्यूट' में ']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") रिटर्न स्टेटमेंट ('टीवी को अनम्यूट करना') और: रिटर्न स्टेटमेंट ('रिमोट फंक्शन नहीं मिला।') अगर _name_ == '_main_': पोर्ट = 5000 ऐप रन (होस्ट = '0.0.0.0', पोर्ट = पोर्ट)
फ़ाइल को सहेजें और बंद करें।
फ्लास्क सर्वर को इसके साथ शुरू करें:
सूडो पायथन ir_control.py
सभी तीन ngrok टर्मिनल विंडो, light_control.py, fan_control.py, और ir_control.py को चालू रहने दें
चरण 7: एडब्ल्यूएस खाते में लॉग इन करें
सबसे पहले अपना AWS डेवलपर अकाउंट बनाएं या लॉग इन करें और एलेक्सा स्किल्स की अपनी सूची खोलें।
चरण 8: टीवी एलेक्सा स्किल सेटअप
"एक नया कौशल जोड़ें" चुनें।
स्किल नेम को 'ट्रिगर टीवी' और इनवोकेशन नेम को उस शब्द (शब्दों) पर सेट करें, जिसका इस्तेमाल आप स्किल को एक्टिवेट करने के लिए करना चाहते हैं।
जारी रखने के लिए आगे दबाएँ।
निम्नलिखित को 'इरादा स्कीमा' बॉक्स में कॉपी/पेस्ट करें:
{ "इरादे": [{
"स्लॉट": [{"नाम": "स्थिति", "प्रकार": "TV_Function"}, {"नाम": "राशि", "प्रकार": "AMAZON. NUMBER" }], "इरादा": "GPIOControlIntent" " }] }
अगला, 'स्लॉट प्रकार जोड़ें' पर क्लिक करें
'एंटर टाइप' फील्ड में TV_Function दर्ज करें।
'मान दर्ज करें' फ़ील्ड में निम्नलिखित मान दर्ज करें:
चालू करो
परिवर्तन बंद करें इनपुट में वृद्धि मात्रा में कमी वॉल्यूम कम करें म्यूट अनम्यूट करें
इसके बाद, निम्नलिखित को 'नमूना कथन' बॉक्स में कॉपी/पेस्ट करें:
GPIOControlIntent {status}
GPIOControlIntent {status} द्वारा {राशि}
जारी रखने के लिए आगे दबाएँ।
सेवा समापन बिंदु प्रकार के रूप में 'HTTPS' का चयन करें और एक क्षेत्र का चयन करें। चरण 2 से ngrok URL दर्ज करें और 'अगला' पर क्लिक करें। यूआरएल कुछ ऐसा होना चाहिए:
ed6ea04d.ngrok.io
जारी रखने के लिए 'अगला' पर क्लिक करें और 'सहेजें' दबाएं।
स्टेप 9: लाइट्स एलेक्सा स्किल सेटअप
खुला कौशल बंद करें और "एक नया कौशल जोड़ें" चुनें।
स्किल नेम को 'लाइट्स कंट्रोल' और इनवोकेशन नेम को उस शब्द (शब्दों) पर सेट करें, जिसका इस्तेमाल आप स्किल को एक्टिवेट करने के लिए करना चाहते हैं।
जारी रखने के लिए आगे दबाएँ। निम्नलिखित को 'इरादा स्कीमा' बॉक्स में कॉपी/पेस्ट करें:
{
"इरादे": [{"स्लॉट": [{"नाम": "स्थिति", "प्रकार": "LIGHTS_CONTROL" }], "इरादा": "लाइट्सकंट्रोलइंटेंट" }] }
इसके बाद, 'स्लॉट टाइप जोड़ें' पर क्लिक करें।
'एंटर टाइप' फील्ड में "LIGHTS_CONTROL" दर्ज करें।
'मान दर्ज करें' फ़ील्ड में निम्नलिखित मान दर्ज करें:
पर
बंद
इसके बाद, निम्नलिखित को 'नमूना कथन' बॉक्स में कॉपी/पेस्ट करें:
LightsControlIntent टर्न {status}
जारी रखने के लिए आगे दबाएँ। सेवा समापन बिंदु प्रकार के रूप में 'HTTPS' चुनें और एक क्षेत्र चुनें। चरण 2 से ngrok URL दर्ज करें और 'अगला' पर क्लिक करें। यूआरएल कुछ ऐसा होना चाहिए:
ed6ea04d.ngrok.io
जारी रखने के लिए 'अगला' पर क्लिक करें और 'सहेजें' दबाएं।
चरण 10: फैन एलेक्सा स्किल सेटअप
खुला कौशल बंद करें और "एक नया कौशल जोड़ें" चुनें।
कौशल नाम को 'प्रशंसक नियंत्रण' और आमंत्रण नाम को उस शब्द (शब्दों) पर सेट करें जिसका उपयोग आप कौशल को सक्रिय करने के लिए करना चाहते हैं।
जारी रखने के लिए आगे दबाएँ।
निम्नलिखित को 'इरादा स्कीमा' बॉक्स में कॉपी/पेस्ट करें:
{
"इरादे": [{"स्लॉट": [{"नाम": "स्थिति", "प्रकार": "FAN_CONTROL"}], "इरादा": "FANControlIntent" }] }
इसके बाद, 'स्लॉट टाइप जोड़ें' पर क्लिक करें।
'एंटर टाइप' फील्ड में "FAN_CONTROL" दर्ज करें।
'मान दर्ज करें' फ़ील्ड में निम्नलिखित मान दर्ज करें:
पर
बंद
इसके बाद, निम्नलिखित को 'नमूना कथन' बॉक्स में कॉपी/पेस्ट करें:
FANControlIntent टर्न {status}
जारी रखने के लिए आगे दबाएँ। सेवा समापन बिंदु प्रकार के रूप में 'HTTPS' चुनें और एक क्षेत्र चुनें। चरण 2 से ngrok URL दर्ज करें और 'अगला' पर क्लिक करें। यूआरएल कुछ ऐसा होना चाहिए:
ed6ea04d.ngrok.io
जारी रखने के लिए 'अगला' पर क्लिक करें और 'सहेजें' दबाएं।
चरण 11: सर्किट का निर्माण करें
आरेख में दिखाए अनुसार सर्किट को कनेक्ट करें। मैंने अपने घरों AC 120v लाइन और ग्राउंड से कनेक्ट करने के लिए JBtek 8 Channel DC 5V रिले मॉड्यूल का उपयोग किया।
चरण 12: एलेक्सा कमांड
अब आपके लिविंग रूम को कंट्रोल करने के लिए एलेक्सा से निम्न कमांड बोल सकते हैं।
सिफारिश की:
आईओटी और एडब्ल्यूएस के साथ एलेक्सा वॉयस नियंत्रित रास्पबेरी पाई ड्रोन: 6 कदम (चित्रों के साथ)
आईओटी और एडब्ल्यूएस के साथ एलेक्सा वॉयस नियंत्रित रास्पबेरी पाई ड्रोन: हाय! मेरा नाम अरमान है। मैं मैसाचुसेट्स का 13 वर्षीय लड़का हूं। यह ट्यूटोरियल दिखाता है, जैसा कि आप शीर्षक से अनुमान लगा सकते हैं, रास्पबेरी पाई ड्रोन कैसे बनाया जाए। यह प्रोटोटाइप दर्शाता है कि ड्रोन कैसे विकसित हो रहे हैं और यह भी कि वे इसमें कितनी बड़ी भूमिका निभा सकते हैं
शेली के साथ मूवी के लिए लिविंग रूम: 4 कदम
शेली के साथ मूवी के लिए लिविंग रूम: प्रोजेक्ट एग्जीक्यूटिव सारांश मेरे कमरे में रहने वाले कमरे को मूवी देखने के लिए आरामदायक बनाने के लिए Google होम रूटीन का उपयोग करके एक बहुत ही सरल स्वचालन कैसे बनाएं
रास्पबेरी पाई के साथ एलईडी ब्लिंक - रास्पबेरी पाई पर GPIO पिन का उपयोग कैसे करें: 4 कदम
रास्पबेरी पाई के साथ एलईडी ब्लिंक | रास्पबेरी पाई पर GPIO पिन का उपयोग कैसे करें: हाय दोस्तों इस निर्देश में हम सीखेंगे कि रास्पबेरी पाई के GPIO का उपयोग कैसे करें। अगर आपने कभी Arduino का इस्तेमाल किया है तो शायद आप जानते हैं कि हम LED स्विच आदि को इसके पिन से जोड़ सकते हैं और इसे इस तरह काम कर सकते हैं। एलईडी ब्लिंक करें या स्विच से इनपुट प्राप्त करें ताकि
रास्पबेरी पाई 3 बी में एचडीएमआई के बिना रास्पियन स्थापित करना - रास्पबेरी पाई 3बी के साथ शुरुआत करना - अपना रास्पबेरी पाई सेट करना 3: 6 कदम
रास्पबेरी पाई 3 बी में एचडीएमआई के बिना रास्पियन स्थापित करना | रास्पबेरी पाई 3बी के साथ शुरुआत करना | अपना रास्पबेरी पाई 3 सेट करना: जैसा कि आप में से कुछ लोग जानते हैं कि रास्पबेरी पाई कंप्यूटर काफी शानदार हैं और आप पूरे कंप्यूटर को सिर्फ एक छोटे बोर्ड पर प्राप्त कर सकते हैं। रास्पबेरी पाई 3 मॉडल बी में क्वाड-कोर 64-बिट एआरएम कोर्टेक्स ए 53 है। 1.2 गीगाहर्ट्ज़ पर क्लॉक किया गया। यह पाई 3 को लगभग 50
रास्पबेरी पाई में एलेक्सा और गूगल असिस्टेंट के साथ एक साथ बात करें: 4 कदम
रास्पबेरी पाई में एलेक्सा और गूगल असिस्टेंट के साथ बात करें: रास्पबेरी पाई में एक ही समय में अमेज़ॅन एलेक्सा और गूगल असिस्टेंट को चलाएं। उनके नामों में से किसी एक को बुलाओ, वे प्रतिक्रिया के लिए अपने स्वयं के एल ई डी और रिंग ध्वनियां चालू करते हैं। फिर आप कुछ अनुरोध पूछते हैं और वे क्रमशः आपको इसका उत्तर देते हैं। आप जान सकते हैं उनके चार