डेटा स्प्रेडशीट dataGPS.csv मध्ये जतन केला जातो, ज्याचे स्वरूप सेवेच्या आवश्यकतांशी संबंधित आहे Google माझे नकाशे.

    प्रोग्रामिंग भाषा: Arduino (C++)

व्हिडिओ सूचना

आपल्याला काय हवे आहे

कसे जमवायचे

gps-tracker.ino // SPI द्वारे उपकरणांसह कार्य करण्यासाठी लायब्ररी#समाविष्ट करा // SD कार्डसह कार्य करण्यासाठी लायब्ररी#समाविष्ट करा // GPS डिव्हाइससह कार्य करण्यासाठी लायब्ररी#समाविष्ट करा // GPS वर्गाचा एक ऑब्जेक्ट तयार करा आणि त्यावर Serial1 ऑब्जेक्ट पास कराजीपीएस जीपीएस (सिरियल1); // एलईडी पिन# LED_PIN A0 परिभाषित करा // बटण पिन # BUTTON_PIN 13 परिभाषित करा // CS मायक्रो-एसडी कार्ड पिन करा#CHIP_SELECT_PIN 9 परिभाषित करा // कार्डवर डेटा लिहिण्यासाठी वेळ मध्यांतर#इंटरव्हल 5000 परिभाषित करा // वेळ, तारीख, अक्षांश आणि रेखांशासाठी ॲरे आकार सेट करा# MAX_SIZE_MASS 16 परिभाषित करा // वर्तमान वेळ संचयित करण्यासाठी ॲरेवर्ण वेळ[MAX_SIZE_MASS]; // रेकॉर्ड स्थिती bool stateRec = खोटे ; // वर्तमान वेळ लक्षात ठेवते long startMillis = millis(); शून्य सेटअप() ( // प्रोग्राममधील क्रियांचे निरीक्षण करण्यासाठी सीरियल पोर्ट उघडासिरीयल.begin(115200); // सीरियल पोर्ट मॉनिटर उघडेपर्यंत प्रतीक्षा करा // कार्यक्रमातील सर्व घटनांचा मागोवा घेण्यासाठी// तर (!सिरियल) ( // ) Serial.print ("Serial init OK \r\n") ; // GPS मॉड्यूलसह ​​सीरियल कनेक्शन उघडासिरीयल1.begin(115200); // आउटपुट मोडवर एलईडी सेट करापिनमोड(LED_PIN, आउटपुट); // लॉगिन मोडवर बटण सेट करापिनमोड(BUTTON_PIN, INPUT_PULLUP); // सिरीयल पोर्टला आरंभ करण्याबद्दल आउटपुट माहिती Serial.println("SD कार्ड सुरू करत आहे..."); // SD कार्ड सुरू करातर (! SD.begin (CHIP_SELECT_PIN) ) ( Serial.println ("कार्ड अयशस्वी, किंवा उपस्थित नाही" ) ; विलंब (1000 ) ;) // सीरियल पोर्टवर आउटपुट माहिती Serial.println("कार्ड आरंभ केलेले"); // फाइल्ससह कार्य करण्यासाठी फाइल क्लासचा डेटाफाइल ऑब्जेक्ट तयार कराफाइल डेटाफाइल = SD.open("dataGPS.csv" , FILE_WRITE) ; // फाइल अस्तित्वात असल्यासजर (डेटाफाइल) ( // मेमरी कार्डवर भविष्यातील डेटाचे नाव लिहा dataFile.println("वेळ, समन्वय, गती" ); // फाईल बंद करा dataFile.close(); Serial.println("सेव्ह ओके"); ) बाकी ( Serial.println ("Error opening test.csv" ) ; ) ) void loop() ( // बटण दाबा रेकॉर्ड कराजर (! digitalRead(BUTTON_PIN) ) ( // मेमरी कार्डवर "रेकॉर्डिंग" / "लिहीत नाही" स्थिती बदला stateRec = ! stateRec; // इंडिकेशन एलईडीची स्थिती बदला digitalWrite(LED_PIN, stateRec); ) // डेटा GPS मॉड्यूलमधून आला असल्यासजर (gps.available()) ( // डेटा वाचा आणि विश्लेषण करा gps.readParsing(); // GPS मॉड्यूलची स्थिती तपासास्विच (gps.getState () ) ( // सर्वकाही ठीक आहे केस GPS_OK: Serial.println ("GPS ठीक आहे" ); // निर्दिष्ट वेळ मध्यांतर निघून गेल्यासजर (मिलिस() - startMillis > INTERVAL && stateRec) ( // मेमरी कार्डमध्ये डेटा जतन करा saveSD(); // वर्तमान वेळ लक्षात ठेवा startMillis = millis(); ) ब्रेक ; // डेटा त्रुटी केस GPS_ERROR_DATA: Serial.println ("GPS त्रुटी डेटा" ); खंडित; // उपग्रहांशी कोणताही संबंध नाहीकेस GPS_ERROR_SAT: Serial.println ( "उपग्रहांशी जीपीएस कनेक्ट नाही"); खंडित; ) ) ) // मेमरी कार्डमध्ये डेटा जतन करण्यासाठी कार्य void saveSD() ( फाइल dataFile = SD.open("dataGPS.csv" , FILE_WRITE) ; // जर फाइल अस्तित्वात असेल आणि उघडली असेलजर (डेटाफाइल) ( // वर्तमान वेळ वाचतो gps.getTime(वेळ, MAX_SIZE_MASS); // मेमरी कार्डवर वेळ लिहा dataFile.print(" \" " ); dataFile.print(वेळ); dataFile.print(" \" " ); dataFile.print ("," ); dataFile.print(" \" " ) ; // मेमरी कार्डवर अक्षांश आणि रेखांश निर्देशांक वाचा आणि लिहा dataFile.print(gps.getLatitudeBase10(), 6); dataFile.print ("," ); dataFile.print(gps.getLongitudeBase10(), 6); dataFile.print(" \" " ); dataFile.print ("," ); dataFile.print(gps.getSpeedKm()); dataFile.println("किमी/ता"); dataFile.close(); Serial.println("सेव्ह ओके"); ) इतर ( Serial.println ("Error opening test.csv" ) ; ) )

GPS ग्लोबल पोझिशनिंग सिस्टम आधीच आपल्या जीवनाचा एक भाग बनली आहे. आज अंगभूत जीपीएस मॉड्यूलशिवाय मोबाईल फोनची कल्पना करणे कठीण आहे. ही उपग्रह नेव्हिगेशन प्रणाली आपल्याला कोणत्याही वस्तूंचा मागोवा घेण्यास, त्यांचे निर्देशांक आणि हालचालीचा वेग निर्धारित करण्यास अनुमती देते. आता GPS केवळ संबंधित उपकरणे विकसित करणाऱ्या कंपन्यांसाठीच उपलब्ध नाही तर सामान्य रेडिओ शौकीनांसाठी देखील उपलब्ध आहे जे आधीच लोकप्रिय Arduino बोर्ड त्यांच्या पूर्ण क्षमतेने वापरतात. हे साहित्य Arduino Pro Mini बोर्डशी लघु GPS ट्रॅकर कनेक्ट करण्याविषयी चर्चा करेल. PG03 MiniGPS ट्रॅकर चाचणी विषय म्हणून वापरला जातो.



