# جی پی ایس ڈیٹا پڑھیں - ورچوئل آئی او ٹی ہارڈویئر اس سبق کے اس حصے میں، آپ اپنے ورچوئل آئی او ٹی ڈیوائس میں ایک جی پی ایس سینسر شامل کریں گے اور اس سے ڈیٹا پڑھیں گے۔ ## ورچوئل ہارڈویئر ورچوئل آئی او ٹی ڈیوائس ایک سمولیٹڈ جی پی ایس سینسر استعمال کرے گا جو سیریل پورٹ کے ذریعے یو اے آر ٹی پر دستیاب ہوگا۔ ایک فزیکل جی پی ایس سینسر میں اینٹینا ہوتا ہے جو جی پی ایس سیٹلائٹس سے ریڈیو ویوز کو پکڑتا ہے اور جی پی ایس سگنلز کو جی پی ایس ڈیٹا میں تبدیل کرتا ہے۔ ورچوئل ورژن اس عمل کو سمولیٹ کرتا ہے، جس میں آپ یا تو لاٹیٹیوڈ اور لانگیٹیوڈ سیٹ کر سکتے ہیں، خام این ایم ای اے جملے بھیج سکتے ہیں، یا ایک جی پی ایکس فائل اپلوڈ کر سکتے ہیں جس میں متعدد مقامات ہوں جو ترتیب وار واپس کیے جا سکیں۔ > 🎓 این ایم ای اے جملوں پر اس سبق میں بعد میں بات کی جائے گی ### سینسر کو کاؤنٹر فٹ میں شامل کریں ورچوئل جی پی ایس سینسر استعمال کرنے کے لیے، آپ کو اسے کاؤنٹر فٹ ایپ میں شامل کرنا ہوگا۔ #### کام - سینسر کو کاؤنٹر فٹ میں شامل کریں جی پی ایس سینسر کو کاؤنٹر فٹ ایپ میں شامل کریں۔ 1. اپنے کمپیوٹر پر `gps-sensor` نامی فولڈر میں ایک نیا پائتھون ایپ بنائیں، جس میں ایک فائل `app.py` ہو اور ایک پائتھون ورچوئل انوائرمنٹ ہو، اور کاؤنٹر فٹ پِپ پیکجز شامل کریں۔ > ⚠️ اگر ضرورت ہو تو [سبق 1 میں کاؤنٹر فٹ پائتھون پروجیکٹ بنانے اور سیٹ اپ کرنے کی ہدایات](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md) دیکھ سکتے ہیں۔ 1. ایک اضافی پِپ پیکج انسٹال کریں تاکہ کاؤنٹر فٹ شِم انسٹال ہو سکے جو سیریل کنکشن کے ذریعے یو اے آر ٹی بیسڈ سینسرز سے بات کر سکے۔ یقینی بنائیں کہ آپ یہ انسٹالیشن اس ٹرمینل سے کر رہے ہیں جس میں ورچوئل انوائرمنٹ ایکٹیویٹڈ ہو۔ ```sh pip install counterfit-shims-serial ``` 1. یقینی بنائیں کہ کاؤنٹر فٹ ویب ایپ چل رہی ہو۔ 1. جی پی ایس سینسر بنائیں: 1. *سینسرز* پین میں *سینسر بنائیں* باکس میں جائیں، *سینسر کی قسم* ڈراپ ڈاؤن کریں اور *UART GPS* منتخب کریں۔ 1. *پورٹ* کو */dev/ttyAMA0* پر سیٹ رہنے دیں۔ 1. **Add** بٹن کو منتخب کریں تاکہ پورٹ `/dev/ttyAMA0` پر جی پی ایس سینسر بنایا جا سکے۔ ![جی پی ایس سینسر کی سیٹنگز](../../../../../translated_images/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.ur.png) جی پی ایس سینسر بنایا جائے گا اور سینسرز کی فہرست میں ظاہر ہوگا۔ ![جی پی ایس سینسر بنایا گیا](../../../../../translated_images/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.ur.png) ## جی پی ایس سینسر کو پروگرام کریں ورچوئل آئی او ٹی ڈیوائس کو اب ورچوئل جی پی ایس سینسر استعمال کرنے کے لیے پروگرام کیا جا سکتا ہے۔ ### کام - جی پی ایس سینسر کو پروگرام کریں جی پی ایس سینسر ایپ کو پروگرام کریں۔ 1. یقینی بنائیں کہ `gps-sensor` ایپ وی ایس کوڈ میں کھلی ہو۔ 1. `app.py` فائل کھولیں۔ 1. ایپ کو کاؤنٹر فٹ سے کنیکٹ کرنے کے لیے درج ذیل کوڈ `app.py` کے اوپر شامل کریں: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` 1. اس کے نیچے درج ذیل کوڈ شامل کریں تاکہ ضروری لائبریریاں امپورٹ کی جا سکیں، بشمول کاؤنٹر فٹ سیریل پورٹ کے لیے لائبریری: ```python import time import counterfit_shims_serial serial = counterfit_shims_serial.Serial('/dev/ttyAMA0') ``` یہ کوڈ `counterfit_shims_serial` پِپ پیکج سے `serial` ماڈیول کو امپورٹ کرتا ہے۔ پھر یہ `/dev/ttyAMA0` سیریل پورٹ سے کنیکٹ ہوتا ہے - یہ وہ ایڈریس ہے جو ورچوئل جی پی ایس سینسر اپنے یو اے آر ٹی پورٹ کے لیے استعمال کرتا ہے۔ 1. اس کے نیچے درج ذیل کوڈ شامل کریں تاکہ سیریل پورٹ سے ڈیٹا پڑھا جا سکے اور کنسول پر پرنٹ کیا جا سکے: ```python def print_gps_data(line): print(line.rstrip()) while True: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data(line) line = serial.readline().decode('utf-8') time.sleep(1) ``` ایک فنکشن `print_gps_data` ڈیفائن کیا گیا ہے جو کنسول پر دی گئی لائن کو پرنٹ کرتا ہے۔ اس کے بعد کوڈ ہمیشہ کے لیے لوپ کرتا ہے، ہر لوپ میں سیریل پورٹ سے جتنی لائنز پڑھ سکتا ہے، پڑھتا ہے۔ یہ ہر لائن کے لیے `print_gps_data` فنکشن کو کال کرتا ہے۔ تمام ڈیٹا پڑھنے کے بعد، لوپ 1 سیکنڈ کے لیے سوتا ہے، پھر دوبارہ کوشش کرتا ہے۔ 1. اس کوڈ کو چلائیں، یہ یقینی بناتے ہوئے کہ آپ ایک مختلف ٹرمینل استعمال کر رہے ہیں جس میں کاؤنٹر فٹ ایپ چل رہی ہو تاکہ کاؤنٹر فٹ ایپ چلتی رہے۔ 1. کاؤنٹر فٹ ایپ سے جی پی ایس سینسر کی ویلیو تبدیل کریں۔ آپ یہ ان طریقوں سے کر سکتے ہیں: * **Source** کو `Lat/Lon` پر سیٹ کریں، اور ایک واضح لاٹیٹیوڈ، لانگیٹیوڈ اور سیٹلائٹس کی تعداد سیٹ کریں جو جی پی ایس فکس حاصل کرنے کے لیے استعمال ہو۔ یہ ویلیو صرف ایک بار بھیجی جائے گی، لہذا **Repeat** باکس کو چیک کریں تاکہ ڈیٹا ہر سیکنڈ دہرایا جائے۔ ![جی پی ایس سینسر کے ساتھ لاٹ لان منتخب](../../../../../translated_images/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.ur.png) * **Source** کو `NMEA` پر سیٹ کریں اور این ایم ای اے جملے ٹیکسٹ باکس میں شامل کریں۔ یہ تمام ویلیوز بھیجی جائیں گی، ہر نئے جی جی اے (پوزیشن فکس) جملے کو پڑھنے سے پہلے 1 سیکنڈ کی تاخیر کے ساتھ۔ ![جی پی ایس سینسر کے ساتھ این ایم ای اے جملے سیٹ](../../../../../translated_images/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.ur.png) آپ [nmeagen.org](https://www.nmeagen.org) جیسے ٹول کا استعمال کر سکتے ہیں تاکہ نقشے پر ڈرائنگ کر کے یہ جملے تیار کیے جا سکیں۔ یہ ویلیوز صرف ایک بار بھیجی جائیں گی، لہذا **Repeat** باکس کو چیک کریں تاکہ ڈیٹا ایک سیکنڈ بعد دہرایا جائے۔ * **Source** کو GPX فائل پر سیٹ کریں، اور ایک جی پی ایکس فائل اپلوڈ کریں جس میں ٹریک کے مقامات ہوں۔ آپ جی پی ایکس فائلز کو کئی مشہور میپنگ اور ہائکنگ سائٹس جیسے [AllTrails](https://www.alltrails.com/) سے ڈاؤنلوڈ کر سکتے ہیں۔ ان فائلز میں متعدد جی پی ایس مقامات بطور ٹریل شامل ہوتے ہیں، اور جی پی ایس سینسر ہر نئے مقام کو 1 سیکنڈ کے وقفے پر واپس کرے گا۔ ![جی پی ایس سینسر کے ساتھ جی پی ایکس فائل سیٹ](../../../../../translated_images/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.ur.png) یہ ویلیوز صرف ایک بار بھیجی جائیں گی، لہذا **Repeat** باکس کو چیک کریں تاکہ ڈیٹا ایک سیکنڈ بعد دہرایا جائے۔ ایک بار جب آپ جی پی ایس سیٹنگز کو کنفیگر کر لیں، **Set** بٹن کو منتخب کریں تاکہ یہ ویلیوز سینسر پر لاگو ہو سکیں۔ 1. آپ جی پی ایس سینسر کا خام آؤٹ پٹ دیکھیں گے، جو کچھ اس طرح ہوگا: ```output $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 ``` > 💁 آپ اس کوڈ کو [code-gps/virtual-device](../../../../../3-transport/lessons/1-location-tracking/code-gps/virtual-device) فولڈر میں تلاش کر سکتے ہیں۔ 😀 آپ کا جی پی ایس سینسر پروگرام کامیاب رہا! --- **ڈسکلیمر**: یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