जीएसएम मॉड्यूल का उपयोग कई संचार उपकरणों में किया जाता है जो जीएसएम (मोबाइल संचार के लिए ग्लोबल सिस्टम) तकनीक पर आधारित हैं। इसका उपयोग कंप्यूटर का उपयोग करके जीएसएम नेटवर्क के साथ बातचीत करने के लिए किया जाता है। GSM मॉड्यूल केवल AT कमांड को समझता है, और उसी के अनुसार प्रतिक्रिया दे सकता है। सबसे बुनियादी कमांड "एटी" है, अगर जीएसएम ठीक जवाब देता है तो यह अच्छा काम कर रहा है अन्यथा यह "एरोर" के साथ प्रतिक्रिया करता है। एटीए जैसे विभिन्न एटी कमांड हैं जैसे कॉल का जवाब देने के लिए एटीडी, कॉल डायल करने के लिए एटीडी, संदेश पढ़ने के लिए एटी + सीएमजीआर, एसएमएस भेजने के लिए एटी + सीएमजीएस आदि। एटी कमांड को कैरिज रिटर्न यानी हेक्स में पालन किया जाना चाहिए।), जैसे "एटी + CMGS \ r"। हम इन आदेशों का उपयोग करके जीएसएम मॉड्यूल का उपयोग कर सकते हैं।
8051 के साथ जीएसएम इंटरफेसिंग
पीसी का उपयोग करने के बजाय, हम जीएसएम मॉड्यूल से प्रतिक्रिया प्राप्त करने के लिए जीएसएम मॉड्यूल और एलसीडी के साथ बातचीत करने के लिए माइक्रोकंट्रोलर्स का उपयोग कर सकते हैं। इसलिए हम 8051 माइक्रोकंट्रोलर (AT89S52) के साथ जीएसएम को इंटरफ़ेस करने जा रहे हैं । 8051 के साथ जीएसएम को इंटरफ़ेस करना बहुत आसान है, हमें बस माइक्रोकंट्रोलर से एटी कमांड भेजने और जीएसएम से प्रतिक्रिया प्राप्त करने और इसे एलसीडी पर प्रदर्शित करने की आवश्यकता है। हम पिन 10 (RXD) और 11 (TXD) का उपयोग करके जीएसएम के साथ संचार करने के लिए माइक्रोकंट्रोलर के सीरियल पोर्ट का उपयोग कर सकते हैं।
पहले हमें एलसीडी को 8051 से कनेक्ट करने की आवश्यकता है, आप इसे यहां से सीख सकते हैं: 8051 माइक्रोकंट्रोलर के साथ एलसीडी इंटरफेसिंग। फिर हमें जीएसएम मॉड्यूल को 8051 से कनेक्ट करने की आवश्यकता है, अब यहां हमें कुछ ध्यान देना चाहिए। पहले आपको यह जांचने की आवश्यकता है कि क्या आपका जीएसएम मॉड्यूल टीटीएल तर्क पर काम करने में सक्षम है या यह केवल आरएस 32 के साथ काम कर सकता है। मूल रूप से अगर आपके मॉड्यूल में बोर्ड पर RX और TX (GND के साथ) पिन हैं तो यह TTL तर्क पर काम कर सकता है। और अगर इसमें कोई RX, TX पिन नहीं है और केवल एक RS232 पोर्ट (9 के साथ सीरियल पोर्ट) है, तो आपको सीरियल पोर्ट को माइक्रोकंट्रोलर से कनेक्ट करने के लिए MAX232 IC का उपयोग करने की आवश्यकता है। मूल रूप से MAX232सीरियल डेटा को TTL तर्क में बदलने के लिए उपयोग किया जाता है क्योंकि माइक्रोकंट्रोलर केवल TTL तर्क पर काम कर सकता है। लेकिन अगर जीएसएम मॉड्यूल में RX, TX पिन है, तो आपको MAX232 या किसी भी सीरियल कनवर्टर का उपयोग करने की आवश्यकता नहीं है, आप सीधे GSM के RX को 8051 के TX (PIN 11) से जोड़ सकते हैं और GSM के TX को 8051 के RX (पिन 10) से जोड़ सकते हैं। । हमारे मामले में मैंने SIM900A मॉड्यूल का उपयोग किया है और इसमें RX, TX पिन है इसलिए मैंने MAX232 का उपयोग नहीं किया है।
AT89S52 माइक्रोकंट्रोलर के साथ जीएसएम इंटरफेसिंग के लिए सर्किट आरेख को उपरोक्त आंकड़े में दिखाया गया है। अब कनेक्शन के बाद, हमें बस एटी कमांड को जीएसएम पर भेजने और एलसीडी पर अपनी प्रतिक्रिया प्राप्त करने के लिए प्रोग्राम लिखना होगा। ऊपर वर्णित के रूप में कई एटी कमांड्स हैं, लेकिन इस लेख का हमारा दायरा सिर्फ जीएसएम के साथ इंटरफेस करने के लिए है 8051, इसलिए हम बस "एटी" कमांड भेजने जा रहे हैं जिसके बाद "आर" (हेक्स में 0 डी)। यह हमें "ओके" प्रतिक्रिया देगा। लेकिन आप जीएसएम की सभी सुविधाओं का उपयोग करने के लिए इस कार्यक्रम का विस्तार कर सकते हैं।
कोड स्पष्टीकरण
सभी एलसीडी संबंधित कार्यों के अलावा, यहां हमने सीरियल पोर्ट और टाइमर मोड रजिस्टर (TMOD) का उपयोग किया है। आप हमारे 8051 प्रोजेक्ट्स सेक्शन में जाकर एलसीडी फंक्शन्स और अन्य कोड के बारे में जान सकते हैं, यहाँ मैं धारावाहिक संचार से संबंधित कोड फ़ंक्शंस के बारे में बता रहा हूँ:
GSM_init () फ़ंक्शन:
यह फ़ंक्शन माइक्रोकंट्रोलर के लिए बॉड्रेट को सेट करने के लिए उपयोग किया जाता है। बॉड्रेट, बिट्स / सेकंड ट्रांसमिट या प्राप्त करने के अलावा कुछ नहीं है। और हमें जीएसएम मॉड्यूल की बॉड दर यानी 9600 के लिए 8051 के बॉड्रेट से मेल खाना चाहिए। हमने मोड 1 में टाइमर 1 (8-बिट ऑटो-रीलोड मोड) का उपयोग किया है, जिससे टीएमओडी रजिस्टर 0X20 और टाइमर 1 के उच्चतर बाइट को सेट किया गया है। (TH1) 0XFD को 9600 की बॉड दर प्राप्त करने के लिए। इसके अलावा SCON रजिस्टर का उपयोग धारावाहिक संचार के मोड को सेट करने के लिए किया जाता है, हमने मोड 1 (8-बिट UART) को सक्षम करने के लिए उपयोग किया है।
GSM_write फ़ंक्शन:
SBUF (सीरियल बफर स्पेशल फंक्शन रजिस्टर) का उपयोग सीरियल कम्युनिकेशन के लिए किया जाता है, जब भी हम किसी भी बाइट को सीरियल डिवाइस में भेजना चाहते हैं तो हम एसबीयूएफ रजिस्टर में उस बाइट को डालते हैं, जब पूरा बाइट भेजा जाता है तो TI बिट हार्डवेयर द्वारा सेट किया जाता है। हमें अगली बाइट भेजने के लिए इसे रीसेट करना होगा। यह एक ध्वज है जो इंगित करता है कि बाइट सफलतापूर्वक भेजा गया है। TI SCON रजिस्टर का दूसरा बिट है। हमने इस फ़ंक्शन का उपयोग करके "AT" भेजा है।
GSM_read फ़ंक्शन:
भेजने के समान, जब भी हमें बाहरी उपकरण से कोई बाइट मिलती है जिसे बाइट एसबीयूएफ रजिस्टर में डाल दिया जाता है, तो हमें इसे पढ़ने की जरूरत है। और जब भी पूरा बाइट मिला है तो RI बिट हार्डवेयर द्वारा सेट किया गया है। हमें अगली बाइट प्राप्त करने के लिए इसे रीसेट करना होगा। RI SCON रजिस्टर का पहला बिट है। हमने इस फ़ंक्शन का उपयोग करके प्रतिक्रिया "ओके" पढ़ी है।