You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ur/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md

11 KiB

جی پی ایس ڈیٹا پڑھیں - ورچوئل آئی او ٹی ہارڈویئر

اس سبق کے اس حصے میں، آپ اپنے ورچوئل آئی او ٹی ڈیوائس میں ایک جی پی ایس سینسر شامل کریں گے اور اس سے ڈیٹا پڑھیں گے۔

ورچوئل ہارڈویئر

ورچوئل آئی او ٹی ڈیوائس ایک سمولیٹڈ جی پی ایس سینسر استعمال کرے گا جو سیریل پورٹ کے ذریعے یو اے آر ٹی پر دستیاب ہوگا۔

ایک فزیکل جی پی ایس سینسر میں اینٹینا ہوتا ہے جو جی پی ایس سیٹلائٹس سے ریڈیو ویوز کو پکڑتا ہے اور جی پی ایس سگنلز کو جی پی ایس ڈیٹا میں تبدیل کرتا ہے۔ ورچوئل ورژن اس عمل کو سمولیٹ کرتا ہے، جس میں آپ یا تو لاٹیٹیوڈ اور لانگیٹیوڈ سیٹ کر سکتے ہیں، خام این ایم ای اے جملے بھیج سکتے ہیں، یا ایک جی پی ایکس فائل اپلوڈ کر سکتے ہیں جس میں متعدد مقامات ہوں جو ترتیب وار واپس کیے جا سکیں۔

🎓 این ایم ای اے جملوں پر اس سبق میں بعد میں بات کی جائے گی

سینسر کو کاؤنٹر فٹ میں شامل کریں

ورچوئل جی پی ایس سینسر استعمال کرنے کے لیے، آپ کو اسے کاؤنٹر فٹ ایپ میں شامل کرنا ہوگا۔

کام - سینسر کو کاؤنٹر فٹ میں شامل کریں

جی پی ایس سینسر کو کاؤنٹر فٹ ایپ میں شامل کریں۔

  1. اپنے کمپیوٹر پر gps-sensor نامی فولڈر میں ایک نیا پائتھون ایپ بنائیں، جس میں ایک فائل app.py ہو اور ایک پائتھون ورچوئل انوائرمنٹ ہو، اور کاؤنٹر فٹ پِپ پیکجز شامل کریں۔

    ⚠️ اگر ضرورت ہو تو سبق 1 میں کاؤنٹر فٹ پائتھون پروجیکٹ بنانے اور سیٹ اپ کرنے کی ہدایات دیکھ سکتے ہیں۔

  2. ایک اضافی پِپ پیکج انسٹال کریں تاکہ کاؤنٹر فٹ شِم انسٹال ہو سکے جو سیریل کنکشن کے ذریعے یو اے آر ٹی بیسڈ سینسرز سے بات کر سکے۔ یقینی بنائیں کہ آپ یہ انسٹالیشن اس ٹرمینل سے کر رہے ہیں جس میں ورچوئل انوائرمنٹ ایکٹیویٹڈ ہو۔

    pip install counterfit-shims-serial
    
  3. یقینی بنائیں کہ کاؤنٹر فٹ ویب ایپ چل رہی ہو۔

  4. جی پی ایس سینسر بنائیں:

    1. سینسرز پین میں سینسر بنائیں باکس میں جائیں، سینسر کی قسم ڈراپ ڈاؤن کریں اور UART GPS منتخب کریں۔

    2. پورٹ کو /dev/ttyAMA0 پر سیٹ رہنے دیں۔

    3. Add بٹن کو منتخب کریں تاکہ پورٹ /dev/ttyAMA0 پر جی پی ایس سینسر بنایا جا سکے۔

    جی پی ایس سینسر کی سیٹنگز

    جی پی ایس سینسر بنایا جائے گا اور سینسرز کی فہرست میں ظاہر ہوگا۔

    جی پی ایس سینسر بنایا گیا

جی پی ایس سینسر کو پروگرام کریں

ورچوئل آئی او ٹی ڈیوائس کو اب ورچوئل جی پی ایس سینسر استعمال کرنے کے لیے پروگرام کیا جا سکتا ہے۔

کام - جی پی ایس سینسر کو پروگرام کریں

