# وائیو ٹرمینل - جی پی ایس ڈیٹا پڑھیں اس سبق کے اس حصے میں، آپ اپنے وائیو ٹرمینل میں جی پی ایس سینسر شامل کریں گے اور اس سے ڈیٹا پڑھیں گے۔ ## ہارڈویئر وائیو ٹرمینل کو ایک جی پی ایس سینسر کی ضرورت ہے۔ آپ جو سینسر استعمال کریں گے وہ [Grove GPS Air530 sensor](https://www.seeedstudio.com/Grove-GPS-Air530-p-4584.html) ہے۔ یہ سینسر کئی جی پی ایس سسٹمز سے جڑ سکتا ہے تاکہ تیز اور درست ڈیٹا حاصل کیا جا سکے۔ سینسر دو حصوں پر مشتمل ہے - سینسر کے بنیادی الیکٹرانکس اور ایک بیرونی اینٹینا جو پتلی تار کے ذریعے سیٹلائٹس سے ریڈیو لہریں وصول کرتا ہے۔ یہ ایک UART سینسر ہے، جو جی پی ایس ڈیٹا UART کے ذریعے بھیجتا ہے۔ ### جی پی ایس سینسر کو جوڑیں Grove GPS سینسر کو وائیو ٹرمینل سے جوڑا جا سکتا ہے۔ #### کام - جی پی ایس سینسر کو جوڑیں جی پی ایس سینسر کو جوڑیں۔ ![ایک Grove GPS سینسر](../../../../../translated_images/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.ur.png) 1. Grove کیبل کے ایک سرے کو جی پی ایس سینسر کے ساکٹ میں ڈالیں۔ یہ صرف ایک ہی سمت میں جائے گا۔ 1. وائیو ٹرمینل کو اپنے کمپیوٹر یا کسی اور پاور سپلائی سے منقطع کریں، اور Grove کیبل کے دوسرے سرے کو وائیو ٹرمینل کے بائیں جانب Grove ساکٹ میں جوڑیں جب آپ اسکرین کو دیکھ رہے ہوں۔ یہ ساکٹ پاور بٹن کے قریب ترین ہے۔ ![Grove GPS سینسر بائیں جانب ساکٹ سے جڑا ہوا](../../../../../translated_images/wio-gps-sensor.19fd52b81ce58095d5deb3d4e5a1fdd88818d76569b00b1f0d740c92dc986525.ur.png) 1. جی پی ایس سینسر کو ایسی جگہ رکھیں جہاں اس کا منسلک اینٹینا آسمان کو دیکھ سکے - مثالی طور پر کھڑکی کے قریب یا باہر۔ اینٹینا کے راستے میں کوئی رکاوٹ نہ ہونے پر سگنل زیادہ واضح طور پر حاصل کرنا آسان ہوتا ہے۔ 1. اب آپ وائیو ٹرمینل کو اپنے کمپیوٹر سے جوڑ سکتے ہیں۔ 1. جی پی ایس سینسر میں 2 ایل ای ڈی ہیں - ایک نیلی ایل ای ڈی جو ڈیٹا منتقل ہونے پر چمکتی ہے، اور ایک سبز ایل ای ڈی جو سیٹلائٹس سے ڈیٹا وصول کرنے پر ہر سیکنڈ چمکتی ہے۔ یقینی بنائیں کہ وائیو ٹرمینل کو پاور اپ کرنے پر نیلی ایل ای ڈی چمک رہی ہو۔ چند منٹ کے بعد سبز ایل ای ڈی چمکے گی - اگر ایسا نہ ہو تو آپ کو اینٹینا کی پوزیشن تبدیل کرنے کی ضرورت ہو سکتی ہے۔ ## جی پی ایس سینسر کو پروگرام کریں اب وائیو ٹرمینل کو منسلک جی پی ایس سینسر استعمال کرنے کے لیے پروگرام کیا جا سکتا ہے۔ ### کام - جی پی ایس سینسر کو پروگرام کریں ڈیوائس کو پروگرام کریں۔ 1. PlatformIO کا استعمال کرتے ہوئے ایک نیا وائیو ٹرمینل پروجیکٹ بنائیں۔ اس پروجیکٹ کا نام `gps-sensor` رکھیں۔ `setup` فنکشن میں سیریل پورٹ کو ترتیب دینے کے لیے کوڈ شامل کریں۔ 1. `main.cpp` فائل کے اوپر درج ذیل include directive شامل کریں۔ یہ ایک ہیڈر فائل کو شامل کرتا ہے جس میں UART کے لیے بائیں جانب Grove پورٹ کو ترتیب دینے کے فنکشنز ہیں۔ ```cpp #include ``` 1. اس کے نیچے، درج ذیل کوڈ لائن شامل کریں تاکہ UART پورٹ کے ساتھ سیریل پورٹ کنکشن کا اعلان کیا جا سکے: ```cpp static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0); ``` 1. آپ کو کچھ کوڈ شامل کرنے کی ضرورت ہے تاکہ کچھ اندرونی سگنل ہینڈلرز کو اس سیریل پورٹ پر ری ڈائریکٹ کیا جا سکے۔ `Serial3` اعلان کے نیچے درج ذیل کوڈ شامل کریں: ```cpp void SERCOM3_0_Handler() { Serial3.IrqHandler(); } void SERCOM3_1_Handler() { Serial3.IrqHandler(); } void SERCOM3_2_Handler() { Serial3.IrqHandler(); } void SERCOM3_3_Handler() { Serial3.IrqHandler(); } ``` 1. `setup` فنکشن میں جہاں `Serial` پورٹ ترتیب دی گئی ہے، وہاں درج ذیل کوڈ کے ساتھ UART سیریل پورٹ کو ترتیب دیں: ```cpp Serial3.begin(9600); while (!Serial3) ; // Wait for Serial3 to be ready delay(1000); ``` 1. `setup` فنکشن میں اس کوڈ کے نیچے، درج ذیل کوڈ شامل کریں تاکہ Grove پن کو سیریل پورٹ سے جوڑا جا سکے: ```cpp pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT); ``` 1. `loop` فنکشن سے پہلے درج ذیل فنکشن شامل کریں تاکہ جی پی ایس ڈیٹا کو سیریل مانیٹر پر بھیجا جا سکے: ```cpp void printGPSData() { Serial.println(Serial3.readStringUntil('\n')); } ``` 1. `loop` فنکشن میں، درج ذیل کوڈ شامل کریں تاکہ UART سیریل پورٹ سے ڈیٹا پڑھا جا سکے اور سیریل مانیٹر پر آؤٹ پٹ پرنٹ کیا جا سکے: ```cpp while (Serial3.available() > 0) { printGPSData(); } delay(1000); ``` یہ کوڈ UART سیریل پورٹ سے ڈیٹا پڑھتا ہے۔ `readStringUntil` فنکشن ایک ٹرمینیٹر کریکٹر تک پڑھتا ہے، اس صورت میں ایک نئی لائن۔ یہ ایک مکمل NMEA جملہ پڑھے گا (NMEA جملے نئی لائن کریکٹر کے ساتھ ختم ہوتے ہیں)۔ جب تک UART سیریل پورٹ سے ڈیٹا پڑھا جا سکتا ہے، اسے پڑھا جاتا ہے اور `printGPSData` فنکشن کے ذریعے سیریل مانیٹر پر بھیجا جاتا ہے۔ جب مزید ڈیٹا پڑھا نہیں جا سکتا، `loop` 1 سیکنڈ (1,000ms) کے لیے تاخیر کرتا ہے۔ 1. کوڈ کو وائیو ٹرمینل پر بنائیں اور اپلوڈ کریں۔ 1. اپلوڈ ہونے کے بعد، آپ سیریل مانیٹر کے ذریعے جی پی ایس ڈیٹا مانیٹر کر سکتے ہیں۔ ```output > Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,1,1,00*79 $BDGSV,1,1,00*68 ``` > 💁 آپ اس کوڈ کو [code-gps/wio-terminal](../../../../../3-transport/lessons/1-location-tracking/code-gps/wio-terminal) فولڈر میں تلاش کر سکتے ہیں۔ 😀 آپ کا جی پی ایس سینسر پروگرام کامیاب رہا! --- **ڈسکلیمر**: یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