विषयसूची:

Arduino सेलुलर शील्ड ट्यूटोरियल: 9 चरण (चित्रों के साथ)
Arduino सेलुलर शील्ड ट्यूटोरियल: 9 चरण (चित्रों के साथ)

वीडियो: Arduino सेलुलर शील्ड ट्यूटोरियल: 9 चरण (चित्रों के साथ)

वीडियो: Arduino सेलुलर शील्ड ट्यूटोरियल: 9 चरण (चित्रों के साथ)
वीडियो: Amazing arduino project 2024, नवंबर
Anonim
Arduino सेलुलर शील्ड ट्यूटोरियल
Arduino सेलुलर शील्ड ट्यूटोरियल

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

चरण 1: जाओ सामान प्राप्त करें

जाओ सामान ले जाओ
जाओ सामान ले जाओ

आपको चाहिये होगा:

(X1) सेल्युलर शील्ड (X1) स्टैकेबल Arduino हेडर्स (X1) क्वाड बैंड एंटीना (X1) Arduino Uno

(ध्यान दें कि इस पृष्ठ के कुछ लिंक संबद्ध लिंक हैं। यह आपके लिए आइटम की लागत को नहीं बदलता है। मुझे जो भी आय प्राप्त होती है उसे मैं नई परियोजनाओं में पुनर्निवेश करता हूं। यदि आप वैकल्पिक आपूर्तिकर्ताओं के लिए कोई सुझाव चाहते हैं, तो कृपया मुझे बताएं जानना।)

चरण 2: मिलाप शीर्षलेख

सोल्डर हेडर
सोल्डर हेडर
सोल्डर हेडर
सोल्डर हेडर
सोल्डर हेडर
सोल्डर हेडर

हेडर को ढाल में डालें और उन्हें जगह में मिलाप करें।

चरण 3: सम्मिलित करें

डालने
डालने
डालने
डालने

हेडर पिन को Arduino पर सॉकेट में डालें।

चरण 4: पुनर्विक्रेता

पुनर्विक्रेता
पुनर्विक्रेता

SM5100B मॉड्यूल के लिए एंटीना केबल का कनेक्शन आमतौर पर बहुत अच्छा नहीं होता है। कनेक्टिविटी सुनिश्चित करने के लिए प्रत्येक केबल के कनेक्शन को मॉड्यूल में फिर से मिलाएं।

चरण 5: एंटीना संलग्न करें

एंटीना संलग्न करें
एंटीना संलग्न करें
एंटीना संलग्न करें
एंटीना संलग्न करें

एंटीना को एंटीना केबल पर थ्रेड करें।

चरण 6: सिम कार्ड डालें

सिम कार्ड डालें
सिम कार्ड डालें
सिम कार्ड डालें
सिम कार्ड डालें
सिम कार्ड डालें
सिम कार्ड डालें
सिम कार्ड डालें
सिम कार्ड डालें

सिम कार्ड को सिम कार्ड सॉकेट में सुरक्षित रूप से डालें।

चरण 7: प्रारंभ करें

प्रारंभ
प्रारंभ

Arduino पर निम्न कोड चलाएँ:

