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/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md

245 lines
19 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "52b4de6144b2efdced7797a5339d6035",
"translation_date": "2025-08-26T23:37:36+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/virtual-device.md",
"language_code": "ur"
}
-->
# ورچوئل سنگل بورڈ کمپیوٹر
آئی او ٹی ڈیوائس، سینسرز اور ایکچیویٹرز خریدنے کے بجائے، آپ اپنے کمپیوٹر کو آئی او ٹی ہارڈویئر کی نقل کرنے کے لیے استعمال کر سکتے ہیں۔ [CounterFit پروجیکٹ](https://github.com/CounterFit-IoT/CounterFit) آپ کو ایک ایپ لوکل طور پر چلانے کی اجازت دیتا ہے جو آئی او ٹی ہارڈویئر جیسے سینسرز اور ایکچیویٹرز کی نقل کرتا ہے، اور آپ لوکل Python کوڈ کے ذریعے ان سینسرز اور ایکچیویٹرز تک رسائی حاصل کر سکتے ہیں، بالکل اسی طرح جیسے آپ Raspberry Pi پر فزیکل ہارڈویئر کے ساتھ کوڈ لکھتے ہیں۔
## سیٹ اپ
CounterFit استعمال کرنے کے لیے، آپ کو اپنے کمپیوٹر پر کچھ مفت سافٹ ویئر انسٹال کرنا ہوگا۔
### کام
ضروری سافٹ ویئر انسٹال کریں۔
1. Python انسٹال کریں۔ Python کے تازہ ترین ورژن کو انسٹال کرنے کے لیے [Python ڈاؤنلوڈز پیج](https://www.python.org/downloads/) کا حوالہ دیں۔
1. Visual Studio Code (VS Code) انسٹال کریں۔ یہ وہ ایڈیٹر ہے جسے آپ Python میں اپنے ورچوئل ڈیوائس کوڈ لکھنے کے لیے استعمال کریں گے۔ VS Code کو انسٹال کرنے کے لیے [VS Code دستاویزات](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) کا حوالہ دیں۔
> 💁 آپ ان اسباق کے لیے اپنی پسندیدہ Python IDE یا ایڈیٹر استعمال کرنے کے لیے آزاد ہیں، لیکن اسباق VS Code استعمال کرنے کی بنیاد پر ہدایات دیں گے۔
1. VS Code Pylance ایکسٹینشن انسٹال کریں۔ یہ VS Code کے لیے ایک ایکسٹینشن ہے جو Python زبان کی سپورٹ فراہم کرتی ہے۔ VS Code میں اس ایکسٹینشن کو انسٹال کرنے کے لیے [Pylance ایکسٹینشن دستاویزات](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) کا حوالہ دیں۔
CounterFit ایپ کو انسٹال اور کنفیگر کرنے کی ہدایات متعلقہ وقت پر اسائنمنٹ ہدایات میں دی جائیں گی کیونکہ یہ ہر پروجیکٹ کی بنیاد پر انسٹال کی جاتی ہے۔
## ہیلو ورلڈ
روایتی طور پر، جب کسی نئی پروگرامنگ زبان یا ٹیکنالوجی کے ساتھ شروعات کی جاتی ہے، تو ایک 'ہیلو ورلڈ' ایپلیکیشن بنائی جاتی ہے - ایک چھوٹی ایپلیکیشن جو کچھ ایسا متن جیسے `"Hello World"` آؤٹ پٹ کرتی ہے تاکہ یہ ظاہر ہو کہ تمام ٹولز صحیح طریقے سے کنفیگر کیے گئے ہیں۔
ورچوئل آئی او ٹی ہارڈویئر کے لیے ہیلو ورلڈ ایپ یہ یقینی بنائے گی کہ آپ نے Python اور Visual Studio Code صحیح طریقے سے انسٹال کیا ہے۔ یہ CounterFit سے ورچوئل آئی او ٹی سینسرز اور ایکچیویٹرز کے لیے بھی کنیکٹ کرے گی۔ یہ کسی ہارڈویئر کا استعمال نہیں کرے گی، یہ صرف کنیکٹ کرے گی تاکہ ثابت ہو سکے کہ سب کچھ کام کر رہا ہے۔
یہ ایپ `nightlight` نامی فولڈر میں ہوگی، اور اس اسائنمنٹ کے بعد کے حصوں میں مختلف کوڈ کے ساتھ دوبارہ استعمال کی جائے گی تاکہ نائٹ لائٹ ایپلیکیشن بنائی جا سکے۔
### Python ورچوئل ماحول کو کنفیگر کریں
Python کی ایک طاقتور خصوصیت [Pip پیکجز](https://pypi.org) انسٹال کرنے کی صلاحیت ہے - یہ دوسرے لوگوں کے لکھے ہوئے کوڈ کے پیکجز ہیں جو انٹرنیٹ پر شائع کیے گئے ہیں۔ آپ ایک کمانڈ کے ساتھ اپنے کمپیوٹر پر Pip پیکج انسٹال کر سکتے ہیں، پھر اپنے کوڈ میں اس پیکج کو استعمال کر سکتے ہیں۔ آپ CounterFit سے بات کرنے کے لیے ایک پیکج انسٹال کرنے کے لیے Pip استعمال کریں گے۔
ڈیفالٹ طور پر جب آپ کوئی پیکج انسٹال کرتے ہیں تو وہ آپ کے کمپیوٹر پر ہر جگہ دستیاب ہوتا ہے، اور یہ پیکج ورژنز کے ساتھ مسائل پیدا کر سکتا ہے - جیسے ایک ایپلیکیشن ایک پیکج کے ایک ورژن پر منحصر ہوتی ہے جو دوسرے ایپلیکیشن کے لیے ایک نیا ورژن انسٹال کرنے پر خراب ہو جاتی ہے۔ اس مسئلے سے بچنے کے لیے، آپ [Python ورچوئل ماحول](https://docs.python.org/3/library/venv.html) استعمال کر سکتے ہیں، جو بنیادی طور پر Python کی ایک کاپی ایک مخصوص فولڈر میں ہوتی ہے، اور جب آپ Pip پیکجز انسٹال کرتے ہیں تو وہ صرف اس فولڈر میں انسٹال ہوتے ہیں۔
> 💁 اگر آپ Raspberry Pi استعمال کر رہے ہیں تو آپ نے اس ڈیوائس پر Pip پیکجز کو منظم کرنے کے لیے ورچوئل ماحول سیٹ اپ نہیں کیا، بلکہ آپ گلوبل پیکجز استعمال کر رہے ہیں، کیونکہ Grove پیکجز انسٹالر اسکرپٹ کے ذریعے گلوبل طور پر انسٹال کیے گئے ہیں۔
#### کام - Python ورچوئل ماحول کو کنفیگر کریں
Python ورچوئل ماحول کو کنفیگر کریں اور CounterFit کے لیے Pip پیکجز انسٹال کریں۔
1. اپنے ٹرمینل یا کمانڈ لائن سے، درج ذیل کمانڈز کو چلائیں تاکہ ایک نئی ڈائریکٹری بنائی جائے اور اس میں جائیں:
```sh
mkdir nightlight
cd nightlight
```
1. اب درج ذیل کمانڈ چلائیں تاکہ `.venv` فولڈر میں ایک ورچوئل ماحول بنایا جا سکے:
```sh
python3 -m venv .venv
```
> 💁 آپ کو ورچوئل ماحول بنانے کے لیے واضح طور پر `python3` کو کال کرنا ہوگا، اس بات کو یقینی بنانے کے لیے کہ آپ کے پاس Python 2 کے ساتھ Python 3 بھی انسٹال ہے (تازہ ترین ورژن)۔ اگر آپ کے پاس Python 2 انسٹال ہے تو `python` کو کال کرنے سے Python 2 استعمال ہوگا بجائے Python 3 کے۔
1. ورچوئل ماحول کو ایکٹیویٹ کریں:
* ونڈوز پر:
* اگر آپ کمانڈ پرامپٹ یا ونڈوز ٹرمینل کے ذریعے کمانڈ پرامپٹ استعمال کر رہے ہیں، تو درج ذیل کمانڈ چلائیں:
```cmd
.venv\Scripts\activate.bat
```
* اگر آپ پاور شیل استعمال کر رہے ہیں، تو درج ذیل کمانڈ چلائیں:
```powershell
.\.venv\Scripts\Activate.ps1
```
> اگر آپ کو اس سسٹم پر اسکرپٹس چلانے کے بارے میں ایرر ملتا ہے، تو آپ کو مناسب ایکزیکیوشن پالیسی سیٹ کرکے اسکرپٹس چلانے کی اجازت دینی ہوگی۔ آپ یہ پاور شیل کو ایڈمنسٹریٹر کے طور پر لانچ کرکے اور درج ذیل کمانڈ چلانے سے کر سکتے ہیں:
```powershell
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
```
جب تصدیق کے لیے پوچھا جائے تو `Y` درج کریں۔ پھر پاور شیل کو دوبارہ لانچ کریں اور دوبارہ کوشش کریں۔
اگر ضرورت ہو تو آپ بعد میں اس ایکزیکیوشن پالیسی کو ری سیٹ کر سکتے ہیں۔ آپ اس کے بارے میں مزید معلومات [Microsoft Docs پر Execution Policies صفحہ](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies?WT.mc_id=academic-17441-jabenn) پر پڑھ سکتے ہیں۔
* macOS یا Linux پر، درج ذیل کمانڈ چلائیں:
```cmd
source ./.venv/bin/activate
```
> 💁 یہ کمانڈز اسی مقام سے چلائی جانی چاہئیں جہاں آپ نے ورچوئل ماحول بنانے کے لیے کمانڈ چلائی تھی۔ آپ کو کبھی بھی `.venv` فولڈر میں نیویگیٹ کرنے کی ضرورت نہیں ہوگی، آپ کو ہمیشہ ایکٹیویٹ کمانڈ اور پیکجز انسٹال کرنے یا کوڈ چلانے کے لیے کمانڈز اسی فولڈر سے چلانی چاہئیں جہاں آپ نے ورچوئل ماحول بنایا تھا۔
1. ایک بار ورچوئل ماحول ایکٹیویٹ ہو جائے، ڈیفالٹ `python` کمانڈ وہ Python ورژن چلائے گی جو ورچوئل ماحول بنانے کے لیے استعمال ہوا تھا۔ درج ذیل کمانڈ چلائیں تاکہ ورژن حاصل کیا جا سکے:
```sh
python --version
```
آؤٹ پٹ میں درج ذیل شامل ہونا چاہیے:
```output
(.venv) ➜ nightlight python --version
Python 3.9.1
```
> 💁 آپ کا Python ورژن مختلف ہو سکتا ہے - جب تک یہ ورژن 3.6 یا اس سے زیادہ ہے، آپ ٹھیک ہیں۔ اگر نہیں، تو اس فولڈر کو ڈیلیٹ کریں، Python کا نیا ورژن انسٹال کریں اور دوبارہ کوشش کریں۔
1. درج ذیل کمانڈز چلائیں تاکہ CounterFit کے لیے Pip پیکجز انسٹال کیے جا سکیں۔ ان پیکجز میں CounterFit ایپ کے ساتھ ساتھ Grove ہارڈویئر کے لیے شمز شامل ہیں۔ یہ شمز آپ کو کوڈ لکھنے کی اجازت دیتے ہیں جیسے آپ Grove ایکو سسٹم کے فزیکل سینسرز اور ایکچیویٹرز کے ساتھ پروگرامنگ کر رہے ہوں لیکن ورچوئل آئی او ٹی ڈیوائسز سے کنیکٹ ہوں۔
```sh
pip install CounterFit
pip install counterfit-connection
pip install counterfit-shims-grove
```
یہ Pip پیکجز صرف ورچوئل ماحول میں انسٹال کیے جائیں گے، اور باہر دستیاب نہیں ہوں گے۔
### کوڈ لکھیں
ایک بار Python ورچوئل ماحول تیار ہو جائے، آپ 'ہیلو ورلڈ' ایپلیکیشن کے لیے کوڈ لکھ سکتے ہیں۔
#### کام - کوڈ لکھیں
ایک Python ایپلیکیشن بنائیں جو کنسول پر `"Hello World"` پرنٹ کرے۔
1. اپنے ٹرمینل یا کمانڈ لائن سے، ورچوئل ماحول کے اندر درج ذیل کمانڈ چلائیں تاکہ `app.py` نامی Python فائل بنائی جا سکے:
* ونڈوز سے چلائیں:
```cmd
type nul > app.py
```
* macOS یا Linux پر چلائیں:
```cmd
touch app.py
```
1. موجودہ فولڈر کو VS Code میں کھولیں:
```sh
code .
```
> 💁 اگر آپ کے ٹرمینل پر macOS پر `command not found` واپس آتا ہے تو اس کا مطلب ہے کہ VS Code کو آپ کے PATH میں شامل نہیں کیا گیا۔ آپ VS Code کو اپنے PATH میں شامل کر سکتے ہیں [VS Code دستاویزات کے لانچنگ سیکشن](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) کی ہدایات پر عمل کرکے اور کمانڈ کو بعد میں چلائیں۔ VS Code ڈیفالٹ طور پر ونڈوز اور Linux پر آپ کے PATH میں انسٹال ہوتا ہے۔
1. جب VS Code لانچ ہوتا ہے، تو یہ Python ورچوئل ماحول کو ایکٹیویٹ کرے گا۔ منتخب ورچوئل ماحول نیچے اسٹیٹس بار میں ظاہر ہوگا:
![VS Code منتخب ورچوئل ماحول دکھا رہا ہے](../../../../../translated_images/vscode-virtual-env.8ba42e04c3d533cf677e16cbe5ed9a3b80f62c6964472dc84b6f940800f0909f.ur.png)
1. اگر VS Code ٹرمینل پہلے سے چل رہا ہے جب VS Code شروع ہوتا ہے، تو اس میں ورچوئل ماحول ایکٹیویٹ نہیں ہوگا۔ سب سے آسان کام یہ ہے کہ **Kill the active terminal instance** بٹن استعمال کرکے ٹرمینل کو ختم کریں:
![VS Code Kill the active terminal instance بٹن](../../../../../translated_images/vscode-kill-terminal.1cc4de7c6f25ee08f423f0ead714e61d069fac1eb2089e97b8a7bbcb3d45fe5e.ur.png)
آپ یہ بتا سکتے ہیں کہ آیا ٹرمینل میں ورچوئل ماحول ایکٹیویٹ ہے کیونکہ ٹرمینل پرامپٹ پر ورچوئل ماحول کا نام ایک پری فکس ہوگا۔ مثال کے طور پر، یہ ہو سکتا ہے:
```sh
(.venv) ➜ nightlight
```
اگر آپ کے پرامپٹ پر `.venv` پری فکس کے طور پر نہیں ہے، تو ٹرمینل میں ورچوئل ماحول ایکٹیویٹ نہیں ہے۔
1. ایک نیا VS Code ٹرمینل لانچ کریں *Terminal -> New Terminal* کو منتخب کرکے، یا `` CTRL+` `` دباکر۔ نیا ٹرمینل ورچوئل ماحول کو لوڈ کرے گا، اور اس کو ایکٹیویٹ کرنے کی کال ٹرمینل میں ظاہر ہوگی۔ پرامپٹ پر ورچوئل ماحول کا نام (`.venv`) ہوگا:
```output
➜ nightlight source .venv/bin/activate
(.venv) ➜ nightlight
```
1. VS Code ایکسپلورر سے `app.py` فائل کھولیں اور درج ذیل کوڈ شامل کریں:
```python
print('Hello World!')
```
`print` فنکشن جو بھی اس کو پاس کیا جاتا ہے اسے کنسول پر پرنٹ کرتا ہے۔
1. VS Code ٹرمینل سے، درج ذیل کمانڈ چلائیں تاکہ آپ کی Python ایپ چلائی جا سکے:
```sh
python app.py
```
آؤٹپٹ میں درج ذیل ہوگا:
```output
(.venv) ➜ nightlight python app.py
Hello World!
```
😀 آپ کا 'ہیلو ورلڈ' پروگرام کامیاب رہا!
### 'ہارڈویئر' کنیکٹ کریں
ایک دوسرے 'ہیلو ورلڈ' قدم کے طور پر، آپ CounterFit ایپ چلائیں گے اور اپنے کوڈ کو اس سے کنیکٹ کریں گے۔ یہ آئی او ٹی ہارڈویئر کو کسی ڈیو کٹ سے پلگ ان کرنے کے ورچوئل متبادل کے طور پر ہوگا۔
#### کام - 'ہارڈویئر' کنیکٹ کریں
1. VS Code ٹرمینل سے، درج ذیل کمانڈ کے ساتھ CounterFit ایپ لانچ کریں:
```sh
counterfit
```
ایپ چلنا شروع ہو جائے گی اور آپ کے ویب براؤزر میں کھل جائے گی:
![Counter Fit ایپ براؤزر میں چل رہی ہے](../../../../../translated_images/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.ur.png)
یہ *Disconnected* کے طور پر نشان زد ہوگی، اور اوپر دائیں کونے میں ایل ای ڈی بند ہوگی۔
1. `app.py` کے اوپر درج ذیل کوڈ شامل کریں:
```python
from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000)
```
یہ کوڈ `counterfit_connection` ماڈیول سے `CounterFitConnection` کلاس کو امپورٹ کرتا ہے، جو آپ کے پہلے انسٹال کیے گئے `counterfit-connection` pip پیکج سے آتا ہے۔ پھر یہ `127.0.0.1` پر چلنے والی CounterFit ایپ سے کنیکشن کو انیشیئلائز کرتا ہے، جو ایک آئی پی ایڈریس ہے جسے آپ ہمیشہ اپنے لوکل کمپیوٹر تک رسائی کے لیے استعمال کر سکتے ہیں (اکثر *localhost* کہا جاتا ہے)، پورٹ 5000 پر۔
> 💁 اگر آپ کے پاس پورٹ 5000 پر دیگر ایپس چل رہی ہیں، تو آپ کوڈ میں پورٹ کو اپ ڈیٹ کرکے اور CounterFit کو `CounterFit --port <port_number>` کے ساتھ چلانے کے ذریعے اسے تبدیل کر سکتے ہیں، `<port_number>` کو اپنی مطلوبہ پورٹ کے ساتھ تبدیل کریں۔
1. آپ کو ایک نیا VS Code ٹرمینل لانچ کرنا ہوگا **Create a new integrated terminal** بٹن کو منتخب کرکے۔ اس کی وجہ یہ ہے کہ CounterFit ایپ موجودہ ٹرمینل میں چل رہی ہے۔
![VS Code Create a new integrated terminal بٹن](../../../../../translated_images/vscode-new-terminal.77db8fc0f9cd31824b0e49a201beafe4ae4616d6c7339992cb2819e789b3eff9.ur.png)
1. اس نئے ٹرمینل میں، پہلے کی طرح `app.py` فائل چلائیں۔ CounterFit کی اسٹیٹس **Connected** میں تبدیل ہو جائے گی اور ایل ای ڈی روشن ہو جائے گی۔
![Counter Fit کنیکٹڈ دکھا رہا ہے](../../../../../translated_images/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.ur.png)
> 💁 آپ اس کوڈ کو [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) فولڈر میں تلاش کر سکتے ہیں۔
😀 آپ کا ہارڈویئر سے کنیکشن کامیاب رہا!
---
**ڈسکلیمر**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