कैसे आवाज आवाज डिजाइन करने के लिए गृह स्वचालन सक्रिय?

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



वॉइस कंट्रोल्ड होम ऑटोमेशन

कैसे Arduino का उपयोग कर घरेलू उपकरणों को स्वचालित करने के लिए?

जैसा कि हमारे पास मूल विचार है, अब घटकों को इकट्ठा करने, सर्किट बनाने के लिए उन्हें इकट्ठा करने और अपने घरेलू उपकरणों को स्वचालित करने के लिए कोड लिखने की दिशा में कदम बढ़ाएं।



चरण 1: प्रयुक्त घटक (हार्डवेयर)

  • अरुडिनो अनो
  • HC-05 ब्लूटूथ मॉड्यूल
  • 2 एन 2222 एनपीएन ट्रांजिस्टर
  • 12V रिले मॉड्यूल
  • 1k-ओम रेसिस्टर
  • 12V एसी से डीसी एडाप्टर
  • 1N4007 पीएन जंक्शन डायोड
  • जम्पर तार

चरण 2: प्रयुक्त घटक (सॉफ्टवेयर)

  • प्रोटीन 8 प्रोफेशनल (से डाउनलोड किया जा सकता है) यहाँ )

Proteus 8 Professional को डाउनलोड करने के बाद, इस पर सर्किट डिज़ाइन करें। हमने सॉफ्टवेयर सिमुलेशन को यहां शामिल किया है ताकि शुरुआती लोगों के लिए सर्किट डिजाइन करना और हार्डवेयर पर उचित कनेक्शन बनाना सुविधाजनक हो सके।



चरण 3: घटकों का अध्ययन

जैसा कि हमने उन घटकों की एक सूची बनाई है जिन्हें हम अपनी परियोजना में उपयोग करने जा रहे हैं। आइए हम एक कदम आगे बढ़ते हैं और इन घटकों के काम करने के तरीके का एक संक्षिप्त अध्ययन करते हैं।



  1. Arduino UNO: Arduino UNO एक माइक्रोकंट्रोलर बोर्ड है जिसमें एक माइक्रोचिप ATMega 328P शामिल है और इसे Arduino.cc द्वारा विकसित किया गया है। इस बोर्ड में डिजिटल और एनालॉग डेटा पिन का एक सेट है जिसे अन्य विस्तार बोर्डों या सर्किट के साथ हस्तक्षेप किया जा सकता है। इस बोर्ड में 14 डिजिटल पिन, 6 एनालॉग पिन, और Arduino IDE (इंटीग्रेटेड डेवलपमेंट एनवायरनमेंट) के साथ टाइप B USB केबल के माध्यम से प्रोग्राम किया जा सकता है। इसे सत्ता में 5 वी की आवश्यकता है पर और एक C कोड संचालित करने के लिए।

    Arduino UNO

  2. HC-05 वायरलेस ब्लूटूथ सीरियल ट्रांसीवर : हमें इस परियोजना में वायरलेस संचार की आवश्यकता है, इसलिए हम ब्लूटूथ तकनीक का उपयोग करेंगे और उस मॉड्यूल के लिए जिसका उपयोग किया जाएगा HC-05। इस मॉड्यूल में कई प्रोग्राम योग्य बॉड दरें हैं लेकिन डिफ़ॉल्ट बॉड दर 9600 बीपीएस है। इसे या तो मास्टर या दास के रूप में कॉन्फ़िगर किया जा सकता है, जबकि एक अन्य मॉड्यूल HC-06 केवल दास मोड में काम कर सकता है। इस मॉड्यूल में चार पिन हैं। VCC (5V) के लिए एक और GND, TX और RX के लिए शेष तीन। इस मॉड्यूल का डिफ़ॉल्ट पासवर्ड है 1234 या 0000 । अगर हम दो माइक्रोकंट्रोलर के बीच संचार करना चाहते हैं या किसी फोन या लैपटॉप HC-05 जैसी ब्लूटूथ कार्यक्षमता के साथ संचार करना चाहते हैं तो हमें ऐसा करने में मदद करता है। कई Android एप्लिकेशन पहले से ही उपलब्ध हैं जो इस प्रक्रिया को बहुत आसान बनाता है।

    HC-05 ब्लूटूथ मॉड्यूल

  3. Arduino के लिए ब्लूटूथ वॉयस कंट्रोल : इस एप्लिकेशन को आवाज-आधारित Arduino परियोजनाओं के लिए SimpleLabsIN द्वारा विकसित किया गया है। यह एंड्रॉइड एप्लिकेशन फोन की वॉयस रिकग्निशन फीचर का उपयोग करेगा और वॉयस कमांड को टेक्स्ट में बदल देगा और ब्लूटूथ के जरिए स्ट्रिंग को ट्रांसफर कर देगा। आवेदन पत्र डाउनलोड किया जा सकता है यहाँ

    बीटी वॉयस कंट्रोल ऐप



  4. 12 वी रिले मॉड्यूल: अगर कोई भी माइक्रोकंट्रोलर से उच्च वोल्टेज लोड को स्विच करना चाहता है, तो यह 12V रिले बोर्ड कर सकता है। इसमें 10 ए / 250 वी एसी (डीसी 30 वी / 10 ए) में रेटेड 8 x 12 वी रिले शामिल हैं। प्रत्येक रिले मॉड्यूल को ऑप्टो-पृथक डिजिटल इनपुट द्वारा चालू / बंद किया जाता है जिसे सीधे माइक्रोकंट्रोलर आउटपुट पिन से जोड़ा जा सकता है। इसके लिए इनपुट पर स्विच करने के लिए केवल लगभग 1.0V के वोल्टेज की आवश्यकता होती है, लेकिन 12V तक के इनपुट वोल्टेज को संभाल सकता है। यह इसे 5V और 3.3V उपकरणों के लिए आदर्श बनाता है। आप रिले मॉड्यूल को अपने उपकरणों की संख्या के अनुसार खरीद सकते हैं जिन्हें आप नियंत्रित करना चाहते हैं। उदाहरण के लिए, यदि आप 4 उपकरणों को नियंत्रित करना चाहते हैं, तो आपको 4 रिले मॉड्यूल खरीदना चाहिए।

    12V रिले मॉड्यूल

