मोबाइल फोन सदी का एक क्रांतिकारी आविष्कार है। यह मुख्य रूप से कॉल और टेक्स्ट संदेशों को बनाने और प्राप्त करने के लिए डिज़ाइन किया गया था, लेकिन स्मार्ट फोन के चित्र में आने के बाद यह पूरी दुनिया बन गया है। इस परियोजना में हम एक होम ऑटोमेशन सिस्टम का निर्माण कर रहे हैं, जहां कोई भी व्यक्ति अपने फोन के माध्यम से एसएमएस भेजकर साधारण जीएसएम आधारित फोन का उपयोग करके घरेलू उपकरणों को नियंत्रित कर सकता है। इस परियोजना में, किसी भी स्मार्ट फोन की जरूरत नहीं है, बस पुराने जीएसएम फोन कहीं से भी, किसी भी घरेलू इलेक्ट्रॉनिक उपकरणों को चालू और बंद करने के लिए काम करेगा। आप यहां कुछ और वायरलेस होम ऑटोमेशन परियोजनाओं की भी जांच कर सकते हैं: आईआर रिमोट कंट्रोल्ड होम ऑटोमेशन का उपयोग करके Arduino, ब्लूटूथ नियंत्रित होम ऑटोमेशन के साथ DTMF बेस्ड होम ऑटोमेशन, PC कंट्रोल्ड होम ऑटोमेशन के साथ Arduino का उपयोग कर।
कार्य की व्याख्या
इस परियोजना में, Arduino का उपयोग पूरी प्रक्रिया को नियंत्रित करने के लिए किया जाता है। यहां हमने घरेलू उपकरणों को नियंत्रित करने के लिए जीएसएम वायरलेस संचार का उपयोग किया है। हम कुछ कमांड भेजते हैं जैसे "# A.light on *", "# A.light off *" और इसी तरह AC घरेलू उपकरणों को नियंत्रित करने के लिए। जीएसएम के माध्यम से Arduino द्वारा दिए गए आदेश प्राप्त करने के बाद, Arduino रिले ड्राइवर का उपयोग करके घरेलू उपकरणों को चालू या बंद करने के लिए रिले को सिग्नल भेजता है।
सर्किट घटक:
- Arduino UNO
- जीएसएम मॉड्यूल
- ULN2003
- रिले 5 वोल्ट
- धारक के साथ बल्ब
- तारों को जोड़ना
- ब्रेड बोर्ड
- 16x2 एलसीडी
- बिजली की आपूर्ति
- सेल फोन
यहां हमने कमांड स्ट्रिंग में एक उपसर्ग का उपयोग किया है जो "#A" है। इस उपसर्ग का उपयोग यह पहचानने के लिए किया जाता है कि मुख्य कमांड उसके बगल में आ रही है और * स्ट्रिंग के अंत में संकेत मिलता है कि संदेश समाप्त हो गया है।
जब हम मोबाइल द्वारा जीएसएम मॉड्यूल को एसएमएस भेजते हैं, तो जीएसएम उस एसएमएस को प्राप्त करता है और उसे Arduino पर भेजता है। अब Arduino इस एसएमएस को पढ़ता है और प्राप्त स्ट्रिंग और स्टोर से मुख्य कमांड को एक चर में निकालता है। इसके बाद, Arduino ने इस स्ट्रिंग की पूर्वनिर्धारित स्ट्रिंग के साथ तुलना की। यदि मैच हुआ है, तो Arduino घरेलू उपकरणों को चालू और बंद करने के लिए रिले ड्राइवर के माध्यम से रिले को सिग्नल भेजता है। और सापेक्ष परिणाम भी 16x2 एलसीडी पर उपयुक्त कमांड का उपयोग करके प्रिंट करता है।
यहां इस परियोजना में हमने प्रदर्शन के लिए 3 शून्य वाट बल्ब का उपयोग किया है जो फैन, लाइट और टीवी को इंगित करता है।
नीचे उन संदेशों की सूची दी गई है, जिन्हें हम एसएमएस के माध्यम से भेजते हैं, ताकि पंखे, लाइट और टीवी को चालू और बंद किया जा सके:
क्र.सं. |
संदेश |
ऑपरेशन |
1 |
# ए। पर * |
फैन ऑन |
२ |
# * बंद * |
फैन ऑफ |
३ |
# ए पर * |
बत्ती जलाओ |
४ |
# ए वी ऑफ * |
प्रकाश बंद |
५ |
# A.tv पर * |
टीवी पर |
६ |
# A.tv बंद * |
टीवी बंद |
। |
# ए। पर * |
सभी पर |
। |
# ए। बंद * |
सभी बंद |
जीएसएम मॉड्यूल:
जीएसएम मॉड्यूल का उपयोग कई संचार उपकरणों में किया जाता है जो जीएसएम (मोबाइल संचार के लिए ग्लोबल सिस्टम) तकनीक पर आधारित हैं। इसका उपयोग कंप्यूटर का उपयोग करके जीएसएम नेटवर्क के साथ बातचीत करने के लिए किया जाता है। GSM मॉड्यूल केवल AT कमांड को समझता है, और उसी के अनुसार प्रतिक्रिया दे सकता है। सबसे बुनियादी कमांड "एटी" है, अगर जीएसएम ठीक जवाब देता है तो यह अच्छा काम कर रहा है अन्यथा यह "एरोर" के साथ प्रतिक्रिया करता है। एटीए जैसे विभिन्न एटी कमांड हैं जैसे कॉल का जवाब देने के लिए एटीडी, कॉल डायल करने के लिए एटीडी, संदेश पढ़ने के लिए एटी + सीएमजीआर, एसएमएस भेजने के लिए एटी + सीएमजीएस आदि। एटी कमांड को कैरिज रिटर्न यानी हेक्स में पालन किया जाना चाहिए।), जैसे "एटी + CMGS \ r"। हम इन आदेशों का उपयोग करके जीएसएम मॉड्यूल का उपयोग कर सकते हैं:
ATE0 - इको ऑफ के लिए
AT + CNMI = 2,2,0,0,0
एटीडी
AT + CMGF = 1
AT + CMGS = "मोबाइल नंबर"
>> अब हम अपना संदेश लिख सकते हैं
>> मैसेज लिखने के बाद
Ctrl + Z संदेश कमांड (दशमलव में 26) भेजें।
ENTER = 0x0d HEX में
SIM900 एक पूरा क्वैड बैंड है GSM / GPRS मॉड्यूल जो जीएसएम उद्धार / जीपीआरएस 850/900/1800 / 1900MHz आवाज, एसएमएस और डाटा कम बिजली की खपत के साथ के लिए प्रदर्शन।
सर्किट विवरण
इस जीएसएम आधारित होम ऑटोमेशन सर्किट के कनेक्शन काफी सरल हैं, यहां एक लिक्विड क्रिस्टल डिस्प्ले का उपयोग घरेलू उपकरणों की स्थिति को प्रदर्शित करने के लिए किया जाता है जो सीधे 4-बिट मोड में आर्कडिनो से जुड़ा होता है। आरएस, एन, डी 4, डी 5, डी 6, डी 7 एलसीडी के डेटा पिन आर्दीनो डिजिटल पिन नंबर 6, 7, 8, 9, 10, 11. से जुड़े हुए हैं और जीएसएम मॉड्यूल के आरएक्स और टीएक्स पिन टीएक्स और आरएक्स पर सीधे जुड़े हुए हैं। क्रमशः Arduino का पिन। और जीएसएम मॉड्यूल 12 वोल्ट एडाप्टर का उपयोग करके संचालित होता है। 5 वोल्ट SPDT 3 रिले का उपयोग LIGHT, FAN और TV को नियंत्रित करने के लिए किया जाता है। और रिले क्रमशः LIGHT, FAN और TV को नियंत्रित करने के लिए रिले चालक ULN2003 के माध्यम से arduino पिन नंबर 3, 4 और 5 से जुड़े हुए हैं।
कोड विवरण
इस परियोजना के प्रोग्रामिंग भाग में, सबसे पहले प्रोग्रामिंग में हम लिक्विड क्रिस्टल डिस्प्ले के लिए लाइब्रेरी शामिल करते हैं और फिर हम एलसीडी और घरेलू उपकरणों के लिए डेटा और नियंत्रण पिन को परिभाषित करते हैं।
#शामिल
इसके बाद धारावाहिक संचार 9600 बीपीएस पर आरंभिक होता है और प्रयुक्त पिन को दिशा देता है।
शून्य सेटअप () {lcd.begin (16,2); सीरियल.बेगिन (9600); पिनमोड (एलईडी, OUTPUT); पिनमोड (फैन, आउटपूट); पिनमोड (लाइट, OUTPUT); पिनमोड (टीवी, OUTPUT);
क्रमिक रूप से डेटा प्राप्त करने के लिए हमने दो फ़ंक्शन का उपयोग किया है एक Serial.available है जो यह जांचता है कि क्या कोई सीरियल डेटा आ रहा है और अन्य एक Serial.read है जो क्रमिक रूप से आने वाले डेटा को पढ़ता है।
जबकि (Serial.available ()) {char inhar = Serial.read ();
क्रमिक रूप से डेटा प्राप्त करने के बाद हमने इसे एक स्ट्रिंग में संग्रहीत किया है और फिर Enter की प्रतीक्षा कर रहे हैं।
void serialEvent () {जबकि (Serial.available ()) {if (Serial.find ("# A।")) {digitalWrite (led, HIGH); देरी (1000); digitalWrite (एलईडी, कम); जबकि (Serial.available ()) {char inhar = Serial.read (); str = inhar; if (inChar == '*') {temp = 1; वापसी; }
जब Enter आता है तो प्रोग्राम को स्टार्ट स्ट्रिंग की तुलना पहले से ही परिभाषित स्ट्रिंग के साथ करना शुरू कर देता है और यदि स्ट्रिंग का मिलान होता है, तो कोड में दिए गए उपयुक्त कमांड का उपयोग करके एक रिश्तेदार ऑपरेशन किया जाता है।
void check () {if ((strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("चालू"); देरी (200); } और यदि (((strncmp (str, "tv off", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("OFF"); देरी (200); }