- एलेक्सा आधारित वॉयस कंट्रोल्ड रॉकेट लॉन्चर - वर्किंग
- हमारे NodeMCU रॉकेट लॉन्च नियंत्रक के लिए लॉन्चपैड
- एलेक्सा नियंत्रित रॉकेट लांचर के लिए आवश्यक घटक
- Arduino रॉकेट लॉन्चर सर्किट आरेख
- PerfBoard पर सर्किट का निर्माण
- एलेक्सा नियंत्रित रॉकेट लांचर के लिए NodeMCU प्रोग्रामिंग
- एलेक्सा को एंड्रॉइड एप्लिकेशन के साथ कॉन्फ़िगर करना
- एलेक्सा नियंत्रित रॉकेट लांचर - परीक्षण
जैसे-जैसे सर्दी का मौसम नजदीक आता है; वर्ष का वह समय आता है जब रोशनी का त्योहार मनाया जाता है। जी हां, हम बात कर रहे हैं दिवाली की जो दुनिया भर में मनाया जाने वाला एक सच्चा भारतीय त्योहार है। इस साल, दिवाली पहले से ही खत्म हो गई है, और लोगों को पटाखे देखकर, मैं एलेक्सा आधारित वॉयस कंट्रोल्ड रॉकेट लॉन्चर या इग्नाइटर के निर्माण के विचार के साथ आया, जो सिर्फ वॉइस कमांड के साथ रॉकेट लॉन्च कर सकता है, जो बच्चों के लिए बहुत सुरक्षित और मजेदार है।
यह स्पष्ट करने के लिए, मैं यहां लोगों को दिवाली पर पटाखे जलाने के लिए प्रोत्साहित करने के लिए नहीं हूं, भारत सरकार ने प्रदूषण पर अंकुश लगाने के लिए पटाखे पर प्रतिबंध लागू किया है और इसका पालन करना हमारी जिम्मेदारी है। यहां विचार यह है कि पूरे दिन फायरिंग करने वाले पटाखे खर्च करने के बजाय, आइए एक शांत आवाज-नियंत्रित Arduino रॉकेट इग्नाइटर का निर्माण करें और शैली में कुछ रॉकेटों को आग दें। मैं इसे एक जीत के रूप में देखता हूं।
यह Arduino रॉकेट लांचर दूसरों से बहुत अलग होगा। यह एक बहुत मजबूत चेसिस है जो प्लाईवुड से बना है, एक विश्वसनीय रिले-आधारित नियंत्रण तंत्र है, और रॉकेट को लॉन्च करने और पुनः लोड करने के लिए एक बहुत ही अनूठा तंत्र है, इसलिए आगे की देरी के बिना, चलो निर्माण प्रक्रिया में सही हो जाएं।
एलेक्सा आधारित वॉयस कंट्रोल्ड रॉकेट लॉन्चर - वर्किंग
सर्किट का काम करने का तंत्र बहुत सरल है, मुख्य घटक जो रॉकेट को लॉन्च करने के लिए जिम्मेदार है, वह है निचे क्रोम तार, और यह एक हीटिंग कॉइल के रूप में आता है। यह नाइक्रोम वायर रॉकेट इग्नाइटर की तरह काम करेगा । कैसे? मैं आपको बाद में दिखाऊंगा।
जैसा कि आप ऊपर की छवि में देख सकते हैं, नाइक्रोम तार एक हीटर कॉइल के रूप में आता है, मेरे लिए, इसे प्राप्त करने का सबसे आसान तरीका था। हमें इसे सीधा खींचना है और इसे एक आकृति बनाने के लिए झुकना है जो नीचे की छवि में दिखाया गया है।
एक बार जब हमने ऐसा कर लिया है, तो हम इसे 12V लीड-एसिड बैटरी के साथ पावर देंगे और यह लाल गर्म चमक देगा। यह रॉकेट के अंदर काले पाउडर को प्रज्वलित करने के लिए पर्याप्त होगा और यह सामान्य फ्यूज खुराक की तरह काम करेगा। सलाह दी जाती है कि यह एक उच्च शक्ति रॉकेट लॉन्च नियंत्रक है, तार को गर्म बनाने के लिए आवश्यक वर्तमान उच्च है। उच्च धाराओं के साथ काम करते समय सुरक्षा सलाह का पालन करें।
एक बार परीक्षण हो जाने के बाद, बची हुई एकमात्र चीज नियंत्रण प्रक्रिया है, जिसे हम लेख में आगे बढ़ने पर कर रहे हैं।
हमारे NodeMCU रॉकेट लॉन्च नियंत्रक के लिए लॉन्चपैड
इस बिल्ड के लिए, चलो एक लॉन्चपैड बनाते हैं। लॉन्चपैड के साथ, हम आसानी से कुछ पटाखे पुनः लोड कर सकते हैं और उन्हें बहुत आसानी से लॉन्च कर सकते हैं। मैंने एक लॉन्चपैड बनाया है जो नीचे दिखाई गई छवि में दिखाया गया है।
लॉन्चपैड के निर्माण की चरण प्रक्रिया द्वारा कदम के माध्यम से चलते हैं। फ्रेम के दोनों किनारों के लिए, मैंने प्लाईवुड के दो (25X3X1.5) इंच लंबे टुकड़ों का उपयोग किया है। शीर्ष भाग के लिए, मैंने प्लाईवुड के एक (20X3X1.5) इंच लंबे हिस्से का उपयोग किया है और आधार के लिए, मैंने प्लाईवुड के एक (20X6X1.5) इंच लंबे टुकड़े का उपयोग किया है, जो इसे थोड़ा और स्थिरता देगा। नीचे दी गई छवि आपको एक स्पष्ट विचार देगी।
अब, यह नाइक्रोम वायर-आधारित फिलामेंट बनाने का समय है , जो हमारे रॉकेट के लिए फ्यूज का काम करेगा। उसके लिए, मैंने 1000W के निचे क्रोम वायर बेस हीटिंग कॉइल खरीदा है, इसे सीधा किया है, और जो नीचे दिखाया गया है, उसे बनाया है। मुझे निचे क्रोम वायर को आकार देने के लिए दो सरौता और साइड कटर का उपयोग करना था जैसा कि नीचे दिखाया गया है।
एक बार यह हो जाने के बाद, मैंने प्लाईवुड ब्लॉक के 20 ”टुकड़े को सात टुकड़ों में विभाजित किया और इसे मापा, और निचे क्रोम वायर-आधारित फिलामेंट्स को लगाने के लिए छेदों को ड्रिल किया और एक बार ऐसा करने के बाद, यह नीचे की छवियों की तरह लग रहा था।
लेकिन फिलामेंट्स रखने से पहले, मैंने प्रत्येक टर्मिनल में 1 वर्ग मिमी मोटी तांबे के तार संलग्न किए हैं और उन्हें छेद के माध्यम से पारित कर दिया है, एक बार सब कुछ हो जाने के बाद, यह नीचे की छवि की तरह लग रहा था।
जैसा कि आप देख सकते हैं, मैंने तार और फिलामेंट्स को सुरक्षित करने के लिए दो-घटक चिपकने में भी डाल दिया है। उस के साथ, हमारा लॉन्चपैड पूरा हो गया है। और जैसा कि आप इस खंड में पहली तस्वीर से देख सकते हैं, मैंने फिलामेंट तारों को सीधे पीसीबी से जोड़ दिया है क्योंकि हम बहुत अधिक धाराओं से निपट रहे हैं इसलिए मैंने स्क्रू टर्मिनल लगाने की जहमत नहीं उठाई, और यह हमारे चेसिस के अंत को चिह्नित करता है। निर्माण की प्रक्रिया।
एलेक्सा नियंत्रित रॉकेट लांचर के लिए आवश्यक घटक
चीजों के हार्डवेयर पक्ष के लिए, हमने बहुत ही सामान्य भागों का उपयोग किया है जो आप अपने स्थानीय शौक स्टोर से आसानी से प्राप्त कर सकते हैं, मदों की एक पूरी सूची नीचे दी गई है।
- 12 वी-रिले - 3
- BD139 ट्रांजिस्टर - 3
- 1N4004 डायोड - 3
- 5.08 मिमी स्क्रू टर्मिनल - 1
- LM7805 - वोल्टेज नियामक - 1
- 100uF डिकूपिंग कैपेसिटर - 2
- 5.1 वी जेनर डायोड - 1
- NodeMCU (ESP8266-12E) बोर्ड - 1
- बिंदीदार परफेक्ट बोर्ड - ½
- कनेक्टिंग वायर - 10
Arduino रॉकेट लॉन्चर सर्किट आरेख
एलेक्सा नियंत्रित रॉकेट लांचर के लिए पूर्ण योजनाबद्ध नीचे दिया गया है। मैंने एक पिन को दूसरे से जोड़ने के लिए टैग का उपयोग किया है। यदि आप पर्याप्त करीब देखते हैं, तो योजनाबद्ध व्याख्या करना मुश्किल नहीं होना चाहिए।
सर्किट कंस्ट्रक्शन बहुत सीधा है, इसलिए मैं बहुत अधिक विवरण में नहीं जाऊंगा।
सबसे पहले, हमारे पास IC1 है जो एक LM7805 वोल्टेज नियामक है, इसके 100uF डिकॉउलिंग कैपेसिटर को C1 और C2 द्वारा निरूपित किया गया है। उसके बाद, हमारे पास हमारी परियोजना, एनओडीएमसीयू बोर्ड का दिल है, जिसमें ईएसपी -12 ई मॉड्यूल है। चूंकि हम पूरे सर्किट को पावर देने के लिए 12V लीड-एसिड बैटरी का उपयोग कर रहे हैं, यही वजह है कि हमें NodeMCU बोर्ड को पावर देने के लिए सबसे पहले इसे LMV805 का उपयोग कर इसे 12V में परिवर्तित करने के लिए 5V में बदलना होगा। हम ऐसा इसलिए कर रहे हैं क्योंकि ऑनबोर्ड AMS1117 वोल्टेज रेगुलेटर 12 वी को सीधे 3.3V में बदलने के लिए पर्याप्त नहीं है, यही कारण है कि 7805 आवश्यक है।
आगे बढ़ते हुए, हमारे पास तीन 12V रिले हैं, इस प्रदर्शन के लिए, हम तीन रिले का उपयोग कर रहे हैं, लेकिन जैसा कि हमने पहले उल्लेख किया है, लॉन्चपैड में 7 रॉकेट के लिए एक प्लेसहोल्डर है। आप कोड को थोड़ा मोड़ सकते हैं और सभी सात रॉकेटों को पूरी तरह से लॉन्च करने के लिए रख सकते हैं। तीन रिले एक T1, T2, और T3 द्वारा संचालित होते हैं जो तीन NPN ट्रांजिस्टर हैं, और वे एक असली के भार को चलाने के लिए पर्याप्त हैं। अंत में, हमारे पास तीन फ़्रीव्हीलिंग डायोड हैं जो रिले द्वारा उत्पन्न उच्च वोल्टेज स्पाइक्स से सर्किट की रक्षा कर रहे हैं।
PerfBoard पर सर्किट का निर्माण
जैसा कि आप मुख्य छवि से देख सकते हैं, यह विचार एक सरल सर्किट बनाने के लिए था जो कि छोटी अवधि के लिए वर्तमान की एक बड़ी मात्रा को संभाल सकता है, हमारे परीक्षण के अनुसार, 800 मिलीसेकंड कागज के एक टुकड़े को हल्का करने के लिए पर्याप्त है। तो, हम परफैक्टबोर्ड के एक टुकड़े पर सर्किट का निर्माण करते हैं और सभी प्रमुख कनेक्शनों को 1 वर्ग मिमी मोटे तांबे के तार से जोड़ते हैं। हमने बोर्ड को सोल्डर करने के बाद समाप्त कर दिया। एक बार जब हम समाप्त हो गए, तो यह कुछ ऐसा दिखाई दिया, जो नीचे दिखाया गया है।
एलेक्सा नियंत्रित रॉकेट लांचर के लिए NodeMCU प्रोग्रामिंग
अब जब हार्डवेयर तैयार हो गया है, तो यह हमारे एलेक्सा आधारित आवाज नियंत्रित रॉकेट लांचर के लिए कोडिंग शुरू करने का समय है। इस पृष्ठ के अंत में पूरा कोड पाया जा सकता है, लेकिन इससे पहले कि हम शुरू करें, आपके Arduino IDE में आवश्यक पुस्तकालयों को जोड़ना महत्वपूर्ण है। सुनिश्चित करें कि आप नीचे दिए गए लिंक से सही पुस्तकालयों को जोड़ते हैं, जब कोड संकलित होने पर त्रुटियों को फेंक देगा।
- Espalexa लाइब्रेरी डाउनलोड करें
आवश्यक पुस्तकालयों को जोड़ने के बाद, आप सर्किट काम कर रहा है या नहीं यह जांचने के लिए सीधे इस पृष्ठ के नीचे दिए गए कोड को अपलोड कर सकते हैं। यदि आप जानना चाहते हैं कि कोड कैसे काम करता है, तो पढ़ते रहें।
हमेशा की तरह, हम आवश्यक हेडर फ़ाइलों को जोड़कर और हमारे हॉटस्पॉट के लिए पिन नाम और क्रेडेंशियल्स को परिभाषित करके कार्यक्रम शुरू करते हैं।
#शामिल
हमारे कोड के साथ आगे बढ़ते हुए, हमारे पास हमारे फ़ंक्शन प्रोटोटाइप और कॉलबैक फ़ंक्शन परिभाषाएं हैं।
फंक्शन ConnectToWiFi () का उपयोग वाई-फाई नेटवर्क से कनेक्ट करने के लिए किया जाता है और वाई-फाई के सफलतापूर्वक कनेक्ट होने पर यह फ़ंक्शन सही हो जाता है।
अगला, हमारे कॉलबैक फ़ंक्शन हैं, यह फ़ंक्शन तब कॉल किए जाएंगे जब हम एलेक्सा को कमांड देंगे, espalexa API इन कार्यों को संभालता है
शून्य अलॉकेट्स (uint8_t चमक); शून्य फ़ेवरिट (uint8_t चमक); शून्य सेकंडरीकेट (uint8_t चमक); शून्य तृतीयक (uint8_t चमक);
अगला, हम डिवाइस नामों को परिभाषित करते हैं। ये परिभाषित डिवाइस नाम एलेक्सा ऐप पर दिखाई देंगे और जब हम एक कमांड कहते हैं, तो एलेक्सा इन नामों से उपकरणों को पहचान लेगा। इसलिए ये नाम बहुत महत्वपूर्ण हैं।
// डिवाइस का नाम स्ट्रिंग First_Device_Name = "सभी रॉकेट"; स्ट्रिंग Secound_Device_Name = "रॉकेट एक"; स्ट्रिंग थर्ड_डेविस_नाम = "रॉकेट टू"; स्ट्रिंग Forth_Device_Name = "रॉकेट तीन";
अगला, हम एक बूलियन चर wifiStatus को परिभाषित करते हैं , जो वाई-फाई की कनेक्शन स्थिति धारण करेगा। अंत में, हम एक Espalexa ऑब्जेक्ट espalexa बनाते हैं। हम इस ऑब्जेक्ट का उपयोग NodeMCU को कॉन्फ़िगर करने के लिए करेंगे।
// wifi स्टेटस चेक बूलियन wifiStatus = false; // एस्पलेक्सा ऑब्जेक्ट एस्पालेक्सा एस्पालेक्सा;
अगला, हमारे पास अपना शून्य सेटअप () अनुभाग है। इस खंड में, हम Serial.begin () फ़ंक्शन के साथ डिबगिंग के लिए सीरियल संचार को इनिशियलाइज़ करते हैं। हम पिनमोड () फ़ंक्शन के साथ पिछले सभी निर्धारित पिनों को आउटपुट के रूप में सेट करते हैं, अगले हम कनेक्टटॉइफ़िफ़ि () फ़ंक्शन को कॉल करते हैं, यह पंद्रह बार वाई-फाई से कनेक्ट करने का प्रयास करेगा यदि यह जुड़ा हुआ है, तो यह सच हो जाएगा अगर यह नहीं होता है जुड़ा हुआ है, यह गलत वापस आ जाएगा और कोड थोड़ी देर () लूप को हमेशा के लिए निष्पादित करेगा। यदि वाई-फाई कनेक्शन सफल होता है, तो हम पहले से परिभाषित उपकरणों को एलेक्सा ऑब्जेक्ट में espalexa.addDevice () फ़ंक्शन से जोड़ते हैं। यह फ़ंक्शन दो तर्क लेता है, पहला है डिवाइस का नाम; दूसरा कॉलबैक फ़ंक्शन का नाम है, जब हम एलेक्सा को एक कमांड देते हैं, तो आसन्न फ़ंक्शन को बुलाया जाएगा। एक बार जब हम इसे अपने सभी चार उपकरणों के लिए कर रहे होते हैं, तो हम एस्पलेक्सा ऑब्जेक्ट के लिए शुरुआती () तरीके कहते हैं।
शून्य सेटअप () {Serial.begin (115200); // डिबगिंग संदेशों के लिए सीरियल सक्षम करें पिनकोड (ROCKET_1_PIN, OUTPUT); // सेटअप ईएसपी पिन आउटपुट पिनकोड (ROCKET_2_PIN, OUTPUT) के रूप में; // सेटअप ईएसपी पिन आउटपुट पिनकोड (ROCKET_3_PIN, OUTPUT) के रूप में; // सेटअप ESP पिन आउटपुट wifiStatus = connectToWiFi () के रूप में; // स्थानीय वाई-फाई नेटवर्क से कनेक्ट करें यदि (wifiStatus) {// सेटअप सभी एस्पलेक्सा डिवाइस // अपने उपकरणों को यहां परिभाषित करें। espalexa.addDevice (First_Device_Name, allrockets); // सरलतम परिभाषा, डिफ़ॉल्ट स्थिति बंद espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } और {जबकि (1) {सीरियल। Println ("वाईफाई से कनेक्ट नहीं हो सकता। कृपया डेटा की जांच करें और ईएसपी रीसेट करें।"); देरी (2500); }}}
में पाश अनुभाग, हम फोन पाश () espalexa उद्देश्य यह है कि हमेशा किसी भी भेजे आदेश के लिए जाँच करेगा और अगर यह यह सच पाता कॉलबैक फ़ंक्शन को कॉल करने की विधि।
शून्य लूप () {espalexa.loop (); देरी (1); }
अगला, हम अपने सभी कॉलबैक कार्यों को परिभाषित करते हैं, इस खंड में, हम परिभाषित करते हैं कि क्या होता है जब यह कॉलबैक फ़ंक्शन कहा जाता है। जब एलाक्रेट्स () फ़ंक्शन को कहा जाता है, तो सभी रॉकेट एक साथ लॉन्च होने जा रहे हैं। उसके लिए, हम 00 एमएस के लिए रिले को चालू करने जा रहे हैं और उसके बाद, हम रिले को बंद करने जा रहे हैं। मेरे परीक्षणों में, मैंने पाया है कि निचे क्रोम तार की निर्दिष्ट लंबाई के लिए, मुझे पूरी तरह से तार को गर्म करने के लिए 800ms देरी की आवश्यकता है, यह आपके लिए मामला हो सकता है या नहीं। इसलिए अपने अनुसार देरी का चुनाव करें।
शून्य ऑलकेट्स (uint8_t ब्राइटनेस) {if (ब्राइटनेस == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); देरी (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("सभी रॉकेट लॉन्च किए गए"); }}
अगला, हमारे पास हमारा पहला रॉकेट है (), इसे तब कहा जाता है जब हम एलेक्सा कहते हैं और पहला रॉकेट लॉन्च करने के लिए टाई कमांड कहते हैं। प्रक्रिया बहुत समान है, हम रिले को 800ms के लिए चालू करते हैं और बंद करते हैं।
शून्य फ़ेवरिट (uint8_t चमक) {if (चमक == 255) {digitalWrite (ROCKET_1_PIN, HIGH); देरी (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("पहला रॉकेट लॉन्च किया गया"); }}
अंत में, हमारे पास हमारे कनेक्टटॉइफी () फ़ंक्शन हैं। यह फ़ंक्शन बहुत सामान्य और आत्म-व्याख्यात्मक है, इसलिए मैं इस फ़ंक्शन के बारे में विवरण में नहीं जाऊंगा। यह फ़ंक्शन ईएसपी को वाई-फाई से जोड़ता है और कनेक्शन की स्थिति लौटाता है।
बूलियन connectToWiFi () {बूलियन स्टेट = सच; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, पासवर्ड); सिरियल.प्रिंटल (""); Serial.println ("वाईफाई से कनेक्ट करना"); // कनेक्शन के लिए प्रतीक्षा करें Serial.print ("कनेक्टिंग…"); जबकि (WiFi.status ()! = WL_CONNECTED) {विलंब (500); सीरियल.प्रिंट ("।"); if (i> 15) {राज्य = असत्य; टूटना; } I ++; } Serial.println (""); if (राज्य) {Serial.print ("कनेक्टेड टू"); सिरियल.प्रिंट (ssid); Serial.print ("आईपी पता:"); Serial.println (WiFi.localIP ()); } और {Serial.println ("कनेक्शन विफल हुआ"); } वापसी की स्थिति; }
यह फ़ंक्शन परिभाषित कोडिंग भाग के अंत को चिह्नित करता है।
एलेक्सा को एंड्रॉइड एप्लिकेशन के साथ कॉन्फ़िगर करना
एलेक्सा केवल आज्ञाओं को स्वीकार करेगा अगर और केवल अगर यह एस्प 8866 डिवाइस को पहचानता है। उसके लिए, हमें एंड्रॉइड पर एलेक्सा ऐप की मदद से एलेक्सा को कॉन्फ़िगर करना होगा। इससे पहले कि हम आगे बढ़ें एक महत्वपूर्ण बात यह है कि हमें यह सुनिश्चित करने की आवश्यकता है कि एलेक्सा हमारे एंड्रॉइड एप्लिकेशन के साथ कॉन्फ़िगर किया गया है।
ऐसा करने के लिए, Alexa ऐप के अधिक सेक्शन में जाएं और Add a Device विकल्प पर क्लिक करें , लाइट पर क्लिक करें , फिर पेज के नीचे स्क्रॉल करें और अन्य पर क्लिक करें ।
इसके बाद, DISCOVER DEVICE पर क्लिक करें और एक पल रुकें उसके बाद एलेक्सा को नए डिवाइस मिलेंगे। एक बार एलेक्सा को डिवाइस मिल जाने के बाद, आपको उन पर क्लिक करने और उन्हें अपने संबंधित स्थानों / श्रेणियों में जोड़ने की जरूरत है, और आप कर रहे हैं।
एलेक्सा नियंत्रित रॉकेट लांचर - परीक्षण
परीक्षण प्रक्रिया के लिए, मैं अपने बगीचे में गया, रॉकेट से सभी फ़्यूज़ खींचे, उन्हें अपने संबंधित स्थानों पर रखा, और मैंने एलेक्सा को चिल्लाया…! मेरी उंगलियों के साथ, सभी रॉकेट चालू करें। और मेरे प्रयासों को एक बड़ी सफलता के रूप में चिह्नित करके सभी रॉकेट उड़ गए। कुछ ऐसा दिख रहा था।
अंत में, एक बार और मैंने एलेक्सा कहा…! तंतुओं का एक महाकाव्य चित्र प्राप्त करने के लिए सभी रॉकेट चालू करें, जिसे आप नीचे देख सकते हैं।
अधिक महाकाव्य अनुभव के लिए, मैं आपको वीडियो देखने की अत्यधिक सलाह देता हूं।