चरण 4: सर्किट आरेख के साथ सर्किट डिजाइन को समझना

सबसे पहले, हमें एचसी -05 को Arduino UNO के साथ जोड़ना होगा। चूंकि ब्लूटूथ UART प्रोटोकॉल का उपयोग करता है, इसलिए हमें Arduino के RX और TX पिन का उपयोग करने की आवश्यकता है। हम अपने खुद के RX और TX पिन को परिभाषित करने के लिए 'SoftwareSerial' लाइब्रेरी का उपयोग करेंगे (पिन 2 RX है और Pin 3 TX है)। ब्लूटूथ मॉड्यूल के आरएक्स पिन और Arduino के TX पिन को काट दिया जाएगा। दूसरे, हम रिले को Arduino से जोड़ेंगे। हमने 4 - चैनलों के साथ एक रेडीमेड रिले बोर्ड का उपयोग किया है, इसलिए हमें व्यक्तिगत रिले के इनपुट को Arduino से कनेक्ट करना होगा। लोडिंग को रिले मॉड्यूल से जोड़ने के लिए नीचे दिए गए आरेख को देखें:

रिले मॉड्यूल सर्किट को असेंबल करना

चार लोड प्रदर्शन के लिए रिले मॉड्यूल से जुड़े हैं और एक रिले बोर्ड के साथ एसी मेन्स का उपयोग करते समय अतिरिक्त सावधान रहें। बस प्रदर्शन के लिए, हमने स्विच किया पर वैकल्पिक भार:

सर्किट आरेख

चरण 5: परियोजना का कार्य सिद्धांत

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

अब, फोन को ब्लूटूथ मॉड्यूल से कनेक्ट करें। विकल्प पर क्लिक करें “ रोबोट कनेक्ट करें 'और उपयुक्त ब्लूटूथ डिवाइस का चयन करें। यदि उपकरण पहले से नहीं जोड़े गए हैं, तो उन्हें अब पिन दर्ज करके जोड़ दें 0000 या 1234।

पेयरिंग स्मार्टफोन

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

वाणी ने पहचान लिया

