# انٹرنیٹ کے ذریعے اپنی نائٹ لائٹ کو کنٹرول کریں - ورچوئل IoT ہارڈویئر اور راسپبیری پائی IoT ڈیوائس کو *test.mosquitto.org* کے ساتھ MQTT کے ذریعے بات چیت کرنے کے لیے کوڈ کیا جانا چاہیے تاکہ ٹیلیمیٹری ویلیوز کو لائٹ سینسر ریڈنگ کے ساتھ بھیجا جا سکے، اور ایل ای ڈی کو کنٹرول کرنے کے لیے کمانڈز وصول کی جا سکیں۔ اس سبق کے اس حصے میں، آپ اپنی راسپبیری پائی یا ورچوئل IoT ڈیوائس کو MQTT بروکر سے جوڑیں گے۔ ## MQTT کلائنٹ پیکیج انسٹال کریں MQTT بروکر کے ساتھ بات چیت کرنے کے لیے، آپ کو اپنے پائی یا ورچوئل ماحول میں MQTT لائبریری پائپ پیکیج انسٹال کرنے کی ضرورت ہوگی اگر آپ ورچوئل ڈیوائس استعمال کر رہے ہیں۔ ### کام پائپ پیکیج انسٹال کریں 1. نائٹ لائٹ پروجیکٹ کو VS کوڈ میں کھولیں۔ 1. اگر آپ ورچوئل IoT ڈیوائس استعمال کر رہے ہیں، تو یقینی بنائیں کہ ٹرمینل ورچوئل ماحول چلا رہا ہے۔ اگر آپ راسپبیری پائی استعمال کر رہے ہیں تو آپ ورچوئل ماحول استعمال نہیں کریں گے۔ 1. MQTT پائپ پیکیج انسٹال کرنے کے لیے درج ذیل کمانڈ چلائیں: ```sh pip3 install paho-mqtt ``` ## ڈیوائس کوڈ کریں ڈیوائس کو کوڈ کرنے کے لیے تیار ہے۔ ### کام ڈیوائس کوڈ لکھیں۔ 1. `app.py` فائل کے اوپر درج ذیل امپورٹ شامل کریں: ```python import paho.mqtt.client as mqtt ``` `paho.mqtt.client` لائبریری آپ کی ایپ کو MQTT کے ذریعے بات چیت کرنے کی اجازت دیتی ہے۔ 1. لائٹ سینسر اور ایل ای ڈی کی تعریفوں کے بعد درج ذیل کوڈ شامل کریں: ```python id = '' client_name = id + 'nightlight_client' ``` `` کو ایک منفرد ID سے تبدیل کریں جو اس ڈیوائس کلائنٹ کے نام کے طور پر استعمال ہوگی، اور بعد میں ان موضوعات کے لیے جو یہ ڈیوائس شائع اور سبسکرائب کرے گا۔ *test.mosquitto.org* بروکر عوامی ہے اور بہت سے لوگ استعمال کرتے ہیں، بشمول دیگر طلباء جو اس اسائنمنٹ پر کام کر رہے ہیں۔ ایک منفرد MQTT کلائنٹ نام اور موضوعات کے نام رکھنے سے آپ کا کوڈ کسی اور کے کوڈ سے متصادم نہیں ہوگا۔ آپ کو یہ ID اس وقت بھی درکار ہوگی جب آپ اس اسائنمنٹ کے بعد سرور کوڈ بنا رہے ہوں گے۔ > 💁 آپ [GUIDGen](https://www.guidgen.com) جیسی ویب سائٹ استعمال کر سکتے ہیں تاکہ ایک منفرد ID تیار کی جا سکے۔ `client_name` اس MQTT کلائنٹ کے لیے بروکر پر ایک منفرد نام ہے۔ 1. اس نئے کوڈ کے نیچے درج ذیل کوڈ شامل کریں تاکہ ایک MQTT کلائنٹ آبجیکٹ بنایا جا سکے اور MQTT بروکر سے جڑا جا سکے: ```python mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!") ``` یہ کوڈ کلائنٹ آبجیکٹ بناتا ہے، عوامی MQTT بروکر سے جڑتا ہے، اور ایک پروسیسنگ لوپ شروع کرتا ہے جو پس منظر کے تھریڈ میں چلتا ہے اور کسی بھی سبسکرائب کردہ موضوعات پر پیغامات سننے کے لیے۔ 1. کوڈ کو اسی طرح چلائیں جیسے آپ نے اس اسائنمنٹ کے پچھلے حصے سے کوڈ چلایا تھا۔ اگر آپ ورچوئل IoT ڈیوائس استعمال کر رہے ہیں، تو یقینی بنائیں کہ CounterFit ایپ چل رہی ہے اور لائٹ سینسر اور ایل ای ڈی کو درست پنز پر بنایا گیا ہے۔ ```output (.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0 ``` > 💁 آپ اس کوڈ کو [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) فولڈر یا [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi) فولڈر میں تلاش کر سکتے ہیں۔ 😀 آپ نے کامیابی سے اپنی ڈیوائس کو MQTT بروکر سے جوڑ لیا ہے۔ --- **ڈسکلیمر**: یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