/*

स्पार्कफन सेलुलर शील्ड - नमूना स्केच के माध्यम से पास-थ्रू स्पार्कफन इलेक्ट्रॉनिक्स रयान ओवेन्स द्वारा लिखित 3/विवरण: यह स्केच स्पार्कफुन इलेक्ट्रॉनिक्स से एक सेलुलर शील्ड के लिए एक Arduino ड्यूमिलानोव को इंटरफेस करने के लिए लिखा गया है। सेलुलर शील्ड को यहां खरीदा जा सकता है: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 इस स्केच में सीरियल कमांड को टर्मिनल प्रोग्राम से SM5100B सेल्युलर मॉड्यूल में पास किया जाता है; और सेलुलर मॉड्यूल से प्रतिक्रियाएँ टर्मिनल में पोस्ट की जाती हैं। अधिक जानकारी स्केच टिप्पणियों में मिलती है। डिवाइस का उपयोग करने के लिए बोर्ड पर सिम कार्ड धारक में एक सक्रिय सिम कार्ड डाला जाना चाहिए! यह स्केच अर्दुइनियाना के मिकाल हार्ट द्वारा लिखित न्यूसॉफ्टसेरियल लाइब्रेरी का उपयोग करता है। पुस्तकालय इस यूआरएल पर डाउनलोड किया जा सकता है: https://arduiniana.org/libraries/NewSoftSerial/ यह कोड क्रिएटिव कॉमन्स एट्रिब्यूशन लाइसेंस के तहत प्रदान किया गया है। अधिक जानकारी यहां पाई जा सकती है: https://creativecommons.org/licenses/by/3.0/ (हमारे कोड का स्वतंत्र रूप से उपयोग करें! कृपया हमें क्रेडिट देना याद रखें जहां यह देय है। धन्यवाद!) */ #include // NewSoftSerial शामिल करें सेलुलर मॉड्यूल को सीरियल कमांड भेजने के लिए लाइब्रेरी। #शामिल // स्ट्रिंग जोड़तोड़ के लिए प्रयुक्त चार आने वाली_चार = 0; // सीरियल पोर्ट से आने वाले कैरेक्टर को होल्ड करेगा। सॉफ्टवेयर सीरियल सेल(2, 3); // एक 'नकली' सीरियल पोर्ट बनाएं। पिन 2 आरएक्स पिन है, पिन 3 टीएक्स पिन है। शून्य सेटअप () {// संचार के लिए सीरियल पोर्ट को इनिशियलाइज़ करें। सीरियल.बेगिन (९६००); सेल.बेगिन (९६००); //आएँ शुरू करें! Serial.println ("SM5100B संचार शुरू कर रहा है …"); } शून्य लूप () {// यदि सेल्युलर मॉड्यूल से कोई कैरेक्टर आता है… // सेलुलर सीरियल पोर्ट से चरित्र प्राप्त करें। सीरियल.प्रिंट (इनकमिंग_चार); // आने वाले चरित्र को टर्मिनल पर प्रिंट करें।) // टर्मिनल से आने वाले चरित्र को प्राप्त करें if(incoming_char == '~') // यदि यह एक टिल्ड है… आने वाले_चार = 0x0D; // … कैरिज रिटर्न में कनवर्ट करें और अगर (incoming_char == '^') // अगर यह एक अप कैरेट है … आने वाली_चार = 0x1A; // … ctrl-Z सेल में कनवर्ट करें। प्रिंट (incoming_char); // चरित्र को सेलुलर मॉड्यूल में भेजें। सीरियल.प्रिंट (इनकमिंग_चार); // इसे टर्मिनल पर वापस प्रतिध्वनित करें } } /* AT कमांड सेट के लिए SM5100B क्विक रेफरेंस *जब तक अन्यथा नोट नहीं किया गया AT कमांड 'एंटर' कुंजी दबाकर समाप्त हो जाते हैं। 1.) सुनिश्चित करें कि आपके देश के लिए उचित जीएसएम बैंड का चयन किया गया है। यूएस के लिए बैंड को 7 पर सेट किया जाना चाहिए। बैंड को सेट करने के लिए, इस कमांड का उपयोग करें: AT+SBAND=7 2.) Arduino पर स्थापित शील्ड के साथ पावर करने के बाद, सत्यापित करें कि मॉड्यूल सिम कार्ड को पढ़ता है और पहचानता है। एक टेरिमल विंडो खुली और Arduino पोर्ट और 9600 buad पर सेट होने के साथ, Arduino पर पावर। स्टार्टअप अनुक्रम कुछ इस तरह दिखना चाहिए: SM5100B संचार शुरू करना… +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "एमई", 1 मॉड्यूल के साथ संचार पहली पंक्ति प्रदर्शित होने के बाद शुरू होता है। संचार की दूसरी पंक्ति, +SIND: 10, हमें बताती है कि क्या मॉड्यूल एक सिम कार्ड देख सकता है। यदि सिम कार्ड का पता चला है तो हर दूसरा क्षेत्र 1 है; यदि सिम कार्ड का पता नहीं चलता है तो प्रत्येक अन्य फ़ील्ड 0. 3 है।) आदेश भेजने से पहले नेटवर्क कनेक्शन की प्रतीक्षा करें। +SIND: 10 प्रतिक्रिया के बाद मॉड्यूल स्वचालित रूप से नेटवर्क से कनेक्ट करने का प्रयास करना शुरू कर देगा। तब तक प्रतीक्षा करें जब तक कि आपको निम्नलिखित प्रतिनिधि न मिलें: +SIND: 11 +SIND: 3 +SIND: 4 सेलुलर मॉड्यूल से +SIND प्रतिक्रिया मॉड्यूल की स्थिति बताती है। प्रतिक्रिया अर्थों का एक त्वरित रन-डाउन यहां दिया गया है: 0 सिम कार्ड हटाया गया 1 सिम कार्ड डाला गया 2 रिंग मेलोडी 3 एटी मॉड्यूल आंशिक रूप से तैयार है 4 एटी मॉड्यूल पूरी तरह से तैयार है 5 रिलीज कॉल की आईडी 6 रिलीज कॉल जिसका आईडी = 7 नेटवर्क सेवा है एक आपातकालीन कॉल के लिए उपलब्ध 8 नेटवर्क खो गया है 9 ऑडियो ऑन 10 इनिट वाक्यांश के बाद प्रत्येक फोनबुक की स्थिति दिखाएं 11 नेटवर्क में पंजीकृत नेटवर्क पर पंजीकरण करने के बाद आप बातचीत शुरू कर सकते हैं। आरंभ करने के लिए यहां कुछ सरल और उपयोगी आदेश दिए गए हैं: कॉल करने के लिए: एटी कमांड - ATDxxxyyyzzzz प्रारूप के साथ फोन नंबर: (xxx)yyy-zzz try ---- cell.print("ATDxxxyyyyzzzz"); यदि आप एक फ़ोन कॉल करते हैं, तो सुनिश्चित करें कि डिवाइस डेटाशीट को एक माइक्रोफ़ोन और स्पीकर को शील्ड से जोड़ने के लिए संदर्भित करें। एक txt संदेश भेजने के लिए: AT कमांड - AT+CMGF=1 यह कमांड टेक्स्ट मैसेज मोड को 'टेक्स्ट' पर सेट करता है। एटी कमांड = एटी + सीएमजीएस = "xxxyyyzzzz" (कैरिज रिटर्न) 'टेक्स्ट टू सेंड' (CTRL+Z) यह कमांड वर्णन करने में थोड़ा भ्रमित करने वाला है। फ़ोन नंबर, प्रारूप (xxx)yyy-zzzz में दोहरे उद्धरण चिह्नों के अंदर जाता है। कोटेशन बंद करने के बाद 'एंटर' दबाएं। इसके बाद भेजने के लिए टेक्स्ट दर्ज करें। CTRL+Z भेजकर AT कमांड को समाप्त करें। यह वर्ण Arduino के टर्मिनल से नहीं भेजा जा सकता। हाइपरटर्मिनल, तेरा टर्म, ब्रे टर्मिनल या एक्स-सीटीयू जैसे वैकल्पिक टर्मिनल प्रोग्राम का उपयोग करें। SM5100B मॉड्यूल इससे कहीं अधिक कर सकता है! मॉड्यूल के बारे में अधिक जानने के लिए उत्पाद पृष्ठ पर डेटाशीट देखें।*/टर्मिनल में सीरियल पोर्ट खोलें। एक मैक पर इसे टाइप करके पूरा किया जाता है: स्क्रीन /dev/tty.usbmodemfa131 9600 (tty.usbmodemfa131 को अपने Arduino के सीरियल पते से बदलें) निम्नलिखित अनुक्रम को वापस देखने के लिए प्रतीक्षा करें: SM5100B संचार शुरू करना… +SIND: 3 +SIND: 4 +SIND: 11 (यदि यह क्रम नहीं लौटाया जाता है तो ऊपर दिए गए कोड के नीचे सूचीबद्ध त्रुटि कोड की जांच करें, और उचित रूप से डीबग करें। आपको उत्तर अमेरिकी उपयोग के लिए मॉड्यूल सेट करने की आवश्यकता हो सकती है - नीचे देखें - इससे पहले कि यह नेटवर्क पर पंजीकृत हो (यानी +SIND 11)) निम्नलिखित कमांड को सीरियल पोर्ट पर भेजें: इसे उत्तर अमेरिकी उपयोग के लिए भेजें: AT+SBAND=7 वर्तमान समय निर्धारित करें - yy/mm/dd: AT+CCLK="13/05/15, 11: 02:00" टेस्ट कॉल भेजें: ATD4155551212