जब स्ट्रिंग को एप्लिकेशन द्वारा पहचाना जाता है, तो यह स्ट्रिंग को 'प्रकाश चालू करें' के रूप में भेजेगा और ब्लूटूथ मॉड्यूल द्वारा प्राप्त वास्तविक संदेश में इस प्रकार का प्रारूप होगा ( '*संदेश#' )। संदेश के आरंभ और अंत की पहचान करने के लिए स्ट्रिंग के भीख और अंत में ’* और at # 'को रखने का कारण है। प्राप्त संदेश की तुलना कुछ पूर्वनिर्धारित स्ट्रिंग्स के साथ की जाती है और यदि संदेश उनके साथ संबंधित क्रिया जैसे 'चालू' और बंद होता है।

इस परियोजना में हमने निम्नलिखित कमांड का उपयोग किया है: 'AC चालू करें', 'AC बंद करें', 'प्रकाश चालू करें', 'प्रकाश बंद करें', 'TV चालू करें', 'TV बंद करें', 'पंखा चालू करें'। ',' सभी को चालू करें 'और' सभी को बंद करें '।

चरण 6: Arduino के साथ शुरुआत करना

यदि आप पहले Arduino IDE से परिचित नहीं हैं, तो चिंता न करें क्योंकि नीचे, आप Arduino IDE का उपयोग करके माइक्रोकंट्रोलर बोर्ड पर कोड जलने के स्पष्ट चरण देख सकते हैं। आप Arduino IDE के नवीनतम संस्करण को डाउनलोड कर सकते हैं यहाँ और नीचे दिए गए चरणों का पालन करें:

1)। जब Arduino बोर्ड आपके पीसी से जुड़ा होता है, तो 'कंट्रोल पैनल' खोलें और 'हार्डवेयर एंड साउंड' पर क्लिक करें। इसके बाद “डिवाइसेस एंड प्रिंटर्स” पर क्लिक करें। उस पोर्ट का नाम ढूंढें जिसमें आपका Arduino बोर्ड जुड़ा हुआ है। मेरे मामले में यह 'COM14' है, लेकिन यह आपके पीसी पर भिन्न हो सकता है।

पोर्ट ढूँढना

2)। अब Arduino IDE खोलें। टूल्स से, Arduino बोर्ड को सेट करें Arduino / जेनुइनो UNO।

बोर्ड की स्थापना

3)। उसी टूल मेनू से, पोर्ट नंबर सेट करें जिसे आपने कंट्रोल पैनल में देखा था।

पोर्ट की स्थापना

4)। इस आवाज नियंत्रित ऐप का उपयोग करने के लिए, हमें Arduino IDE में शामिल होने के लिए एक विशेष पुस्तकालय की आवश्यकता है। यह लाइब्रेरी कोड के साथ नीचे दिए गए लिंक में संलग्न है। लाइब्रेरी में शामिल करने के लिए स्केच> लाइब्रेरी शामिल करें> ज़िप जोड़ें। पुस्तकालय

लाइब्रेरी शामिल करें

5)। नीचे दिए गए कोड को डाउनलोड करें और इसे अपने आईडीई पर कॉपी करें। कोड अपलोड करने के लिए अपलोड बटन पर क्लिक करें।

आप द्वारा कोड डाउनलोड कर सकते हैं यहां क्लिक करें

चरण 7: कोड को समझना

संहिता इतनी जटिल नहीं है लेकिन फिर भी, इसके कुछ हिस्सों को नीचे संक्षेप में वर्णित किया गया है।

1. शुरुआत में, एक पुस्तकालय को Arduino के अन्य डिजिटल पिंस पर धारावाहिक संचार की अनुमति देने के लिए शामिल किया गया है, ताकि कार्यक्षमता को दोहराने के लिए सॉफ्टवेयर का उपयोग किया जा सके। दो पिंस को ब्लूटूथ मॉड्यूल के साथ उपयोग करने के लिए आरंभीकृत किया जाता है। सिस्टम से जुड़े घरेलू उपकरणों के लिए चार पिनों का उपयोग किया जाता है और ब्लूटूथ के माध्यम से आने वाले डेटा को स्टोर करने के लिए एक स्ट्रिंग चर का उपयोग किया जाता है।

#include const int rxPin = 2; // ब्लूटूथ मॉड्यूल कॉन्स्टेंस int txPin = 3 के लिए प्रारंभिक पाइन्स; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // घरेलू उपकरणों के लिए प्रारंभिक पिंस int light = 5; int fan = 6; int tv = 7; स्ट्रिंग डेटा;

