- हार्डवेयर आवश्यकताएँ
- एलेक्सा वॉयस के लिए प्रोजेक्ट फ्लो एलईडी
- संचार के लिए एक प्रवेश खाता स्थापित करना
- एलेक्सा को IFTTT का उपयोग करके Iaf को IafTT से लिंक करें
- ESP12 कोड स्पष्टीकरण
- काम कर रहे:
पिछले ट्यूटोरियल में हमने देखा है कि कैसे हम Amazon Echo स्पीकर का निर्माण कर सकते हैं और फिर एलेक्सा वॉइस का उपयोग करके किसी भी रास्पबेरी पाई GPIO को कैसे नियंत्रित कर सकते हैं। अब हम AlexaPi और ESP-12E (या किसी भी ESP बोर्ड) का उपयोग करके दुनिया में कहीं से भी घरेलू उपकरणों को नियंत्रित करने के लिए IoT प्रोजेक्ट बना रहे हैं ।
हार्डवेयर आवश्यकताएँ
- इसमें स्थापित AVS के साथ रास्पबेरी पाई
- USB 2.0 mic / वेब कैमरा
- ईएसपी -12 ई
- रिले मॉड्यूल
- एलईडी / एसी बल्ब
आपको अपने रास्पबेरी पाई को एलेक्सा वॉयस सर्विस के साथ तैयार करना चाहिए, जिसमें ठीक से कॉन्फ़िगर किया गया अमेज़ॅन डेवलपर अकाउंट हो। तो एलेक्सा सेवाओं को तैयार करने के लिए नीचे दिए गए ट्यूटोरियल से गुजरें।
- रास्पबेरी पाई का उपयोग करके अपने अमेज़ॅन इको का निर्माण करें
एलेक्सा वॉयस के लिए प्रोजेक्ट फ्लो एलईडी
हम इस IoT नियंत्रित एलईडी परियोजना के लिए फ्लोचार्ट का पालन करेंगे:
तो, प्रक्रिया कुछ इस तरह है। सबसे पहले, USB माइक के माध्यम से रास्पबेरी पाई को इनपुट दिया जाता है । अब, यह रिकॉर्डिंग एलेक्सा वॉयस सेवाओं के लिए भेजी जाती है और आवाज पहचानने के बाद, AVS ने IFTTT को डेटा भेजा और यह IFTTT में स्थिति को ट्रिगर करता है। नुस्खा के अनुसार, IFTTT एक कार्रवाई करने के लिए MQTT दलाल को Adafruit IO को कमांड भेजेगा । तब ESP 12e MQTT प्रोटोकॉल के माध्यम से Adafruit IO से डेटा प्राप्त करेगा और एलईडी कमांड के अनुसार ON / OFF हो जाएगा।
यहाँ हमने माइक्रोफोन के लिए USB WebCam का उपयोग किया है। हमने पहले ही एक बल्ब चालू करने के लिए एलेक्सा वॉयस सेवा का उपयोग किया है, लेकिन यह केवल उन उपकरणों को संभाल सकता है जो स्थानीय रूप से जुड़े हुए हैं।
जैसा कि हम मानते हैं कि आपके पास पहले से ही एलेक्सा वॉयस सेवाओं के साथ रास्पबेरी पाई स्थापित है, इसलिए हम दो चरणों के साथ शेष हैं, जिसे हम एक के बाद एक समझाएंगे:
- संचार के लिए एक प्रवेश खाता स्थापित करना
- एलेक्सा को IFTTT का उपयोग करके Iaf को IafTT से लिंक करें
- ESP12 में कोड अपलोड करें
संचार के लिए एक प्रवेश खाता स्थापित करना
सबसे पहले, हम Adafruit IO में एक फीड बनाएंगे । फ़ीड IFTTT द्वारा भेजे गए डेटा को संग्रहीत करता है। फ़ीड बनाने के लिए इन चरणों का पालन करें:
चरण 1: - अपने क्रेडेंशियल के साथ प्रवेश IO में प्रवेश करें या खाता न होने पर साइन अप करें।
चरण 2: - मेरे खाते पर क्लिक करें -> डैशबोर्ड
चरण 3: - क्रिया पर क्लिक करें और एक नया डैशबोर्ड बनाएं ।
स्टेप 4: - अपने फीड में नाम और विवरण दें और क्रिएट पर क्लिक करें ।
चरण 5: - कुंजी बटन पर क्लिक करें और एआईओ कुंजी को नोट करें, हम अपने कोड में इस कुंजी का उपयोग करेंगे।
स्टेप 6: - नया ब्लॉक बनाने के लिए '+' बटन पर क्लिक करें और टॉगल बटन पर क्लिक करें।
स्टेप 7: - अब, फीड का नाम डालें और क्रिएट पर क्लिक करें । फिर फ़ीड का चयन करें और नेक्स्ट स्टेप पर क्लिक करें।
स्टेप 8: - ब्लॉक सेटिंग्स में, बटन ऑन टेक्स्ट फील्ड में '1' और बटन ऑफ टेक्स्ट फील्ड में '0' लिखें ।
चरण 9: - आपका फ़ीड सफलतापूर्वक बनाया गया है।
एलेक्सा को IFTTT का उपयोग करके Iaf को IafTT से लिंक करें
IFTTT में एप्लेट / रेसिपी बनाने के लिए इन चरणों का पालन करें:
चरण 1: - अगर आपके पास इस पर कोई खाता नहीं है तो अपने क्रेडेंशियल या साइन अप के साथ IFTTT में लॉगिन करें ।
चरण 2: - मेरे सेब पर, नए एप्लेट पर क्लिक करें
स्टेप 3: - इस पर + क्लिक करें
चरण 4: - अमेज़ॅन एलेक्सा खोजें और उस पर क्लिक करें, अपने अमेज़न डेवलपर खाते के विवरण के साथ साइन इन करें।
चरण 5: - ट्रिगर चुनें, एक विशिष्ट वाक्यांश कहें
चरण 6: - वाक्यांश के रूप में "प्रकाश चालू करें " प्रदान करें, क्रिएट ट्रिगर पर क्लिक करें ।
स्टेप 7: - + पर क्लिक करें
Step 8: - Adafruit सर्च करें और उस पर क्लिक करें।
चरण 9: - अपने क्रेडेंशियल्स का उपयोग करके प्रवेश खाता में प्रवेश करें। Adafruit को Send data पर क्लिक करें ।
उस फ़ीड नाम का चयन करें जिसे आपने अभी Adafruit IO में बनाया था। अब, '1' को डेटा में सेव करने के लिए दें, इसका मतलब है कि LED ऑन होगी। क्रिएट एक्शन पर क्लिक करें ।
चरण 10: - एलईडी बंद करने के लिए एप्लेट बनाने के लिए समान चरणों का पालन करें । फ़ील्ड को बचाने के लिए डेटा में बस '0' डालें। सभी चरण समान रहते हैं।
आपने अपना आधा काम कर लिया है। अब, यह आपके ESP-12E को प्रोग्राम करने का समय है।
ESP12 कोड स्पष्टीकरण
हम Arduino IDE के साथ ESP12 प्रोग्राम करेंगे। इस ट्यूटोरियल के अंत में पूरा कोड दिया गया है।
सबसे पहले, हमें एक Adafruit Mqtt लाइब्रेरी की आवश्यकता है जिसे इस लिंक से डाउनलोड किया जा सकता है। बस Arduino IDE खोलें। उदाहरणों पर जाएं -> एडफ्रूट mqtt लाइब्रेरी -> mqtt_esp8266
हम इस कोड को अपनी AIO कुंजियों और Wi-Fi क्रेडेंशियल के अनुसार संपादित करेंगे ।
सबसे पहले, हमने ESP8266WIFI और Adafruit MQTT के लिए सभी पुस्तकालयों को शामिल किया ।
#शामिल
हमने आपके वाई-फाई के लिए SSID और पासवर्ड को परिभाषित किया है, जिससे आप अपना ESP-12e कनेक्ट करना चाहते हैं।
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
यह खंड Adafruit सर्वर और सर्वर पोर्ट को परिभाषित करता है जो क्रमशः " io.adafruit.com " और " 1883 " के रूप में तय किया गया है।
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
अपने उपयोगकर्ता नाम और AIO कुंजियों के साथ नीचे फ़ील्ड बदलें, जिन्हें आपने फ़ीड बनाते समय Adafruit साइट से कॉपी किया है।
#define AIO_USERNAME "********" #define AIO_KEY "*******************************"
फिर MQTT सर्वर से कनेक्ट करने के लिए एक ESP8266 WiFiClient क्लास बनाएं।
WiFiClient क्लाइंट;
WiFi क्लाइंट और MQTT सर्वर और लॉगिन विवरण में पास करके MQTT क्लाइंट क्लास सेट करें।
Adafruit_MQTT_Client mqtt (और ग्राहक, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
परिवर्तनों की सदस्यता के लिए 'प्रकाश' नामक फ़ीड सेट करें।
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
में सेटअप समारोह, हम ईएसपी-12e का पिन आप उत्पादन प्राप्त करना चाहते हैं, जिस पर घोषणा करते हैं। मैं आउटपुट के रूप में D0 पिन का उपयोग कर रहा हूं। फिर, हम ईएसपी -12 ई को वाई-फाई एक्सेस प्वाइंट से जोड़ते हैं।
शून्य सेटअप () { Serial.begin (115200); देरी (10); पिनमोड (D0, OUTPUT); Serial.println (F ("Adafruit MQTT डेमो")); // वाईफाई एक्सेस प्वाइंट से कनेक्ट करें। धारावाहिक.प्रदर्शन (); धारावाहिक.प्रदर्शन (); Serial.print ("कनेक्ट करना"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); जबकि (WiFi.status ()! = WL_CONNECTED) { …। …। …
लाइट फीड के लिए MQTT सब्सक्रिप्शन सेटअप करें।
mqtt.subscribe (& light); }
में पाश समारोह, हम जाएगा सुनिश्चित करना है कि MQTT सर्वर से कनेक्शन MQTT_connect () का उपयोग कर जीवित है; समारोह।
शून्य लूप () { MQTT_connect ();
अब, हम अपने 'लाइट' फीड को सब्सक्राइब करते हैं और adafruit IO से स्ट्रिंग प्राप्त करते हैं और इस स्ट्रिंग को atoi () का उपयोग करके संख्या में परिवर्तित करते हैं ; फ़ंक्शन और डिजिटल नंबर () का उपयोग करके PIND0 को यह संख्या लिखें ; समारोह।
Adafruit_MQTT_Subscribe * सदस्यता; जबकि ((सदस्यता = mqtt.readSubscription (5000))) { if (सदस्यता == & प्रकाश) { Serial.print (F ("Got_light:")); सिरियल.प्रिंट्लन ((चार *) लाइट.स्ट्रेड्रेड); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, संख्या); }
काम कर रहे:
अपने ESP-12E को लैपटॉप से कनेक्ट करें और कोड के नीचे अपलोड करें (कोड में अपने क्रेडेंशियल्स को संपादित करना न भूलें)।
D0 पिन करने के लिए एक एलईडी या रिले कनेक्ट करें। अब, सुनिश्चित करें कि आपकी एलेक्सा सेवा आपके आरपीआई पर चल रही है।
हर बार जब आप एक कमांड भेजना चाहते हैं, तो आपको "एलेक्सा" कहकर एलेक्सा सेवा को जगाने की आवश्यकता होती है। आपको बीप की आवाज सुनाई देगी। एक बार जब आप बीप सुन लेते हैं, तो कहेंगे “ एलेक्सा ट्रिगर लाइट पर। "आप देख सकते हैं कि प्रकाश पल भर में चालू हो जाता है। और फिर यदि आप कहते हैं " एलेक्सा ट्रिगर लाइट बंद करें ", प्रकाश बंद होना चाहिए।
बस…। आप उपरोक्त कोड में ESP-12E के GPIO पिन जोड़कर और IFTTT में विभिन्न वाक्यांशों के साथ अलग Applets बनाकर अधिक उपकरण जोड़ सकते हैं।
नीचे पूर्ण कोड और प्रदर्शन वीडियो देखें। साथ ही हमारे सभी होम ऑटोमेशन प्रोजेक्ट्स को यहां देखें