चरण 8: पाठ संदेश

मूल संदेश
मूल संदेश

अपने Arduino लाइब्रेरी में SerialGSM डाउनलोड और इंस्टॉल करें।

टेक्स्ट संदेश भेजने के लिए ट्रोनिक्सस्टफ सेलुलर मॉड्यूल ट्यूटोरियल पर जाएं और उदाहरण कोड 26.3 का उपयोग करें:https://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/

यदि आप पाठ प्राप्त करने के लिए उदाहरण कोड चलाना चाहते हैं, तो एक एलईडी को पिन 8 से कनेक्ट करें और इसे 220 ओम अवरोधक के साथ श्रृंखला में जमीन पर रखें।

टेक्स्ट संदेश भेजने के लिए ट्रोनिक्सस्टफ सेल्युलर मॉड्यूल ट्यूटोरियल पर जाएं और उदाहरण कोड 26.5 का उपयोग करें:https://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/

अपने सेल्युलर मॉड्यूल में निम्न में से किसी एक कमांड को टेक्स्ट करें:

// एलईडी को #a1. चालू करता है

// एलईडी को बंद कर देता है #a0

चरण 9: आवाज

आवाज़
आवाज़
आवाज़
आवाज़
आवाज़
आवाज़

ग्राउंडेड ऑडियो केबल का उपयोग करके माइक्रोफ़ोन और स्पीकर को शील्ड से कनेक्ट करें। सेंटर सिग्नल वायर को ऑडियो प्लस टर्मिनलों पर जाना चाहिए और परिरक्षण को शील्ड पर संबंधित नकारात्मक टर्मिनलों पर जाना चाहिए। इन केबलों को माइक्रोफ़ोन और स्पीकर की तरफ समान रूप से जोड़ा जाना चाहिए।

वॉयस कॉल को इनिशियलाइज़ करने के लिए निम्नलिखित कोड अपलोड करें:

//**********************************************************************************

// कॉल करें // // बफरिंग कोड के आधार पर: // // //********************************************************************************** #include #define BUFFSIZ 90 //Set up buffer array char at_buffer[BUFFSIZ]; char buffidx; //Network state variables int network_registered; int network_AT_ready; //Code state variables int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; //Will hold the incoming character from the Serial Port. char incoming_char=0; //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. SoftwareSerial cell(2, 3); void setup() { //Initialize Arduino serial port for debugging. Serial.begin(9600); //Initialize virtual serial port to talk to Phone. cell.begin(9600); //Hello World. Serial.println("Starting SM5100B Communication…"); delay(1000); //Set initial network state network_registered = 0; network_AT_ready = 0; } //Read AT strings from the cellular shield void readATString(void) { char c; buffidx= 0; // start at begninning for (x = 0; x 0) { c=cell.read(); if (c == -1) { at_buffer[buffidx] = '\0'; return; } if (c == '\n') { continue; } if ((buffidx == BUFFSIZ - 1) || (c == '\r')){ at_buffer[buffidx] = '\0'; return; } at_buffer[buffidx++]= c; } } } //Process the AT strings void ProcessATString() { if(strstr(at_buffer, "+SIND: 8") != 0) { network_registered = 0; Serial.println("network Network Not Available"); } if(strstr(at_buffer, "+SIND: 11") != 0) { network_registered=1; Serial.println("network Registered"); } if(strstr(at_buffer, "+SIND: 4") != 0) { network_AT_ready=1; Serial.println("network AT Ready"); } } void loop() { /* If called for the first time, loop until network and AT is ready */ if(firstTimeInLoop == 1) { firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) { readATString(); ProcessATString(); } } //LET'S MAKE A PHONE CALL! if(firstTimeInOtherLoop == 1){ //Change the 10 digit phone number to whatever you wish cell.println("ATD4155551212"); firstTimeInOtherLoop = 0; } }