2। व्यर्थ व्यवस्था() एक ऐसा कार्य है जिसमें हम आरंभिक पिनों को INPUT और OUTPUT के रूप में उपयोग करने के लिए सेट करते हैं। बॉड रेट भी यहाँ आरंभ किया गया है। बॉड रेट वह गति है जिसके द्वारा Arduino बोर्ड संलग्न घटकों के साथ संचार करता है। हमारे फ़ंक्शन में, हमने उपकरणों से जुड़े सभी पिन सेट किए हैं कम।

शून्य सेटअप () {Serial.begin (9600); mySerial.begin (9600); pinMode (एसी, आउट); पिनमोड (प्रकाश, OUTPUT); पिनमोड (प्रशंसक, OUTPUT); पिनमोड (टीवी, OUTPUT); digitalWrite (एसी, कम); digitalWrite (हल्का, कम); digitalWrite (प्रशंसक, कम); digitalWrite (TV, LOW); }

3। शून्य लूप () एक फ़ंक्शन है जो एक लूप में बार-बार चलता है। यहां सिस्टम को ठीक से काम करने के लिए सभी शर्तें निर्धारित हैं। निम्नलिखित जबकि() लूप का उपयोग डेटा लेने के लिए किया जाता है जो सूक्ष्म रूप से माइक्रोकंट्रोलर के पास आ रहा है।

जबकि (1) // क्रमिक रूप से इनपुट प्राप्त करना {जबकि (mySerial.available) ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

उपयोगकर्ता द्वारा कमांड के रूप में संलग्न सभी विद्युत उपकरणों पर स्विच करने के लिए सभी शर्तें नीचे दी गई हैं। ये स्थितियाँ बहुत सरल और आत्म-व्याख्यात्मक हैं।

अगर (डेटा == '* AC चालू करें') {digitalWrite (ac, HIGH); सिरियल.प्रिंट (ial एसी ऑन ’); } और अगर (डेटा == '* AC बंद करें)) {digitalWrite (ac, LOW); सिरियल.प्रिंटलेन ('एसी ऑफ'); } और यदि (डेटा == '* प्रकाश चालू करें') {digitalWrite (प्रकाश, उच्च); सिरियल.प्रिंट ('प्रकाश पर'); } और अगर (डेटा == '* लाइट बंद करें') {digitalWrite (लाइट, LOW); सीरियल.प्रिंटलेन ('लाइट ऑफ'); } और अगर (डेटा == '* फैन चालू करें') {digitalWrite (फैन, हाई); सिरियल.प्रिंटलेन ('फैन ऑन'); } और अगर (डेटा == '* प्रशंसक बंद') {digitalWrite (प्रशंसक, कम); सिरियल.प्रिंटलेन ('फैन ऑफ'); } और अगर (डेटा == '* टीवी चालू करें)) {digitalWrite (tv, HIGH); Serial.println ('TV on'); } और अगर (डेटा == '* टीवी चालू करें)) {digitalWrite (tv, LOW); Serial.println ('टीवी बंद'); } और अगर (डेटा == '* सभी चालू करें') {digitalWrite (एसी, हाई); digitalWrite (प्रकाश, उच्च); digitalWrite (प्रशंसक, उच्च); digitalWrite (टीवी, उच्च); धारावाहिक.प्रदर्शन ('सब पर'); } और अगर (डेटा == '* सब बंद करें') {digitalWrite (ac, LOW); digitalWrite (प्रकाश, कम); digitalWrite (प्रशंसक, कम); digitalWrite (टीवी, कम); धारावाहिक.प्रदर्शन ('सब बंद'); }}

अनुप्रयोग

  1. वॉयस-एक्टिवेटेड होम ऑटोमेशन सिस्टम हमें सरल वॉयस कमांड के साथ विभिन्न भार (विद्युत उपकरण) को नियंत्रित करने में मदद करेगा।
  2. जो लोग अक्षम हैं उन्हें इस परियोजना से बहुत सारे लाभ मिल सकते हैं जैसे कि वे चारों ओर चलने में असमर्थ हैं वे एक आवाज आदेश दे सकते हैं और बदल सकते हैं पर या बंद उपकरण।
  3. विभिन्न सेंसर (प्रकाश, धुआं, आदि) को जोड़कर भी इस परियोजना का विस्तार किया जा सकता है।