- अवयव आवश्यक
- जीपीएस मॉड्यूल
- STM32F103C8 से बाहर पिन करें
- सर्किट आरेख और कनेक्शन
- जीपीएस मॉड्यूल Interfacing के लिए STM32F103C8 प्रोग्रामिंग
- GPS और STM32 के साथ अक्षांश और देशांतर ढूँढना
GPS ग्लोबल पोजिशनिंग सिस्टम के लिए है और इसका उपयोग सटीक UTC समय (यूनिवर्सल टाइम कोऑर्डिनेटेड) के साथ पृथ्वी पर किसी भी स्थान के अक्षांश और देशांतर का पता लगाने के लिए किया जाता है। यह उपकरण उपग्रह से प्रत्येक और हर सेकंड के लिए समय और तिथि के साथ निर्देशांक प्राप्त करता है। जीपीएस महान सटीकता प्रदान करता है और स्थिति निर्देशांक के अलावा अन्य डेटा भी प्रदान करता है।
हम सभी जानते हैं कि जीपीएस एक बहुत ही उपयोगी उपकरण है और आमतौर पर मोबाइल फोन और अन्य पोर्टेबल उपकरणों में उपयोग किया जाता है। इसमें हवाई जहाज की ऊंचाई को ट्रैक करने के लिए अपने घर पर टैक्सी बुलाने से लेकर हर क्षेत्र में बहुत व्यापक अनुप्रयोग हैं। यहाँ कुछ उपयोगी जीपीएस से संबंधित परियोजनाएं हैं, हमने पहले बनाया था:
- वाहन ट्रैकिंग सिस्टम
- जीपीएस घड़ी
- एक्सीडेंट डिटेक्शन अलर्ट सिस्टम
- रास्पबेरी पाई जीपीएस मॉड्यूल इंटरफेसिंग ट्यूटोरियल
- पीआईसी माइक्रोकंट्रोलर के साथ जीपीएस मॉड्यूल को इंटरफैस करना
यहाँ इस ट्यूटोरियल में, हम स्थान निर्देशांक खोजने और उन्हें 16x2 एलसीडी डिस्प्ले पर प्रदर्शित करने के लिए STM32F103C8 माइक्रोकंट्रोलर के साथ एक जीपीएस मॉड्यूल को इंटरफ़ेस करेंगे ।
अवयव आवश्यक
- STM32F103C8 माइक्रोकंट्रोलर
- जीपीएस मॉड्यूल
- 16x2 एलसीडी डिस्प्ले
- ब्रेड बोर्ड
- तारों को जोड़ना
जीपीएस मॉड्यूल
यह एक GY-NEO6MV2 XM37-1612 जीपीएस मॉड्यूल है। इस GPS मॉड्यूल में चार पिन + 5V, GND, TXD और RXD हैं। यह सीरियल पिन का उपयोग करके संचार करता है और STM32F103C8 के सीरियल पोर्ट के साथ आसानी से हस्तक्षेप किया जा सकता है।
GPS मॉड्यूल NMEA प्रारूप में डेटा भेजता है (नीचे स्क्रीनशॉट देखें)। NMEA प्रारूप में कई वाक्य शामिल हैं, जिसमें हमें केवल एक वाक्य की आवश्यकता है। यह वाक्य $ GPGGA से शुरू होता है और इसमें निर्देशांक, समय और अन्य उपयोगी जानकारी होती है। इस GPGGA को ग्लोबल पोजिशनिंग सिस्टम फिक्स डेटा के लिए संदर्भित किया जाता है । रीडिंग जीपीएस डेटा और इसके तारों के बारे में अधिक जानकारी यहाँ देखें।
नीचे एक नमूना $ GPGGA स्ट्रिंग है, इसके विवरण के साथ:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0.9,510.4, M, 43.9, M, * 47
$ GPGGA, HHMMSS.SSS, अक्षांश, N, देशांतर, E, FQ, NOS, HDP, ऊंचाई, M, ऊंचाई, M,, चेकसम डेटा
लेकिन इस ट्यूटोरियल में, हम एक TinyGPSPlus GPS लाइब्रेरी का उपयोग कर रहे हैं, जो NMEA वाक्य से सभी आवश्यक जानकारी निकालती है, और हमें अक्षांश और देशांतर प्राप्त करने के लिए कोड की एक सरल रेखा लिखने की आवश्यकता है, जिसे हम बाद में ट्यूटोरियल में देखेंगे। ।
STM32F103C8 से बाहर पिन करें
STM32F103C8 (BLUE PILL) USART सीरियल कम्यूनिकेशन पोर्ट्स को नीचे दी गई पिन आउट इमेज में दिखाया गया है। ये नीले रंग के होते हैं (PA9-TX1, PA10- RX1, PA2-TX2, PA3- RX2, PB10-TX3, PB11- RX3)। इसके तीन ऐसे संचार चैनल हैं।
सर्किट आरेख और कनेक्शन
जीपीएस मॉड्यूल और STM32F103C8 के बीच सर्किट कनेक्शन
जीपीएस मॉड्यूल |
STM32F103C8 |
RXD |
PA9 (TX1) |
TXD |
PA10 (RX1) |
+ 5 वी |
+ 5 वी |
GND |
GND |
16x2 एलसीडी और STM32F103C8 के बीच संबंध
एलसीडी पिन नं |
एलसीडी पिन नाम |
STM32 पिन नाम |
1 |
ग्राउंड (Gnd) |
ग्राउंड (जी) |
२ |
वीसीसी |
5 वी |
३ |
वी |
पोटेंशियोमीटर के केंद्र से पिन |
४ |
रजिस्टर का चयन करें (RS) |
पीबी 11 |
५ |
पढ़ें / लिखें (RW) |
ग्राउंड (जी) |
६ |
सक्षम (EN) |
PB10 |
। |
डेटा बिट 0 (DB0) |
कोई कनेक्शन (NC) |
। |
डेटा बिट 1 (DB1) |
कोई कनेक्शन (NC) |
९ |
डेटा बिट 2 (DB2) |
कोई कनेक्शन (NC) |
१० |
डेटा बिट 3 (DB3) |
कोई कनेक्शन (NC) |
1 1 |
डेटा बिट 4 (DB4) |
पीबी ० |
१२ |
डेटा बिट 5 (DB5) |
पीबी 1 |
१३ |
डेटा बिट 6 (DB6) |
PC13 |
१४ |
डेटा बिट 7 (DB7) |
PC14 |
१५ |
एलईडी सकारात्मक |
5 वी |
१६ |
एलईडी नकारात्मक |
ग्राउंड (जी) |
पूरा सेटअप नीचे की तरह दिखेगा:
जीपीएस मॉड्यूल Interfacing के लिए STM32F103C8 प्रोग्रामिंग
एसटीएम 3 का उपयोग करके जीपीएस मॉड्यूल का उपयोग करके स्थान खोजने का पूरा कार्यक्रम इस परियोजना के अंत में दिया गया है। STM32F103C8 को केवल USB पोर्ट के माध्यम से पीसी से कनेक्ट करके Arduino IDE का उपयोग करके प्रोग्राम किया जा सकता है। कोड अपलोड करते समय पिन TX और RX को निकालना सुनिश्चित करें और अपलोड करने के बाद इसे कनेक्ट करें।
STM32 के साथ GPS इंटरफेस करने के लिए, पहले हमें GitHub लिंक TinyGPSPlus से एक लाइब्रेरी डाउनलोड करनी होगी। पुस्तकालय को डाउनलोड करने के बाद, इसे स्केच द्वारा अरुडिनो आईडीई में शामिल किया जा सकता है -> लाइब्रेरी शामिल करें ->.ज़िप लाइब्रेरी जोड़ें। Arduino के साथ GPS को इंटरफ़ेस करने के लिए समान लाइब्रेरी का उपयोग किया जा सकता है।
इसलिए पहले आवश्यक लाइब्रेरी फ़ाइलों को शामिल करें और 16x2 एलसीडी के लिए पिन परिभाषित करें:
#शामिल
फिर TinyGPSPlus वर्ग के जीपीएस नाम की एक वस्तु बनाएं।
TinyGPSPlus जीपीएस;
में अगला शून्य सेटअप , का उपयोग कर जीपीएस मॉड्यूल के साथ धारावाहिक संचार शुरू Serial1.begin (9600)। Serial1 का उपयोग STM32F103C8 के सीरियल 1 पोर्ट (पिंस-पीए 9, पीए 10) के रूप में किया जाता है।
सीरियल १.बेगिन (९ ६००);
फिर कुछ समय के लिए स्वागत संदेश प्रदर्शित करें।
lcd.begin (16,2); lcd.print ("सर्किट डाइजेस्ट"); lcd.setCursor (0,1); lcd.print ("GPS के साथ STM32"); देरी (4000); lcd.clear ();
शून्य लूप () में अगला , हम जीपीएस से अक्षांश और देशांतर प्राप्त करते हैं और जांचते हैं कि प्राप्त डेटा वैध है या नहीं और सीरियल मॉनीटर और एलसीडी में जानकारी प्रदर्शित करता है या नहीं।
स्थान डेटा उपलब्ध है या नहीं यह जाँच कर रहा है
loc_valid = gps.location.isValid ();
अक्षांश डेटा प्राप्त करता है
lat_val = gps.location.lat ();
देशांतर डेटा प्राप्त करता है
lng_val = gps.location.lng ();
यदि अवैध डेटा प्राप्त होता है तो यह सीरियल मॉनिटर में "*****" प्रदर्शित करता है और एलसीडी में "प्रतीक्षा" प्रदर्शित करता है।
अगर (loc_valid) { lcd.print ("प्रतीक्षा"); सीरियल.प्रिंट ("अक्षांश:"); सिरियल.प्रिंट ("*****"); सीरियल.प्रिंट ("देशांतर:"); धारावाहिक.प्रदर्शन ("*****"); देरी (4000); lcd.clear (); }
यदि वैध डेटा प्राप्त किया जाता है तो अक्षांश और देशांतर को सीरियल मॉनिटर के साथ-साथ एलसीडी डिस्प्ले पर भी प्रदर्शित किया जाता है।
lcd.clear (); Serial.println ("GPS READING:"); सीरियल.प्रिंट ("अक्षांश:"); सीरियल.प्रिंटलेन (lat_val, 6); lcd.setCursor (0,0); lcd.print ("LAT:"); lcd.print (lat_val, 6); सीरियल.प्रिंट ("देशांतर:"); सिरियल.प्रिंटल (lng_val, 6); lcd.setCursor (0,1); lcd.print ("LONG:"); lcd.print (lng_val, 6); देरी (4000);
निम्नलिखित फ़ंक्शन डेटा को पढ़ने में देरी प्रदान करता है। यह सीरियल पोर्ट पर डेटा की तलाश में रहता है।
स्थिर शून्य GPSDelay (अहस्ताक्षरित लंबी ms) { अहस्ताक्षरित लंबी शुरुआत = मिली (); do { जबकि (Serial1.available ()) gps.encode (Serial1.read ()); } जबकि (मिली () - शुरू <एमएस); }
GPS और STM32 के साथ अक्षांश और देशांतर ढूँढना
सेटअप बनाने और कोड अपलोड करने के बाद, सिग्नल फास्ट प्राप्त करने के लिए जीपीएस मॉड्यूल को खुले क्षेत्र में रखना सुनिश्चित करें। कभी-कभी सिग्नल प्राप्त करने में कुछ मिनट लगते हैं इसलिए कुछ समय प्रतीक्षा करें। जीपीएस मॉड्यूल में एलईडी झपकी लेना शुरू कर देगा जब यह सिग्नल प्राप्त करना शुरू कर देगा और एलसीडी डिस्प्ले पर स्थान निर्देशांक प्रदर्शित किए जाएंगे।
आप Google मानचित्र का उपयोग करके अक्षांश और स्थान का देशांतर सत्यापित कर सकते हैं । बस जीपीएस वाले Google मानचित्र पर जाएं और नीले बिंदु पर क्लिक करें। यह अक्षांश और देशांतर के साथ पता दिखाएगा जैसा कि नीचे दी गई तस्वीर में दिखाया गया है
पूरा कोड और प्रदर्शन वीडियो नीचे दी गई है।