हा ट्रॅकर, थेट भौगोलिक निर्देशांकांव्यतिरिक्त, हालचालीची दिशा, प्रवास केलेले अंतर आणि हालचालीचा वेग दर्शवितो. दुर्दैवाने, ती माहिती रेकॉर्ड करत नाही, म्हणून ती Arduino शी कनेक्ट करून, तुम्ही या डेटामध्ये प्रवेश करू शकता आणि तुम्हाला हवे ते करू शकता.


प्रथम, ट्रॅकर वेगळे करणे आवश्यक आहे. खाली डिस्सेम्बल केलेल्या GPS ट्रॅकरच्या प्रतिमा आहेत.




ट्रॅकरचे हृदय Venus638FLP GPS चिप आहे. त्याची ४४वी पिन UART इंटरफेस (TxD) चे आउटपुट आहे. तुम्ही या पिनवर थेट वायर सोल्डर करू शकता किंवा ज्या बोर्डवर हा पिन देखील जोडला आहे त्यावर तुम्हाला टेस्टिंग पिन सापडेल. खाली microcircuit च्या पिन स्थानांच्या प्रतिमा आहेत आणि इच्छित पिनला कसे कनेक्ट करावे.





आता NMEA प्रोटोकॉल डेटा रेकॉर्ड करण्यासाठी कॉम्पॅक्ट Arduino Pro Mini बोर्ड आणि SD कार्ड मॉड्यूल घेऊ. Arduino Pro Mini आणि SD कार्ड मॉड्यूलसाठी कनेक्शन आकृती खालीलप्रमाणे आहे:



SD कार्डसाठी मॉड्यूल पिन कनेक्ट करणे:


GND ते GND
VCC ते 3.3V
12 पिन करण्यासाठी MISO
11 पिन करण्यासाठी MOSI
१३ पिन करण्यासाठी SCK
10 पिन करण्यासाठी CS

GPS ट्रॅकर पिन कनेक्ट करणे:


GND ते GND
पिन 2 (Arduino) ते पिन 44 (GPS)

GPS ट्रॅकर (3.7 V) वरून पॉवर घेणे चांगले आहे. त्याच्या बॅटरीची उर्जा क्षमता कमी असल्याने, वरील चित्रांपैकी एका चित्रात दाखवल्याप्रमाणे, 1400 mAh मोबाइल फोनवरून, बाह्य बॅटरी कनेक्ट करणे अधिक श्रेयस्कर आहे.


आता तुम्हाला TinyGPS लायब्ररी डाउनलोड करायची आहे, तुम्हाला SD कार्ड आणि सॉफ्टवेअरसिरियल लायब्ररीसह काम करण्यासाठी लायब्ररीची देखील आवश्यकता असेल, जी Arduino\libraries मध्ये आढळू शकते.



खालील कोडमध्ये तुम्ही कोणता डेटा लिहायचा ते निवडू शकता:


void gpsdump(TinyGPS &gps) ( फ्लोट फ्लॅट, फ्लॉन; // अक्षांश, लांब फ्लोट fkmph = gps.f_speed_kmph(); // किमी/तास फ्लोट फाल्ट = gps.f_altitude(); // +/- उंची मीटरमध्ये (खरं तर एलिव्हेशन असल्यासारखे वाटते) फ्लोट fc = gps.f_course(); // स्वाक्षरी नसलेल्या दीर्घ वयातील अभ्यासक्रम; gps.f_get_position(&flat, &flon, &age); Serial.print(" lat"); अनुक्रमांक .print (फ्लॅट, 4); Serial.print("lon"); Serial.print(flon, 4); Serial.print("kms"); Serial.print(fkmph); Serial.print("कोर्स ") ; सिरीयल .print(fc); Serial.print(" elevation "); Serial.println(falt); //////////////////////////////// //////////////////////////////////////// /////////////

Arduino वर स्केच अपलोड करा, FAT32 नुसार फॉरमॅट केलेले SD कार्ड घाला आणि रूटमध्ये log.txt फाइल ठेवा. सीरियल मॉनिटर लाँच करा आणि तुम्हाला डेटा SD कार्डवर लिहिला जात असल्याचे दिसेल.



Arduino सह अनेक प्रयोगांनंतर, मी GPRS द्वारे सर्व्हरवर पाठवलेल्या निर्देशांकांसह एक साधा आणि फार महाग नसलेला GPS ट्रॅकर बनवण्याचा निर्णय घेतला.
वापरलेले Arduino Mega 2560 (Arduino Uno), SIM900 - GSM/GPRS मॉड्यूल (सर्व्हरला माहिती पाठवण्यासाठी), GPS रिसीव्हर SKM53 GPS.

सर्व काही ebay.com वर एकूण सुमारे 1500 रूबलसाठी (अर्डिनोसाठी सुमारे 500 रूबल, जीएसएम मॉड्यूलसाठी थोडे कमी, जीपीएससाठी थोडे अधिक) साठी खरेदी केले गेले.

जीपीएस रिसीव्हर

प्रथम आपल्याला GPS सह कसे कार्य करावे हे समजून घेणे आवश्यक आहे. निवडलेला मॉड्यूल सर्वात स्वस्त आणि सोपा आहे. तथापि, निर्माता उपग्रह डेटा वाचवण्यासाठी बॅटरीचे वचन देतो. डेटाशीटनुसार, कोल्ड स्टार्टला 36 सेकंद लागतील, तथापि, माझ्या परिस्थितीत (विंडोझिलपासून 10 वा मजला, जवळपास कोणतीही इमारत नाही) यास 20 मिनिटे लागतील. पुढची सुरुवात मात्र आधीच २ मिनिटे झाली आहे.

Arduino शी जोडलेल्या उपकरणांचे महत्त्वाचे पॅरामीटर म्हणजे वीज वापर. तुम्ही Arduino कनवर्टर ओव्हरलोड केल्यास, ते जळून जाऊ शकते. वापरलेल्या रिसीव्हरसाठी, जास्तीत जास्त वीज वापर 45mA @ 3.3v आहे. स्पेसिफिकेशनने आवश्यक व्होल्टेज (5V) पेक्षा इतर व्होल्टेजवर वर्तमान ताकद का दर्शवावी हे माझ्यासाठी एक रहस्य आहे. तथापि, Arduino कनवर्टर 45 mA सहन करेल.

जोडणी
GPS नियंत्रित नाही, जरी त्यात RX पिन आहे. कोणत्या हेतूने माहीत नाही. या रिसीव्हरसह तुम्ही करू शकता ती मुख्य गोष्ट म्हणजे TX पिनवरून NMEA प्रोटोकॉलद्वारे डेटा वाचणे. स्तर - 5V, फक्त Arduino साठी, गती - 9600 बॉड. मी arduino च्या VCC ला VIN, GND ते GND, TX ते RX ला संबंधित सिरीयलशी जोडतो. मी डेटा प्रथम स्वहस्ते वाचतो, नंतर TinyGPS लायब्ररी वापरून. आश्चर्य म्हणजे सर्व काही वाचनीय आहे. Uno वर स्विच केल्यानंतर, मला SoftwareSerial वापरावे लागले, आणि नंतर समस्या सुरू झाल्या - संदेशातील काही वर्ण गमावले. हे फार गंभीर नाही, कारण TinyGPS अवैध संदेश कापते, परंतु ते खूपच अप्रिय आहे: आपण 1Hz वारंवारता विसरू शकता.

SoftwareSerial बद्दल एक द्रुत टीप: Uno वर कोणतेही हार्डवेअर पोर्ट नाहीत (USB Serial शी जोडलेले एक व्यतिरिक्त), त्यामुळे तुम्हाला सॉफ्टवेअर वापरावे लागेल. तर, ते फक्त एका पिनवर डेटा प्राप्त करू शकते ज्यावर बोर्ड व्यत्ययांचे समर्थन करतो. Uno च्या बाबतीत, हे 2 आणि 3 आहेत. शिवाय, अशा प्रकारचे एकच पोर्ट एका वेळी डेटा प्राप्त करू शकते.

"चाचणी स्टँड" असे दिसते.

जीएसएम रिसीव्हर/ट्रान्समीटर


आता अधिक मनोरंजक भाग येतो. GSM मॉड्यूल - SIM900. हे GSM आणि GPRS ला सपोर्ट करते. EDGE किंवा विशेषत: 3G समर्थित नाहीत. समन्वय डेटा प्रसारित करण्यासाठी, हे कदाचित चांगले आहे - मोड दरम्यान स्विच करताना कोणताही विलंब किंवा समस्या होणार नाही, तसेच GPRS आता जवळजवळ सर्वत्र उपलब्ध आहे. तथापि, काही अधिक जटिल अनुप्रयोगांसाठी हे पुरेसे नाही.

जोडणी
मॉड्यूल सिरीयल पोर्टद्वारे देखील नियंत्रित केले जाते, त्याच स्तरासह - 5V. आणि येथे आपल्याला RX आणि TX दोन्हीची आवश्यकता असेल. मॉड्यूल शील्ड आहे, म्हणजेच ते Arduino वर स्थापित केले आहे. शिवाय, हे मेगा आणि युनो दोन्हीशी सुसंगत आहे. डीफॉल्ट गती 115200 आहे.

आम्ही ते मेगावर एकत्र करतो आणि येथे पहिले अप्रिय आश्चर्य आमच्यासाठी वाट पाहत आहे: मॉड्यूलचा TX पिन मेगाच्या 7 व्या पिनवर येतो. मेगाच्या 7व्या पिनवर व्यत्यय उपलब्ध नाहीत, याचा अर्थ तुम्हाला 7वी पिन, म्हणा, 6व्या पिनशी जोडावी लागेल, ज्यावर व्यत्यय शक्य आहेत. अशा प्रकारे, आपण एक Arduino पिन वाया घालवू. बरं, मेगासाठी ते फार भितीदायक नाही - शेवटी, पुरेशा पिन आहेत. परंतु युनोसाठी हे आधीच अधिक क्लिष्ट आहे (मी तुम्हाला आठवण करून देतो की फक्त 2 पिन आहेत जे व्यत्ययांचे समर्थन करतात - 2 आणि 3). या समस्येचे निराकरण म्हणून, आम्ही Arduino वर मॉड्यूल स्थापित करू नका, परंतु ते वायरसह जोडू शकता. मग तुम्ही Serial1 वापरू शकता.

कनेक्ट केल्यानंतर, आम्ही मॉड्यूलशी "चर्चा" करण्याचा प्रयत्न करतो (ते चालू करण्यास विसरू नका). आम्ही पोर्ट स्पीड - 115200 निवडतो आणि सर्व बिल्ट-इन सीरियल पोर्ट्स (4 मेगावर, 1 युनोवर) आणि सर्व सॉफ्टवेअर पोर्ट समान वेगाने कार्य करत असल्यास ते चांगले आहे. अशा प्रकारे तुम्ही अधिक स्थिर डेटा ट्रान्सफर करू शकता. मला का माहित नाही, जरी मी अंदाज लावू शकतो.

म्हणून, आम्ही सीरियल पोर्ट्स दरम्यान डेटा फॉरवर्ड करण्यासाठी आदिम कोड लिहितो, Atz पाठवतो आणि प्रतिसादात शांतता प्राप्त करतो. काय झाले? अहो, केस संवेदनशील. ATZ, आम्हाला ठीक आहे. हुर्रे, मॉड्यूल आम्हाला ऐकू शकते. उत्सुकतेपोटी तुम्ही आम्हाला कॉल द्यावा का? ATD +7499... लँडलाइन फोन वाजतो, arduino मधून धूर येतो, लॅपटॉप बंद होतो. Arduino कनवर्टर जळून गेला. त्याला 19 व्होल्ट फीड करणे ही वाईट कल्पना होती, जरी असे लिहिले आहे की ते 6 ते 20V पर्यंत ऑपरेट करू शकते, 7-12V ची शिफारस केली जाते. GSM मॉड्यूलसाठी डेटाशीट लोड अंतर्गत वीज वापराबद्दल कुठेही सांगत नाही. बरं, मेगा स्पेअर पार्ट्सच्या गोदामात जातो. श्वास घेत, मी लॅपटॉप चालू करतो, ज्याला USB वरून +5V लाइनद्वारे +19V प्राप्त झाले. हे कार्य करते, आणि यूएसबी देखील जळून गेली नाही. आमचे संरक्षण केल्याबद्दल लेनोवोचे आभार.

कन्व्हर्टर जळून गेल्यानंतर, मी सध्याचा वापर शोधला. तर, शिखर - 2A, ठराविक - 0.5A. हे स्पष्टपणे Arduino कनवर्टरच्या क्षमतेच्या पलीकडे आहे. वेगळे अन्न आवश्यक आहे.

प्रोग्रामिंग
मॉड्यूल विस्तृत डेटा हस्तांतरण क्षमता प्रदान करते. व्हॉईस कॉल्स आणि एसएमएसपासून सुरू होणारे आणि जीपीआरएसवरच समाप्त. शिवाय, नंतरच्यासाठी एटी कमांड वापरून HTTP विनंती कार्यान्वित करणे शक्य आहे. तुम्हाला अनेक पाठवावे लागतील, परंतु ते फायदेशीर आहे: तुम्हाला खरोखर विनंती स्वहस्ते तयार करायची नाही. GPRS द्वारे डेटा ट्रान्समिशन चॅनल उघडण्यामध्ये काही बारकावे आहेत - क्लासिक AT+CGDCONT=1, “IP”, “apn” लक्षात ठेवा? तर, येथे समान गोष्ट आवश्यक आहे, परंतु थोडी अधिक धूर्त.

विशिष्ट URL वर पृष्ठ मिळविण्यासाठी, तुम्हाला खालील आदेश पाठवणे आवश्यक आहे:
AT+SAPBR=1,1 //ओपन वाहक (वाहक) AT+SAPBR=3,1,"CONTYPE","GPRS" //कनेक्शन प्रकार - GPRS AT+SAPBR=3,1,"APN","इंटरनेट" //APN, Megafon साठी - इंटरनेट AT+HTTPINIT //इनिशियल HTTP AT+HTTPPARA="CID",1 //कॅरियर आयडी वापरण्यासाठी. AT+HTTPPARA="URL","http://www.example.com/GpsTracking/record.php?Lat=%ld&Lng=%ld" //वास्तविक URL, AT+HTTPACTION=0 निर्देशांकांसह sprintf नंतर GET पद्धत वापरून डेटाची विनंती करा // AT+HTTPTERM // HTTP थांबवा प्रतिसादाची प्रतीक्षा करा

परिणामी, कनेक्शन असल्यास, आम्हाला सर्व्हरकडून प्रतिसाद प्राप्त होईल. म्हणजेच, खरं तर, सर्व्हरला GET द्वारे प्राप्त झाल्यास समन्वय डेटा कसा पाठवायचा हे आम्हाला आधीच माहित आहे.

पोषण
Arduino कनवर्टरवरून GSM मॉड्युलला पॉवर करणे, ही एक वाईट कल्पना असल्याने, त्याच eBay वर 12v->5v, 3A कन्व्हर्टर विकत घेण्याचा निर्णय घेण्यात आला. तथापि, मॉड्यूलला 5V वीज पुरवठा आवडत नाही. चला एक हॅक करूया: 5V पिनशी कनेक्ट करा ज्यामधून 5V arduino मधून येतो. मग मॉड्यूलचा अंगभूत कन्व्हर्टर (अर्डिनो कन्व्हर्टर, MIC 29302WU पेक्षा जास्त शक्तिशाली) 5V पासून मॉड्यूलला आवश्यक ते बनवेल.

सर्व्हर

सर्व्हरने एक आदिम लिहिले - समन्वय संचयित करणे आणि Yandex.maps वर रेखाचित्र काढणे. भविष्यात, अनेक वापरकर्त्यांसाठी समर्थन, "सशस्त्र/निःशस्त्र" स्थिती, वाहन प्रणालीची स्थिती (इग्निशन, हेडलाइट्स इ.) आणि शक्यतो वाहन प्रणालीचे नियंत्रण यासह विविध वैशिष्ट्ये जोडणे शक्य आहे. नक्कीच, ट्रॅकरसाठी योग्य समर्थनासह, जे सहजतेने पूर्ण अलार्म सिस्टममध्ये बदलते.

फील्ड चाचण्या

केसशिवाय असेम्बल केलेले डिव्हाइस असे दिसते:

पॉवर कन्व्हर्टर स्थापित केल्यानंतर आणि मृत डीएसएल मॉडेममधून केसमध्ये ठेवल्यानंतर, सिस्टम असे दिसते:

मी तारा सोल्डर केल्या आणि Arduino ब्लॉक्समधून अनेक संपर्क काढून टाकले. ते यासारखे दिसतात:

मी कारमध्ये 12V कनेक्ट केले, मॉस्कोभोवती फिरलो आणि ट्रॅक मिळाला:


ट्रॅक पॉइंट एकमेकांपासून बरेच दूर आहेत. याचे कारण असे की GPRS द्वारे डेटा पाठवण्यास तुलनेने बराच वेळ लागतो आणि या काळात निर्देशांक वाचले जात नाहीत. ही स्पष्टपणे प्रोग्रामिंग त्रुटी आहे. प्रथम, वेळेनुसार समन्वयांचे पॅकेट ताबडतोब पाठवून आणि दुसरे म्हणजे, GPRS मॉड्यूलसह ​​असिंक्रोनस कार्य करून त्यावर उपचार केले जातात.

कारच्या पॅसेंजर सीटमध्ये उपग्रह शोधण्याची वेळ दोन मिनिटे आहे.

निष्कर्ष

आपल्या स्वत: च्या हातांनी Arduino वर GPS ट्रॅकर तयार करणे शक्य आहे, जरी क्षुल्लक काम नाही. आता मुख्य प्रश्न हा आहे की कारमध्ये डिव्हाइस कसे लपवायचे जेणेकरुन ते हानिकारक घटकांच्या संपर्कात येऊ नये (पाणी, तापमान), धातूने झाकलेले नाही (जीपीएस आणि जीपीआरएस संरक्षित केले जाईल) आणि विशेषतः लक्षात येण्यासारखे नाही. सध्या ते फक्त केबिनमध्ये आहे आणि सिगारेट लाइटर सॉकेटला जोडते.

बरं, आम्हाला गुळगुळीत ट्रॅकसाठी कोड दुरुस्त करणे देखील आवश्यक आहे, जरी ट्रॅकर आधीच मुख्य कार्य करतो.

वापरलेली उपकरणे

  • Arduino मेगा 2560
  • Arduino Uno
  • GPS SkyLab SKM53
  • SIM900 आधारित GSM/GPRS शील्ड
  • DC-DC 12v->5v 3A कनवर्टर

Arduino सह अनेक प्रयोगांनंतर, मी GPRS द्वारे सर्व्हरवर पाठवलेल्या निर्देशांकांसह एक साधा आणि फार महाग नसलेला GPS ट्रॅकर बनवण्याचा निर्णय घेतला.
वापरलेले Arduino Mega 2560 (Arduino Uno), SIM900 - GSM/GPRS मॉड्यूल (सर्व्हरला माहिती पाठवण्यासाठी), GPS रिसीव्हर SKM53 GPS.

सर्व काही ebay.com वर एकूण सुमारे 1500 रूबलसाठी (अर्डिनोसाठी सुमारे 500 रूबल, जीएसएम मॉड्यूलसाठी थोडे कमी, जीपीएससाठी थोडे अधिक) साठी खरेदी केले गेले.

जीपीएस रिसीव्हर

प्रथम आपल्याला GPS सह कसे कार्य करावे हे समजून घेणे आवश्यक आहे. निवडलेला मॉड्यूल सर्वात स्वस्त आणि सोपा आहे. तथापि, निर्माता उपग्रह डेटा वाचवण्यासाठी बॅटरीचे वचन देतो. डेटाशीटनुसार, कोल्ड स्टार्टला 36 सेकंद लागतील, तथापि, माझ्या परिस्थितीत (विंडोझिलपासून 10 वा मजला, जवळपास कोणतीही इमारत नाही) यास 20 मिनिटे लागतील. पुढची सुरुवात मात्र आधीच २ मिनिटे झाली आहे.

Arduino शी जोडलेल्या उपकरणांचे महत्त्वाचे पॅरामीटर म्हणजे वीज वापर. तुम्ही Arduino कनवर्टर ओव्हरलोड केल्यास, ते जळून जाऊ शकते. वापरलेल्या रिसीव्हरसाठी, जास्तीत जास्त वीज वापर 45mA @ 3.3v आहे. स्पेसिफिकेशनने आवश्यक व्होल्टेज (5V) पेक्षा इतर व्होल्टेजवर वर्तमान ताकद का दर्शवावी हे माझ्यासाठी एक रहस्य आहे. तथापि, Arduino कनवर्टर 45 mA सहन करेल.

जोडणी

GPS नियंत्रित नाही, जरी त्यात RX पिन आहे. कोणत्या हेतूने माहीत नाही. या रिसीव्हरसह तुम्ही करू शकता ती मुख्य गोष्ट म्हणजे TX पिनवरून NMEA प्रोटोकॉलद्वारे डेटा वाचणे. स्तर - 5V, फक्त Arduino साठी, गती - 9600 बॉड. मी arduino च्या VCC ला VIN, GND ते GND, TX ते RX ला संबंधित सिरीयलशी जोडतो. मी डेटा प्रथम स्वहस्ते वाचतो, नंतर TinyGPS लायब्ररी वापरून. आश्चर्य म्हणजे सर्व काही वाचनीय आहे. Uno वर स्विच केल्यानंतर, मला SoftwareSerial वापरावे लागले, आणि नंतर समस्या सुरू झाल्या - संदेशातील काही वर्ण गमावले. हे फार गंभीर नाही, कारण TinyGPS अवैध संदेश कापते, परंतु ते खूपच अप्रिय आहे: आपण 1Hz वारंवारता विसरू शकता.

SoftwareSerial बद्दल एक द्रुत टीप: Uno वर कोणतेही हार्डवेअर पोर्ट नाहीत, म्हणून तुम्हाला एक सॉफ्टवेअर वापरावे लागेल. तर, ते फक्त एका पिनवर डेटा प्राप्त करू शकते ज्यावर बोर्ड व्यत्ययांचे समर्थन करतो. Uno च्या बाबतीत, हे 2 आणि 3 आहेत. शिवाय, अशा प्रकारचे एकच पोर्ट एका वेळी डेटा प्राप्त करू शकते.

"चाचणी स्टँड" असे दिसते.


जीएसएम रिसीव्हर/ट्रान्समीटर


आता अधिक मनोरंजक भाग येतो. GSM मॉड्यूल - SIM900. हे GSM आणि GPRS ला सपोर्ट करते. EDGE किंवा विशेषत: 3G समर्थित नाहीत. समन्वय डेटा प्रसारित करण्यासाठी, हे कदाचित चांगले आहे - मोड दरम्यान स्विच करताना कोणताही विलंब किंवा समस्या होणार नाही, तसेच GPRS आता जवळजवळ सर्वत्र उपलब्ध आहे. तथापि, काही अधिक जटिल अनुप्रयोगांसाठी हे पुरेसे नाही.

जोडणी

मॉड्यूल सिरीयल पोर्टद्वारे देखील नियंत्रित केले जाते, त्याच स्तरासह - 5V. आणि येथे आपल्याला RX आणि TX दोन्हीची आवश्यकता असेल. मॉड्यूल शील्ड आहे, म्हणजेच ते Arduino वर स्थापित केले आहे. शिवाय, हे मेगा आणि युनो दोन्हीशी सुसंगत आहे. डीफॉल्ट गती 115200 आहे.

आम्ही ते मेगावर एकत्र करतो आणि येथे पहिले अप्रिय आश्चर्य आमच्यासाठी वाट पाहत आहे: मॉड्यूलचा TX पिन मेगाच्या 7 व्या पिनवर येतो. मेगाच्या 7व्या पिनवर व्यत्यय उपलब्ध नाहीत, याचा अर्थ तुम्हाला 7वी पिन, म्हणा, 6व्या पिनशी जोडावी लागेल, ज्यावर व्यत्यय शक्य आहेत. अशा प्रकारे, आपण एक Arduino पिन वाया घालवू. बरं, मेगासाठी ते फार भितीदायक नाही - शेवटी, पुरेशा पिन आहेत. परंतु युनोसाठी हे आधीच अधिक क्लिष्ट आहे (मी तुम्हाला आठवण करून देतो की फक्त 2 पिन आहेत जे व्यत्ययांचे समर्थन करतात - 2 आणि 3). या समस्येचे निराकरण म्हणून, आम्ही Arduino वर मॉड्यूल स्थापित करू नका, परंतु ते वायरसह जोडू शकता. मग तुम्ही Serial1 वापरू शकता.

कनेक्ट केल्यानंतर, आम्ही मॉड्यूलशी "चर्चा" करण्याचा प्रयत्न करतो (ते चालू करण्यास विसरू नका). आम्ही पोर्ट स्पीड - 115200 निवडतो आणि सर्व बिल्ट-इन सीरियल पोर्ट्स (4 मेगावर, 1 युनोवर) आणि सर्व सॉफ्टवेअर पोर्ट समान वेगाने कार्य करत असल्यास ते चांगले आहे. अशा प्रकारे तुम्ही अधिक स्थिर डेटा ट्रान्सफर करू शकता. मला का माहित नाही, जरी मी अंदाज लावू शकतो.

म्हणून, आम्ही सीरियल पोर्ट्स दरम्यान डेटा फॉरवर्ड करण्यासाठी आदिम कोड लिहितो, Atz पाठवतो आणि प्रतिसादात शांतता प्राप्त करतो. काय झाले? अहो, केस संवेदनशील. ATZ, आम्हाला ठीक आहे. हुर्रे, मॉड्यूल आम्हाला ऐकू शकते. उत्सुकतेपोटी तुम्ही आम्हाला कॉल द्यावा का? ATD +7499... लँडलाइन फोन वाजतो, arduino मधून धूर येतो, लॅपटॉप बंद होतो. Arduino कनवर्टर जळून गेला. त्याला 19 व्होल्ट फीड करणे ही वाईट कल्पना होती, जरी असे लिहिले आहे की ते 6 ते 20V पर्यंत ऑपरेट करू शकते, 7-12V ची शिफारस केली जाते. GSM मॉड्यूलसाठी डेटाशीट लोड अंतर्गत वीज वापराबद्दल कुठेही सांगत नाही. बरं, मेगा स्पेअर पार्ट्सच्या गोदामात जातो. श्वास घेत, मी लॅपटॉप चालू करतो, ज्याला USB वरून +5V लाइनद्वारे +19V प्राप्त झाले. हे कार्य करते, आणि यूएसबी देखील जळून गेली नाही. आमचे संरक्षण केल्याबद्दल लेनोवोचे आभार.


कन्व्हर्टर जळून गेल्यानंतर, मी सध्याचा वापर शोधला. तर, शिखर - 2A, ठराविक - 0.5A. हे स्पष्टपणे Arduino कनवर्टरच्या क्षमतेच्या पलीकडे आहे. वेगळे अन्न आवश्यक आहे.

प्रोग्रामिंग

मॉड्यूल विस्तृत डेटा हस्तांतरण क्षमता प्रदान करते. व्हॉईस कॉल्स आणि एसएमएसपासून सुरू होणारे आणि जीपीआरएसवरच समाप्त. शिवाय, नंतरच्यासाठी एटी कमांड वापरून HTTP विनंती कार्यान्वित करणे शक्य आहे. तुम्हाला अनेक पाठवावे लागतील, परंतु ते फायदेशीर आहे: तुम्हाला खरोखर विनंती स्वहस्ते तयार करायची नाही. GPRS द्वारे डेटा ट्रान्समिशन चॅनल उघडण्यामध्ये काही बारकावे आहेत - क्लासिक AT+CGDCONT=1, “IP”, “apn” लक्षात ठेवा? तर, येथे समान गोष्ट आवश्यक आहे, परंतु थोडी अधिक धूर्त.

विशिष्ट URL वर पृष्ठ मिळविण्यासाठी, तुम्हाला खालील आदेश पाठवणे आवश्यक आहे:

AT+SAPBR=1,1 //ओपन वाहक (वाहक) AT+SAPBR=3,1,"CONTYPE","GPRS" //कनेक्शन प्रकार - GPRS AT+SAPBR=3,1,"APN","इंटरनेट" //APN, Megafon साठी - इंटरनेट AT+HTTPINIT //इनिशियल HTTP AT+HTTPPARA="CID",1 //कॅरियर आयडी वापरण्यासाठी. AT+HTTPPARA="URL","http://www.example.com/GpsTracking/record.php?Lat=%ld&Lng=%ld" //वास्तविक URL, AT+HTTPACTION=0 निर्देशांकांसह sprintf नंतर GET पद्धत वापरून डेटाची विनंती करा // AT+HTTPTERM // HTTP थांबवा प्रतिसादाची प्रतीक्षा करा

परिणामी, कनेक्शन असल्यास, आम्हाला सर्व्हरकडून प्रतिसाद प्राप्त होईल. म्हणजेच, खरं तर, सर्व्हरला GET द्वारे प्राप्त झाल्यास समन्वय डेटा कसा पाठवायचा हे आम्हाला आधीच माहित आहे.

पोषण

Arduino कनवर्टरवरून GSM मॉड्युलला पॉवर करणे, ही एक वाईट कल्पना असल्याने, त्याच eBay वर 12v->5v, 3A कन्व्हर्टर विकत घेण्याचा निर्णय घेण्यात आला. तथापि, मॉड्यूलला 5V वीज पुरवठा आवडत नाही. चला एक हॅक करूया: 5V पिनशी कनेक्ट करा ज्यामधून 5V Arduino मधून येतो. मग मॉड्यूलचा अंगभूत कन्व्हर्टर (अर्डिनो कन्व्हर्टर, MIC 29302WU पेक्षा जास्त शक्तिशाली) 5V पासून मॉड्यूलला आवश्यक ते बनवेल.

सर्व्हर

सर्व्हरने एक आदिम लिहिले - समन्वय संचयित करणे आणि Yandex.maps वर रेखाचित्र काढणे. भविष्यात, अनेक वापरकर्त्यांसाठी समर्थन, "सशस्त्र/निःशस्त्र" स्थिती, वाहन प्रणालीची स्थिती (इग्निशन, हेडलाइट्स इ.) आणि शक्यतो वाहन प्रणालीचे नियंत्रण यासह विविध वैशिष्ट्ये जोडणे शक्य आहे. नक्कीच, ट्रॅकरसाठी योग्य समर्थनासह, जे सहजतेने पूर्ण अलार्म सिस्टममध्ये बदलते.

फील्ड चाचण्या

केसशिवाय असेम्बल केलेले डिव्हाइस असे दिसते:


पॉवर कन्व्हर्टर स्थापित केल्यानंतर आणि मृत डीएसएल मॉडेममधून केसमध्ये ठेवल्यानंतर, सिस्टम असे दिसते:

मी तारा सोल्डर केल्या आणि Arduino ब्लॉक्समधून अनेक संपर्क काढून टाकले. ते यासारखे दिसतात:

मी कारमध्ये 12V कनेक्ट केले, मॉस्कोभोवती फिरलो आणि ट्रॅक मिळाला:


ट्रॅक फाटलेला निघाला. याचे कारण असे की GPRS द्वारे डेटा पाठवण्यास तुलनेने बराच वेळ लागतो आणि या काळात निर्देशांक वाचले जात नाहीत. ही स्पष्टपणे प्रोग्रामिंग त्रुटी आहे. प्रथम, वेळेनुसार समन्वयांचे पॅकेट ताबडतोब पाठवून आणि दुसरे म्हणजे, GPRS मॉड्यूलसह ​​असिंक्रोनस कार्य करून त्यावर उपचार केले जातात.

वैयक्तिक जीपीएस ट्रान्समीटर

आज, प्रगती अशा वेगाने पुढे जात आहे की पूर्वी अवजड, महाग आणि अत्यंत विशिष्ट उपकरणे त्वरीत आकार, वजन आणि किंमत गमावत आहेत, परंतु अनेक नवीन कार्ये मिळवत आहेत.

अशाप्रकारे जीपीएस तंत्रज्ञानावर आधारित उपकरणे पॉकेट गॅझेटपर्यंत पोहोचली आणि लोकांना नवीन संधी देऊन तिथेच स्थिरावल्या. वैयक्तिक जीपीएस ट्रान्समीटर हायलाइट करणे विशेषतः फायदेशीर आहे.

मूलत:, हे समान GPS ट्रॅकर आहेत, जे केवळ वाहनावर नव्हे तर दैनंदिन जीवनात एखाद्या व्यक्तीद्वारे वापरण्यासाठी डिझाइन केलेले आहेत.

मॉडेलवर अवलंबून, एका गृहनिर्माणमध्ये अनेक भिन्न उपकरणे एकत्र केली जाऊ शकतात. त्याच्या सर्वात सोप्या स्वरूपात, तो फक्त एक डिस्प्लेशिवाय एक लहान बॉक्स आहे, जो आपल्याला मुले, प्राणी किंवा इतर काही वस्तूंच्या हालचाली नियंत्रित करण्यास अनुमती देते, ज्यावर ते निश्चित केले आहे.

त्याच्या आत एक GPS मॉड्यूल आहे जो जमिनीवर निर्देशांक निर्धारित करतो, एक GSM/GPRS मॉड्यूल जो माहिती प्रसारित करतो आणि नियंत्रण आदेश प्राप्त करतो, तसेच एक उर्जा स्त्रोत आहे जो दीर्घकाळ स्वायत्त ऑपरेशन सुनिश्चित करतो.

जीपीएस ट्रान्समीटरची कार्यक्षमता

जसजशी कार्यक्षमता वाढते तसतसे उपकरणाच्या खालील क्षमता दिसून येतात:


GPS ट्रान्समीटरसाठी पर्याय

कॉन्फिगरेशनवर अवलंबून, ट्रान्समीटर हाऊसिंग लक्षणीय भिन्न असू शकतात. सेल फोन, क्लासिक नेव्हिगेटर किंवा अगदी मनगटी घड्याळांच्या स्वरूपात विविध मॉडेल्स उपलब्ध आहेत.

विशेष आवृत्त्यांचे रंगीबेरंगी डिझाइन आणि उपयुक्त जोडणे मुलांना या उपकरणांना "पालकांचे हेर" म्हणून नव्हे तर फॅशनेबल आणि व्यावहारिक गॅझेट म्हणून हाताळण्याची परवानगी देतात.

एक फायदा म्हणून, हे लक्षात घेण्यासारखे आहे की डिव्हाइसच्या अनेक आवृत्त्या विशेष ऑपरेटरच्या सेवांसाठी सदस्यता शुल्काशिवाय चांगले कार्य करतात आणि सर्व आवश्यक माहिती क्लायंटला थेट इंटरनेट किंवा एसएमएस संदेशाद्वारे पाठविली जाते, ज्यामुळे लक्षणीय बचत होऊ शकते. अशा उपकरणांच्या देखभालीवर.

GPS ट्रॅकर्स बद्दल लेख

या लेखात मी उदाहरण म्हणून sim800L वापरून arduino सह gsm मॉड्यूल कसे वापरायचे ते दाखवणार आहे. इतर जीएसएम मॉड्यूल्स वापरण्यासाठी समान सूचना अगदी योग्य आहेत, उदाहरणार्थ, सिम 900 इ., कारण सर्व मॉड्यूल्स अंदाजे समान प्रकारे कार्य करतात - ही पोर्टद्वारे एटी कमांडची देवाणघेवाण आहे.

मी SMS रिलेचे उदाहरण वापरून arduino सह मॉड्यूलचा वापर दर्शवेन, ज्याचा वापर SMS कमांडद्वारे दूरस्थपणे डिव्हाइस नियंत्रित करण्यासाठी केला जाऊ शकतो. हे कार अलार्म इत्यादींच्या संयोगाने वापरले जाऊ शकते.

हे मॉड्यूल Arduino नॅनोच्या 2 आणि 3 डिजिटल पिनवर कार्यरत सॉफ्टवेअर सिरीयल पोर्टच्या UART इंटरफेसद्वारे Arduino शी जोडलेले आहे.

जीएसएम मॉड्युल्ससह अर्डिनोसह कार्य करणे

मॉड्यूलला उर्जा देण्यासाठी, 3.6V ते 4.2V पर्यंतच्या श्रेणीतील व्होल्टेज आवश्यक आहे, याचा अर्थ असा की तुम्हाला अतिरिक्त व्होल्टेज स्टॅबिलायझर वापरावे लागेल, कारण Arduino मध्ये 3.3 व्होल्ट स्टॅबिलायझर स्थापित केले आहे, जे मॉड्यूल पॉवर करण्यासाठी योग्य नाही. , अतिरिक्त स्टॅबिलायझर स्थापित करण्याचे दुसरे कारण म्हणजे GSM मॉड्यूल गंभीर लोड आहे, कारण त्यात एक कमकुवत ट्रान्समीटर आहे जो सेल्युलर स्टेशनसह स्थिर संप्रेषण प्रदान करतो. Arduino नॅनोसाठी उर्जा VIN पिनला पुरवली जाते - हे Arduino मध्ये तयार केलेले स्टॅबिलायझर आहे जे मॉड्यूल विस्तृत व्होल्टेज श्रेणी (6-10V) वर कार्यरत असल्याचे सुनिश्चित करते. रिले मॉड्यूल Arduino नॅनोच्या 10 पिन करण्यासाठी दिलेल्या प्रोग्राम मजकूरानुसार जोडलेले आहे आणि डिजिटल आउटपुट म्हणून काम करणाऱ्या इतर कोणत्याहीमध्ये सहजपणे बदलले जाऊ शकते.

हे असे कार्य करते: आम्ही जीएसएम मॉड्यूलमध्ये एक सिम कार्ड स्थापित करतो, पॉवर चालू करतो आणि आमचा रिले चालू करण्यासाठी सिम कार्ड नंबरवर "1" मजकूरासह एसएमएस पाठवतो, ते बंद करण्यासाठी आम्ही एक एसएमएस पाठवतो. "0" मजकुरासह.

#समाविष्ट करा
SoftwareSerial gprsSerial(2, 3); // सॉफ्टवेअर पोर्टसाठी पिन 2 आणि 3 सेट करा
int LedPin = 10; // रिलेसाठी

निरर्थक सेटअप()
{
gprsSerial.begin(4800);
पिनमोड (लेडपिन, आउटपुट);

// संदेश रिसेप्शन सेट करणे

gprsSerial.print("AT+CMGF=1\r");
gprsSerial.print("AT+IFC=1, 1\r");
विलंब (500);
gprsSerial.print("AT+CPBS=\"SM\"\r");
विलंब (500); // कमांड प्रोसेसिंगसाठी विलंब
gprsSerial.print("AT+CNMI=1,2,2,1,0\r");
विलंब (700);
}

स्ट्रिंग currStr = "";
// जर ही ओळ संदेश असेल तर व्हेरिएबल ट्रू व्हॅल्यू घेईल
boolean isStringMessage = असत्य;

शून्य पळवाट()
{
जर (!gprsSerial.available())
परत;

char currSymb = gprsSerial.read();
जर ('\r' == currSymb) (
जर (isStringMessage) (
// जर वर्तमान ओळ संदेश असेल तर...
जर (!currStr.compareTo("1")) (
डिजिटलराइट (लेडपिन, उच्च);
) अन्यथा (!currStr.compareTo("0")) (
डिजिटलराइट (लेडपिन, लो);
}
isStringMessage = असत्य;
) इतर (
जर (currStr.startsWith("+CMT")) (
// जर वर्तमान ओळ “+CMT” ने सुरू होत असेल, तर पुढील संदेश
isStringMessage = खरे;
}
}
currStr = "";
) अन्यथा जर ('\n' != currSymb) (
currStr += स्ट्रिंग(currSymb);
}
}

लेखाची व्हिडिओ आवृत्ती:

टॅग्ज: #Arduino, #SIM800L

तुमची खूण:

या लेखात वापरलेली उत्पादने:

← arduino वर GPS लॉगर | COM पोर्ट द्वारे रिले नियंत्रण →

RTL-SDR वर GSM स्कॅनर

| मुख्यपृष्ठ| इंग्रजी | विकास | वारंवार विचारले जाणारे प्रश्न |

स्कॅनरची मुख्य वैशिष्ट्ये

GSM स्कॅनर डाउनस्ट्रीम GSM चॅनेल स्कॅन करतो आणि सिग्नल पातळी आणि चॅनेल MTS, Beeline आणि Megafon या तीन मुख्य सेल्युलर ऑपरेटरपैकी एकाचे आहे की नाही याबद्दल माहिती प्रदर्शित करतो. त्याच्या कार्याच्या परिणामांवर आधारित, स्कॅनर तुम्हाला सर्व स्कॅन केलेल्या चॅनेलसाठी MCC, MNC, LAC आणि CI बेस स्टेशन अभिज्ञापकांची सूची जतन करण्याची परवानगी देतो.
GSM स्कॅनरचा वापर GSM सिग्नलच्या पातळीचे मूल्यांकन करण्यासाठी, वेगवेगळ्या ऑपरेटरच्या सिग्नलच्या गुणवत्तेची तुलना करण्यासाठी, रेडिओ कव्हरेजचे मूल्यांकन करण्यासाठी, सेल्युलर सिग्नल ॲम्प्लीफायर स्थापित करण्याचा निर्णय घेताना आणि त्यांचे पॅरामीटर्स समायोजित करण्यासाठी, शैक्षणिक हेतूंसाठी इत्यादीसाठी वापरला जाऊ शकतो.
स्कॅनर विंडोज अंतर्गत चालतो आणि एक साधा आणि स्वस्त रिसीव्हर वापरतो - RTL-SDR. तुम्ही RTL-SDR बद्दल येथे वाचू शकता:
RTL-SDR (RTL2832U) आणि सॉफ्टवेअर परिभाषित रेडिओ बातम्या आणि प्रकल्प,
RTL-SDR - OsmoSDR,
रशियन मध्ये RTL-SDR.
RTL-SDR पॅरामीटर्स स्कॅनरची मुख्य वैशिष्ट्ये निर्धारित करतात. अर्थात, जीएसएम स्कॅनर हे सामान्य मापन उपकरणांची जागा नाही.
स्कॅनर वापरावर कोणतेही निर्बंध न ठेवता, विनामूल्य वितरीत केले जाते.
सध्याची आवृत्ती GSM 900 बँडला समर्थन देते आणि GSM 1800 ला समर्थन देत नाही. हे R820T ट्यूनरसह RTL-SDR ची ऑपरेटिंग वारंवारता 1760 MHz पर्यंत मर्यादित आहे या वस्तुस्थितीद्वारे निर्धारित केले जाते. प्रायोगिक आरटीएल-एसडीआर ड्रायव्हरचा वापर 1800 मेगाहर्ट्झ श्रेणीच्या कमीत कमी भागात ऑपरेशनला अनुमती देईल अशी आशा आहे.

स्कॅनर लाँच करत आहे

स्कॅनरची नवीनतम आवृत्ती या लिंकवरून डाउनलोड केली जाऊ शकते. फक्त सोयीस्कर ठिकाणी फाइल अनझिप करा आणि gsmscan.exe चालवा.
स्कॅनरच्या मागील आवृत्त्या, स्त्रोतांसह भांडाराची लिंक आणि विकासाशी संबंधित इतर माहिती विकास पृष्ठावर स्थित आहे.
स्कॅनर ऑपरेट करण्यासाठी, RTL-SDR ड्रायव्हर्सची स्थापना आवश्यक आहे; जर ते आधीपासून स्थापित केले गेले नसतील तर, स्थापना प्रक्रियेचे वर्णन करण्यासाठी Zadig प्रोग्राम वापरून हे सोयीस्करपणे केले जाऊ शकते.

स्कॅनर वापरणे

खाली स्कॅनर प्रोग्राम विंडोचे दृश्य आहे:

क्षैतिज अक्ष ARFCN च्या स्वरूपात किंवा MHz मध्ये GSM चॅनल क्रमांक प्रदर्शित करतो आणि अनुलंब अक्ष dBm मध्ये सिग्नल पातळी दर्शवितो. रेषेची उंची सिग्नलची ताकद दर्शवते.

GSM मॉड्यूल NEOWAY M590 Arduino सह संप्रेषण

जर BS आयडेंटिफायर यशस्वीरित्या डीकोड केले गेले असतील आणि ते तीन प्रमुख टेलिकॉम ऑपरेटर्सच्या आयडेंटिफायरशी संबंधित असतील तर, रेषा संबंधित रंगात रंगवल्या जातात.
स्क्रीनच्या शीर्षस्थानी असलेल्या ड्रॉप-डाउन याद्या तुम्हाला SDR रिसीव्हर निवडण्याची परवानगी देतात, जर अनेक कनेक्ट केलेले असतील, ऑपरेटिंग श्रेणी GSM 900 किंवा GSM 1800 आणि क्षैतिज अक्ष ARFCN किंवा MHz सह मोजमापाची एकके.
बटणे तुम्हाला स्कॅनरच्या ऑपरेशनवरील अहवाल डीकोड केलेल्या बेस स्टेशनच्या सूचीच्या स्वरूपात जतन करण्यास, बीएस डीकोडिंगचे परिणाम साफ करण्यास आणि प्रोग्रामबद्दल माहिती मिळविण्याची परवानगी देतात.

कामाची तत्त्वे आणि वैशिष्ट्ये.

ऑपरेशन दरम्यान, प्रोग्राम 2.0 MHz (10 GSM चॅनेल) च्या चरणासह ऑपरेटिंग वारंवारता श्रेणी स्कॅन करतो आणि 2.4 MHz च्या सॅम्पलिंग वारंवारतासह सिग्नल डिजिटायझ करतो. स्कॅनिंग प्रक्रियेमध्ये सिग्नल सामर्थ्य मोजण्यासाठी संपूर्ण श्रेणीतून एक जलद पास आणि BS अभिज्ञापक डीकोड करण्यासाठी एक स्लो पास असतो.

पॉवर मोजण्यासाठी संपूर्ण श्रेणीतून मार्गक्रमण केल्यानंतर एक डीकोडिंग चरण केले जाते. अशा प्रकारे, GSM 900 श्रेणीमध्ये, सिग्नल पातळी अंदाजे प्रत्येक 2 s मध्ये एकदा अद्यतनित केली जाते आणि पूर्ण डीकोडिंग पासला सुमारे 1 मिनिट लागतो.
RTL-SDR कडून प्राप्त झालेल्या सिग्नलच्या खराब गुणवत्तेमुळे, BS ब्रॉडकास्ट कंट्रोल चॅनेल (BCCH) ची सिस्टम माहिती (SI) योग्यरित्या डीकोड करण्याची संभाव्यता जास्त नाही. मल्टीपाथ प्रसाराच्या परिणामी सिग्नल पातळीतील चढउतार देखील सिस्टम माहिती डीकोड करण्याची शक्यता कमी करतात. या कारणांमुळे, BS अभिज्ञापक प्राप्त करण्यासाठी, स्कॅनरला सुमारे 10 मिनिटांच्या कालावधीत माहिती जमा करणे आवश्यक आहे. परंतु या प्रकरणातही, सर्व चॅनेल सर्वात आदर्श रिसीव्हरद्वारे देखील डीकोडिंगसाठी दिलेल्या ठिकाणी पुरेशी सिग्नल पातळी आणि गुणवत्ता प्रदान करत नाहीत. याव्यतिरिक्त, सर्व जीएसएम चॅनेल जीएसएम मानकानुसार कार्य करण्यासाठी वापरले जात नाहीत, जसे की वरील आकृतीमध्ये पाहिले जाऊ शकते, 975 - 1000 चॅनेल मेगाफोनने UMTS मानकानुसार कार्य करण्यासाठी व्यापलेले आहेत.
ऑपरेशन दरम्यान, स्कॅनर नवीन डीकोड केलेल्या चॅनेलबद्दल सिस्टम माहिती चॅनेलवरील माहितीच्या सामान्य ॲरेमध्ये जोडतो. परंतु या पायरीवर जेव्हा सिस्टम माहिती डीकोड केली जात नाही तेव्हा पूर्वी डीकोड केलेल्या चॅनेलची माहिती मिटवली जात नाही आणि ॲरेमध्ये राहते. ही माहिती साफ करण्यासाठी, BS डीकोडिंग परिणाम साफ करण्यासाठी बटण वापरा.
जेव्हा तुम्ही सेव्ह रिपोर्ट बटणावर क्लिक करता, तेव्हा जमा झालेले परिणाम एका मजकूर फाइलमध्ये सेव्ह केले जातात ज्यामध्ये प्रोग्रामचे नाव, डेटा जतन केला गेला होता ती तारीख आणि वेळ. खाली अहवाल फाइलच्या भागाचे उदाहरण आहे:
स्कॅनर हे Windows 7, 8.1 आणि 10 अंतर्गत काम करण्यासाठी डिझाइन केलेले आहे. कामाची R820T ट्यूनरसह RTL-SDR च्या तीन प्रतींसह चाचणी केली गेली; इतर प्रकारच्या ट्यूनरची चाचणी केली गेली नाही.
Windows XP अंतर्गत कार्य करण्यासाठी प्रोग्रामची एक विशेष आवृत्ती संकलित केली गेली आहे; ती मानक आवृत्तीपेक्षा कित्येक पटीने हळू चालते.

विकास.

स्कॅनर प्रोग्राम कोणत्याही वॉरंटी किंवा दायित्वाशिवाय, आहे तसाच पुरवला जातो. कार्यक्षमतेचा विस्तार कसा करावा किंवा स्कॅनरचे कार्यप्रदर्शन कसे सुधारावे याबद्दल आपल्याकडे वाजवी कल्पना असल्यास, आम्ही त्यांच्या अंमलबजावणीच्या शक्यतेवर चर्चा करण्यास तयार आहोत.
तुम्ही स्कॅनरच्या विकासामध्ये भाग घेऊ शकता; हे करण्यासाठी, विकास पृष्ठाला भेट द्या.
GSM स्कॅनरचा पुढील विकास नियोजित आहे, शक्यतो तुमच्या सहभागाने.