جی پی ایس سینسر ایپ کو پروگرام کریں۔

  1. یقینی بنائیں کہ gps-sensor ایپ وی ایس کوڈ میں کھلی ہو۔

  2. app.py فائل کھولیں۔

  3. ایپ کو کاؤنٹر فٹ سے کنیکٹ کرنے کے لیے درج ذیل کوڈ app.py کے اوپر شامل کریں:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. اس کے نیچے درج ذیل کوڈ شامل کریں تاکہ ضروری لائبریریاں امپورٹ کی جا سکیں، بشمول کاؤنٹر فٹ سیریل پورٹ کے لیے لائبریری:

    import time
    import counterfit_shims_serial
    
    serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
    

    یہ کوڈ counterfit_shims_serial پِپ پیکج سے serial ماڈیول کو امپورٹ کرتا ہے۔ پھر یہ /dev/ttyAMA0 سیریل پورٹ سے کنیکٹ ہوتا ہے - یہ وہ ایڈریس ہے جو ورچوئل جی پی ایس سینسر اپنے یو اے آر ٹی پورٹ کے لیے استعمال کرتا ہے۔

  5. اس کے نیچے درج ذیل کوڈ شامل کریں تاکہ سیریل پورٹ سے ڈیٹا پڑھا جا سکے اور کنسول پر پرنٹ کیا جا سکے:

    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 سیکنڈ کے لیے سوتا ہے، پھر دوبارہ کوشش کرتا ہے۔

  6. اس کوڈ کو چلائیں، یہ یقینی بناتے ہوئے کہ آپ ایک مختلف ٹرمینل استعمال کر رہے ہیں جس میں کاؤنٹر فٹ ایپ چل رہی ہو تاکہ کاؤنٹر فٹ ایپ چلتی رہے۔

  7. کاؤنٹر فٹ ایپ سے جی پی ایس سینسر کی ویلیو تبدیل کریں۔ آپ یہ ان طریقوں سے کر سکتے ہیں:

    • Source کو Lat/Lon پر سیٹ کریں، اور ایک واضح لاٹیٹیوڈ، لانگیٹیوڈ اور سیٹلائٹس کی تعداد سیٹ کریں جو جی پی ایس فکس حاصل کرنے کے لیے استعمال ہو۔ یہ ویلیو صرف ایک بار بھیجی جائے گی، لہذا Repeat باکس کو چیک کریں تاکہ ڈیٹا ہر سیکنڈ دہرایا جائے۔

      جی پی ایس سینسر کے ساتھ لاٹ لان منتخب

    • Source کو NMEA پر سیٹ کریں اور این ایم ای اے جملے ٹیکسٹ باکس میں شامل کریں۔ یہ تمام ویلیوز بھیجی جائیں گی، ہر نئے جی جی اے (پوزیشن فکس) جملے کو پڑھنے سے پہلے 1 سیکنڈ کی تاخیر کے ساتھ۔

      جی پی ایس سینسر کے ساتھ این ایم ای اے جملے سیٹ

      آپ nmeagen.org جیسے ٹول کا استعمال کر سکتے ہیں تاکہ نقشے پر ڈرائنگ کر کے یہ جملے تیار کیے جا سکیں۔ یہ ویلیوز صرف ایک بار بھیجی جائیں گی، لہذا Repeat باکس کو چیک کریں تاکہ ڈیٹا ایک سیکنڈ بعد دہرایا جائے۔

    • Source کو GPX فائل پر سیٹ کریں، اور ایک جی پی ایکس فائل اپلوڈ کریں جس میں ٹریک کے مقامات ہوں۔ آپ جی پی ایکس فائلز کو کئی مشہور میپنگ اور ہائکنگ سائٹس جیسے AllTrails سے ڈاؤنلوڈ کر سکتے ہیں۔ ان فائلز میں متعدد جی پی ایس مقامات بطور ٹریل شامل ہوتے ہیں، اور جی پی ایس سینسر ہر نئے مقام کو 1 سیکنڈ کے وقفے پر واپس کرے گا۔

      جی پی ایس سینسر کے ساتھ جی پی ایکس فائل سیٹ

      یہ ویلیوز صرف ایک بار بھیجی جائیں گی، لہذا Repeat باکس کو چیک کریں تاکہ ڈیٹا ایک سیکنڈ بعد دہرایا جائے۔

    ایک بار جب آپ جی پی ایس سیٹنگز کو کنفیگر کر لیں، Set بٹن کو منتخب کریں تاکہ یہ ویلیوز سینسر پر لاگو ہو سکیں۔

  8. آپ جی پی ایس سینسر کا خام آؤٹ پٹ دیکھیں گے، جو کچھ اس طرح ہوگا:

    $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 فولڈر میں تلاش کر سکتے ہیں۔

😀 آپ کا جی پی ایس سینسر پروگرام کامیاب رہا!


ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