- आवश्यक घटक:
- कार्य स्पष्टीकरण:
- रास्पबेरी पाई मोबाइल फोन की चार विशेषताएं बताते हुए:
- सर्किट आरेख और स्पष्टीकरण:
- प्रोग्रामिंग स्पष्टीकरण:
इस DIY प्रोजेक्ट में हम रास्पबेरी पाई का उपयोग करके एक साधारण मोबाइल फोन बनाने जा रहे हैं, जिसमें जीएसएम मॉड्यूल का उपयोग कॉल करने या उसका जवाब देने और एसएमएस भेजने या पढ़ने के लिए किया जाता है , और इस रास्पबेरी पाई फोन में इस पर बात करने के लिए माइक और स्पीकर हैं। फोन । यह परियोजना रास्पबेरी पाई के साथ जीएसएम मॉड्यूल के एक उचित अंतराल के रूप में भी काम करेगी, किसी भी फोन के बुनियादी कार्यों को संचालित करने के लिए आवश्यक सभी कोड के साथ। पहले हमने Arduino का उपयोग करके एक ही तरह का Simple Mobile Phone बनाया है, यहाँ देखें
आवश्यक घटक:
- रास्पबेरी पाई 3 (कोई भी मॉडल)
- जीएसएम मॉड्यूल
- 16x2 एलसीडी
- 4x4 कीपैड (उपयोगकर्ता झिल्ली कीपैड का उपयोग कर सकता है)
- 10k पॉट
- ब्रेड बोर्ड
- जम्पर तार को जोड़ना
- बिजली की आपूर्ति
- वक्ता
- माइक
- सिम कार्ड
- वक्ता
- ऑडियो एम्पलीफायर सर्किट (वैकल्पिक)
कार्य स्पष्टीकरण:
इस रास्पबेरी पाई मोबाइल फोन परियोजना में, हमने पूरे सिस्टम की विशेषताओं को नियंत्रित करने और इस प्रणाली के सभी घटकों को नियंत्रित करने के लिए जीएसएम मॉड्यूल और रास्पबेरी पाई 3 का उपयोग किया है। एक 4x4 अक्षरांकीय कीपैड की तरह आदानों की सभी प्रकार के लेने के लिए प्रयोग किया जाता है: मोबाइल नंबर, प्रकार संदेशों दर्ज करें, एक फोन करना, एक फोन, भेजें एसएमएस प्राप्त, पढ़ एसएमएस आदि जीएसएम मॉड्यूल SIM900A बुला और संदेश भेजने के लिए नेटवर्क के साथ संवाद करने में किया जाता है उद्देश्य। हमने एक एमआईसी और वॉयस कॉल और रिंग साउंड के लिए एक स्पीकर का भी हस्तक्षेप किया है और एक 16x2 एलसीडी का उपयोग संदेश, निर्देश और अलर्ट दिखाने के लिए किया जाता है।
अल्फ़ान्यूमेरिक एक ही कीपैड का उपयोग करके संख्या और अक्षर दोनों दर्ज करने की एक विधि है। इस पद्धति में, हमने रास्पबेरी पाई के साथ 4x4 कीपैड को बाधित किया है और अल्फाबेट्स को स्वीकार करने के लिए कोड लिखा है, नीचे दिए गए कोड अनुभाग में कोड की जांच करें।
इस परियोजना का काम करना आसान है। सभी सुविधाओं को अल्फ़ान्यूमेरिक कीपैड का उपयोग करके किया जाएगा। चेक पूर्ण कोड और एक डेमो वीडियो नीचे ठीक से प्रक्रिया को समझने में। यहां हम नीचे दिए गए प्रोजेक्ट्स की सभी चार विशेषताओं के बारे में बताने जा रहे हैं।
रास्पबेरी पाई मोबाइल फोन की चार विशेषताएं बताते हुए:
1. कॉल करें:
हमारे रास्पबेरी पाई आधारित फोन का उपयोग करके एक कॉल करने के लिए, हमें 'सी' दबाना होगा और फिर उस मोबाइल नंबर को दर्ज करना होगा जिस पर हम कॉल करना चाहते हैं। अल्फ़ान्यूमेरिक कीपैड का उपयोग करके नंबर दर्ज किया जाएगा। नंबर दर्ज करने के बाद हमें फिर से 'C' प्रेस करना होगा। अब रास्पबेरी पाई एटी कमांड का उपयोग करके कॉल को दर्ज संख्या से जोड़ने के लिए प्रक्रिया करेगा:
ATDxxxxxxxxxxxx;
2. एक कॉल प्राप्त करें:
कॉल प्राप्त करना बहुत आसान है। जब कोई आपके सिस्टम के सिम नंबर पर कॉल कर रहा है, जो कि जीएसएम मॉड्यूल में है, तो आपका सिस्टम आने वाले नंबर के साथ एलसीडी पर 'इनकमिंग…' संदेश दिखाएगा। अब हमें केवल इस कॉल में भाग लेने के लिए 'ए' प्रेस करने की आवश्यकता है। जब हम 'ए' दबाते हैं, तो रास्पबेरी पाई जीएसएम मॉड्यूल को कमांड देगी:
एटीए
3. एसएमएस भेजें:
जब हम अपने रास्पबेरी पाई आधारित फोन का उपयोग करके एक एसएमएस भेजना चाहते हैं, तो हमें 'डी' प्रेस करने की आवश्यकता है। अब सिस्टम रिसीपिएंट नंबर के लिए पूछेगा, इसका मतलब है 'किसको' हम एसएमएस भेजना चाहते हैं। नंबर दर्ज करने के बाद हमें फिर से 'डी' प्रेस करना होगा और अब एलसीडी संदेश के लिए पूछता है। अब हमें संदेश टाइप करने की आवश्यकता है, जैसे कि हम सामान्य मोबाइल में दर्ज करते हैं, कीपैड का उपयोग करके और फिर संदेश दर्ज करने के बाद हमें एसएमएस भेजने के लिए फिर से 'डी' प्रेस करना होगा। एसएमएस भेजने के लिए रास्पबेरी पाई दी गई कमांड भेजती है:
AT + CMGF = 1
और SMS भेजने के लिए 26 को GSM भेजें।
4. एसएमएस प्राप्त करें और पढ़ें:
यह सुविधा भी सरल है। इसमें, जीएसएम एसएमएस प्राप्त करेगा और इसे सिम कार्ड में संग्रहीत करेगा। और रास्पबेरी पाई लगातार UART पर प्राप्त एसएमएस संकेत की निगरानी करती है। जब भी कोई नया संदेश आता है, तो एलसीडी "नया संदेश" पाठ दिखाएगा और फिर हमें एसएमएस पढ़ने के लिए सिर्फ 'बी' प्रेस करना होगा। एसएमएस प्राप्त संकेत है:
+ CMTI: "SM", 6 जहां 6 संदेश स्थान है जहां यह सिम कार्ड में संग्रहीत है।
जब रास्पबेरी पाई को यह 'एसएमएस प्राप्त' संकेत मिलता है तो यह एसएमएस के भंडारण स्थान को निकालता है और प्राप्त एसएमएस को पढ़ने के लिए जीएसएम को कमांड भेजता है । और एलसीडी पर एक 'नया संदेश' पाठ दिखाएं।
AT + CMGR =
अब जीएसएम रास्पबेरी पाई को संग्रहीत संदेश भेजता है और फिर रास्पबेरी पाई मुख्य एसएमएस निकालता है और इसे एलसीडी पर प्रदर्शित करता है।
नोट: एमआईसी और स्पीकर के लिए कोई कोडिंग नहीं है।
चेक पूर्ण कोड और एक डेमो वीडियो नीचे ठीक से प्रक्रिया को समझने में।
सर्किट आरेख और स्पष्टीकरण:
16x2 एलसीडी पिन आरएस, एन, डी 4, डी 5, डी 6 और डी 7 क्रमशः रास्पबेरी पाई के जीपीआईओ पिन नंबर 18, 23, 24, 25, 8 और 7 से जुड़े हैं। जीएसएम मॉड्यूल के आरएक्स और टीएक्स पिन सीधे रास्पबेरी पाई के पिन टीएक्स और आरएक्स से क्रमशः जुड़े हुए हैं (ग्राउंड ऑफ रास्पबेरी पाई और जीएसएम को एक दूसरे के साथ जोड़ा जाना चाहिए)। 4x4 कीपैड रो पिन R1, R2, R3, R4 सीधे GPIO पिन नंबर 12,16, 20, रास्पबेरी पाई के 21 और कीपैड C1, C2, C3, C4 के कॉलम पिन से जुड़े होते हैं, इन्हें GPIO पिन नंबर 26, 19 के साथ जोड़ा जाता है। रास्पबेरी पाई के 13 और 6। MIC सीधे GSM मॉड्यूल के mic + और mic- से जुड़ा होता है और स्पीकर आउटपुट ऑडियो को बढ़ाने के लिए इस ऑडियो एम्पलीफायर सर्किट की मदद से GSM मॉड्यूल के लिए sp + और sp- पिन से जुड़ा होता है। यह ऑडियो एम्पलीफायर सर्किट वैकल्पिक है और आप स्पीकर को सीधे इस ऑडियो एम्पलीफायर के बिना जीएसएम मॉड्यूल से जोड़ सकते हैं।
प्रोग्रामिंग स्पष्टीकरण:
इस रास्पबेरी पाई मोबाइल फोन का प्रोग्रामिंग हिस्सा शुरुआती लोगों के लिए थोड़ा जटिल है। हम यहां कार्यक्रम के लिए पायथन भाषा का उपयोग कर रहे हैं । यदि आप रास्पबेरी पाई में शुरुआत कर रहे हैं, तो आपको रास्पबेरी पाई के साथ शुरुआत करने और पाई में रास्पबियन जेसी ओएस को स्थापित करने और कॉन्फ़िगर करने के लिए हमारे पिछले ट्यूटोरियल की जांच करनी चाहिए।
इस कोड में, हमने डी कीपैड (): नंबर दर्ज करने के लिए साधारण कीपैड को इंटरफेस करने के लिए कार्य किया है । और अल्फ़ाबेट्स में प्रवेश करने के लिए, हमने अल्फ़ा कीपैड () बनाया है : ताकि अल्फ़ाज़ों में भी प्रवेश करने के लिए उसी कीपैड का उपयोग किया जा सके। अब हमने इस कीपैड मल्टी फंक्शनिंग को Arduino keypad लाइब्रेरी के समान बनाया है। इस कीपैड का उपयोग करके हम केवल 10 कुंजियों का उपयोग करके वर्ण और पूर्णांक दर्ज कर सकते हैं।
जैसे अगर हम कुंजी 2 (abc2) दबाते हैं, तो यह 'a' दिखाएगा और यदि हम इसे फिर से दबाते हैं तो यह 'a' से 'b' की जगह लेगा और यदि हम तीन बार दबाते हैं तो यह उसी स्थान पर 'c' दिखाएगा एलसीडी में। यदि हम कुंजी दबाने के बाद कुछ समय तक प्रतीक्षा करते हैं, तो कर्सर एलसीडी में अगले स्थान पर स्वचालित रूप से चला जाएगा। अब हम अगले चार या संख्या में प्रवेश कर सकते हैं। अन्य कुंजियों के लिए भी यही प्रक्रिया लागू होती है।
def कीपैड (): j में रेंज के लिए (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 for i for रेंज (4): यदि gpio.input (ROW) = = 0: ch = MATRIX वापसी ch जबकि (gpio.input (ROW) == 0): पास gpio.output (COL, 1)
def अल्फाकेयपैड (): lcdclear () setCursor (x, y) lcdcmd (0x0f) संदेश = "" जबकि 1: कुंजी = 0 गिनती = 0 कुंजी = कीपैड () यदि कुंजी == 1 ': ind = 0 maxInd = 6 की = '1' गेटचेयर (की, इंड, मैक्सइंड)…………..
सबसे पहले, इस अजगर स्क्रिप्ट में हमने एलसीडी, कीपैड और अन्य घटकों के लिए कुछ आवश्यक पुस्तकालय और परिभाषित पिन शामिल किए हैं:
आयात RPi.GPIO को gpio आयात सीरियल आयात समय के रूप में संदेश = "" अल्फ़ा = "1! @!,:; ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ390" # "x = 0 y = 0 MATRIX =,]] ROW = COL =………………
अब पिंस को दिशा देने का समय आ गया है:
gpio.setwarnings (गलत) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5) gpio.OUT) gpio.setup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (नेतृत्व, gpio.OUT) gpio.setup (buz, gpio.OUT) gpio.setup (m11,) gpio.OUT) gpio.setup (m12, gpio.OUT) gpio.setup (बटन, gpio.IN) gpio.output (एलईडी, 0) gpio.output (buz, 0) gpio.output (m11, 0), gpio। आउटपुट (m12, 0)
फिर नीचे की तरह सीरियल संचार आरंभ करें:
सीरियल = सीरियल। सीरियल ("/ देव / ttyS0", बॉड्रेट = 9600, टाइमआउट = 2)
अब हमें एलसीडी ड्राइविंग के लिए कुछ फ़ंक्शन लिखने की आवश्यकता है। फंक्शन डिफ एलसीडीडीडी (ch): एलसीडी को कमांड भेजने के लिए प्रयोग किया जाता है और एलसीडी (डी) को डीफ्रेक्ट करने के लिए प्रयोग किया जाता है। इन फ़ंक्शंस के साथ, डीईईफ़ एलसीडीक्लेयर (): का उपयोग एलसीडी को साफ़ करने के लिए किया जाता है, सेटसर्स्टर (एक्स, वाई): का उपयोग एलसीडी पर कर्सर की स्थिति निर्धारित करने के लिए किया जाता है और एलसीडी (डीआईआर) को ख़राब करने के लिए प्रयोग किया जाता है।
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) अगर ch & 0x10 == 0x10: gpio.output (D4, 1)………………
def lcdwrite (ch): gpio.output (RS, 1) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) अगर ch & 0x10 == 0x10: gpio.output (D4, 1) यदि ch & 0x20 == 0x20: gpio.output (D5, 1)…………..
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) for i in रेंज (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n: 192 + x lcdcmd (n)
इसके बाद हमें एसएमएस भेजने, एसएमएस प्राप्त करने, कॉल करने और कॉल में भाग लेने के लिए कुछ फ़ंक्शन लिखने की आवश्यकता है।
फंक्शन डिफ कॉल (): कॉल करने के लिए उपयोग किया जाता है। और फ़ंक्शन डीईएफ़एक्ट कॉल (डेटा): का उपयोग एलसीडी पर आने वाले संदेश और संख्या को दिखाने के लिए किया जाता है। अंत में डीईएफ़च काल (): कॉल अटेंड करने के लिए उपयोग किया जाता है।
फंक्शन डी सेंडएमएस (): का उपयोग अल्फाकपैड () फ़ंक्शन की सहायता से संदेश लिखने और भेजने के लिए किया जाता है । और फ़ंक्शन डीईएस एसएमएस (डेटा): एसएमएस के स्थान को प्राप्त करने और पुनः प्राप्त करने के लिए उपयोग किया जाता है। अंत में डीईएस रीड्सएमएस (इंडेक्स): का उपयोग एलसीडी पर संदेश प्रदर्शित करने के लिए किया जाता है।
आप नीचे दिए गए कोड में उपरोक्त सभी कार्य पा सकते हैं।
तो यह है कि आप अपने रास्पबेरी पाई को जीएसएम मॉड्यूल की मदद से मोबाइल फोन में कैसे बदल सकते हैं । इसके अलावा इस रास्पबेरी पाई टच स्क्रीन स्मार्ट फोन की जांच करें।