To receive a voice call upload the following code

//**********************************************************************************

// ANSWER A CALL // // BUFFERING CODE BASED UPON: // ////////**************************************************************************** ********************** #include #define BUFFSIZ 90 // बफर ऐरे चार सेट करें at_buffer [बफ़सीज़]; चार बफिडक्स; // नेटवर्क स्थिति चर int network_registered; इंट नेटवर्क_एटी_रेडी; // कोड राज्य चर int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; इंट एक्स; // सीरियल पोर्ट से आने वाले कैरेक्टर को होल्ड करेगा। चार आने वाली_चार = 0; // एक 'नकली' सीरियल पोर्ट बनाएं। पिन 2 आरएक्स पिन है, पिन 3 टीएक्स पिन है। सॉफ्टवेयर सीरियल सेल(2, 3); शून्य सेटअप () {// डिबगिंग के लिए Arduino सीरियल पोर्ट को इनिशियलाइज़ करें। सीरियल.बेगिन (९६००); // फोन से बात करने के लिए वर्चुअल सीरियल पोर्ट को इनिशियलाइज़ करें। सेल.बेगिन (९६००); //नमस्ते दुनिया। Serial.println ("SM5100B संचार शुरू कर रहा है …"); देरी (1000); // प्रारंभिक नेटवर्क स्थिति सेट करें network_registered = 0; नेटवर्क_एटी_रेडी = 0; } // सेलुलर शील्ड से एटी स्ट्रिंग्स पढ़ें शून्य रीडएटीस्ट्रिंग (शून्य) {चार सी; बफिडक्स = 0; // के लिए (x = 0; x 0) {c=cell.read(); अगर (सी == -1) {at_buffer[buffidx] = '\0'; वापसी; } अगर (सी == '\ n') {जारी रखें; } अगर ((buffidx == BUFFSIZ - 1) || (c == '\r')){ at_buffer[buffidx] = '\0'; वापसी; } at_buffer[buffidx++]= c; } } } // एटी स्ट्रिंग्स को प्रोसेस करें प्रोसेसएटीस्ट्रिंग () {if(strstr(at_buffer, "+SIND: 8") != 0) { network_registered = 0; Serial.println ("नेटवर्क नेटवर्क उपलब्ध नहीं है"); } if(strstr(at_buffer, "+SIND: 11") != 0) { network_registered=1; Serial.println ("नेटवर्क पंजीकृत"); } if(strstr(at_buffer, "+SIND: 4") != 0) { network_AT_ready=1; Serial.println ("नेटवर्क एटी रेडी"); } } शून्य लूप() {/* अगर पहली बार कॉल किया जाता है, तो नेटवर्क और एटी तैयार होने तक लूप करें */ if(firstTimeInLoop == 1) { firstTimeInLoop = 0; जबकि (network_registered == 0 || network_AT_ready == 0) {readATString (); प्रोसेसएटीस्ट्रिंग (); } } if(firstTimeInOtherLoop == 1){ // इनकमिंग कॉल की तलाश करें if(strstr(at_buffer, "+CPAS: 3") != 0) {// फोन सेल का जवाब दें। फर्स्टटाइमइनऑथरलूप = 0; } } }

छवि
छवि

क्या आपको यह उपयोगी, मनोरंजक या मनोरंजक लगा? मेरे नवीनतम प्रोजेक्ट देखने के लिए @madeineuphoria को फ़ॉलो करें।

सिफारिश की: