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

245 lines
17 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "52b4de6144b2efdced7797a5339d6035",
"translation_date": "2025-08-26T23:37:05+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/virtual-device.md",
"language_code": "ar"
}
-->
# الكمبيوتر أحادي اللوحة الافتراضي
بدلاً من شراء جهاز إنترنت الأشياء (IoT) مع المستشعرات والمحركات، يمكنك استخدام جهاز الكمبيوتر الخاص بك لمحاكاة أجهزة إنترنت الأشياء. يتيح لك مشروع [CounterFit](https://github.com/CounterFit-IoT/CounterFit) تشغيل تطبيق محلي يحاكي أجهزة إنترنت الأشياء مثل المستشعرات والمحركات، والوصول إلى هذه المستشعرات والمحركات من خلال كود Python محلي مكتوب بنفس الطريقة التي تكتب بها الكود على Raspberry Pi باستخدام الأجهزة الفعلية.
## الإعداد
لاستخدام CounterFit، ستحتاج إلى تثبيت بعض البرامج المجانية على جهاز الكمبيوتر الخاص بك.
### المهمة
قم بتثبيت البرامج المطلوبة.
1. قم بتثبيت Python. راجع [صفحة تنزيلات Python](https://www.python.org/downloads/) للحصول على تعليمات حول تثبيت أحدث إصدار من Python.
1. قم بتثبيت Visual Studio Code (VS Code). هذا هو المحرر الذي ستستخدمه لكتابة كود الجهاز الافتراضي بلغة Python. راجع [وثائق VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) للحصول على تعليمات حول تثبيت VS Code.
> 💁 يمكنك استخدام أي محرر أو بيئة تطوير متكاملة (IDE) لكتابة كود Python إذا كنت تفضل أداة معينة، ولكن الدروس ستعتمد على استخدام VS Code.
1. قم بتثبيت إضافة Pylance لـ VS Code. هذه إضافة لـ VS Code توفر دعمًا للغة Python. راجع [وثائق إضافة Pylance](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) للحصول على تعليمات حول تثبيت هذه الإضافة في VS Code.
سيتم تقديم تعليمات تثبيت وتكوين تطبيق CounterFit في الوقت المناسب ضمن تعليمات المهمة، حيث يتم تثبيته على أساس كل مشروع.
## مرحبًا بالعالم
من التقليدي عند البدء بلغة برمجة أو تقنية جديدة إنشاء تطبيق "مرحبًا بالعالم" - وهو تطبيق صغير يعرض نصًا مثل `"Hello World"` للتأكد من أن جميع الأدوات تم تكوينها بشكل صحيح.
تطبيق "مرحبًا بالعالم" لأجهزة إنترنت الأشياء الافتراضية سيضمن أن لديك Python وVisual Studio Code مثبتين بشكل صحيح. كما سيتصل بـ CounterFit لأجهزة إنترنت الأشياء الافتراضية. لن يستخدم أي أجهزة، فقط سيتصل للتأكد من أن كل شيء يعمل.
سيكون هذا التطبيق في مجلد يسمى `nightlight`، وسيتم إعادة استخدامه مع كود مختلف في أجزاء لاحقة من هذه المهمة لبناء تطبيق الضوء الليلي.
### تكوين بيئة افتراضية لـ Python
واحدة من الميزات القوية لـ Python هي القدرة على تثبيت [حزم Pip](https://pypi.org) - وهي حزم من الكود مكتوبة بواسطة أشخاص آخرين ومنشورة على الإنترنت. يمكنك تثبيت حزمة Pip على جهاز الكمبيوتر الخاص بك باستخدام أمر واحد، ثم استخدام تلك الحزمة في الكود الخاص بك. ستستخدم Pip لتثبيت حزمة للتواصل مع CounterFit.
بشكل افتراضي، عندما تقوم بتثبيت حزمة، تكون متاحة في كل مكان على جهاز الكمبيوتر الخاص بك، وهذا يمكن أن يؤدي إلى مشاكل في إصدارات الحزم - مثل اعتماد تطبيق واحد على إصدار معين من الحزمة الذي يتعطل عند تثبيت إصدار جديد لتطبيق مختلف. للتغلب على هذه المشكلة، يمكنك استخدام [بيئة افتراضية لـ Python](https://docs.python.org/3/library/venv.html)، وهي نسخة من Python في مجلد مخصص، وعندما تقوم بتثبيت حزم Pip، يتم تثبيتها فقط في ذلك المجلد.
> 💁 إذا كنت تستخدم Raspberry Pi، فلن تقوم بتكوين بيئة افتراضية على هذا الجهاز لإدارة حزم Pip، بل ستستخدم الحزم العالمية، حيث يتم تثبيت حزم Grove عالميًا بواسطة سكربت التثبيت.
#### المهمة - تكوين بيئة افتراضية لـ Python
قم بتكوين بيئة افتراضية لـ Python وقم بتثبيت حزم Pip لـ CounterFit.
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. قم بتفعيل البيئة الافتراضية:
* على Windows:
* إذا كنت تستخدم Command Prompt أو Command Prompt من خلال Windows Terminal، قم بتشغيل:
```cmd
.venv\Scripts\activate.bat
```
* إذا كنت تستخدم PowerShell، قم بتشغيل:
```powershell
.\.venv\Scripts\Activate.ps1
```
> إذا حصلت على خطأ حول تعطيل تشغيل السكربتات على هذا النظام، ستحتاج إلى تمكين تشغيل السكربتات عن طريق تعيين سياسة تنفيذ مناسبة. يمكنك القيام بذلك عن طريق تشغيل PowerShell كمسؤول، ثم تشغيل الأمر التالي:
```powershell
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
```
أدخل `Y` عند طلب التأكيد. ثم أعد تشغيل PowerShell وحاول مرة أخرى.
يمكنك إعادة تعيين سياسة التنفيذ هذه في وقت لاحق إذا لزم الأمر. يمكنك قراءة المزيد عن هذا في [صفحة سياسات التنفيذ على Microsoft Docs](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. قم بتشغيل الأوامر التالية لتثبيت حزم Pip لـ CounterFit. تتضمن هذه الحزم تطبيق CounterFit الرئيسي بالإضافة إلى أدوات محاكاة لأجهزة Grove. تتيح لك هذه الأدوات كتابة الكود كما لو كنت تبرمج باستخدام مستشعرات ومحركات فعلية من نظام Grove ولكنها متصلة بأجهزة إنترنت الأشياء الافتراضية.
```sh
pip install CounterFit
pip install counterfit-connection
pip install counterfit-shims-grove
```
سيتم تثبيت هذه الحزم فقط في البيئة الافتراضية، ولن تكون متاحة خارجها.
### كتابة الكود
بمجرد أن تكون البيئة الافتراضية لـ Python جاهزة، يمكنك كتابة الكود لتطبيق "مرحبًا بالعالم".
#### المهمة - كتابة الكود
قم بإنشاء تطبيق Python لطباعة `"Hello World"` إلى وحدة التحكم.
1. من الطرفية أو سطر الأوامر، قم بتشغيل الأمر التالي داخل البيئة الافتراضية لإنشاء ملف Python يسمى `app.py`:
* على Windows، قم بتشغيل:
```cmd
type nul > app.py
```
* على macOS أو Linux، قم بتشغيل:
```cmd
touch app.py
```
1. افتح المجلد الحالي في VS Code:
```sh
code .
```
> 💁 إذا أعادت الطرفية `command not found` على macOS، فهذا يعني أن 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 إلى PATH افتراضيًا على Windows وLinux.
1. عند تشغيل VS Code، سيتم تفعيل البيئة الافتراضية لـ Python. ستظهر البيئة الافتراضية المحددة في شريط الحالة السفلي:
![VS Code showing the selected virtual environment](../../../../../translated_images/vscode-virtual-env.8ba42e04c3d533cf677e16cbe5ed9a3b80f62c6964472dc84b6f940800f0909f.ar.png)
1. إذا كانت طرفية VS Code تعمل بالفعل عند بدء تشغيل VS Code، فلن يتم تفعيل البيئة الافتراضية فيها. أسهل شيء يمكنك القيام به هو إنهاء الطرفية باستخدام زر **Kill the active terminal instance**:
![VS Code Kill the active terminal instance button](../../../../../translated_images/vscode-kill-terminal.1cc4de7c6f25ee08f423f0ead714e61d069fac1eb2089e97b8a7bbcb3d45fe5e.ar.png)
يمكنك معرفة ما إذا كانت الطرفية تحتوي على البيئة الافتراضية مفعلة حيث سيكون اسم البيئة الافتراضية عبارة عن بادئة على موجه الطرفية. على سبيل المثال، قد يكون:
```sh
(.venv) ➜ nightlight
```
إذا لم يكن لديك `.venv` كبادئة على الموجه، فإن البيئة الافتراضية ليست مفعلة في الطرفية.
1. قم بتشغيل طرفية جديدة في VS Code عن طريق تحديد *Terminal -> New Terminal* أو الضغط على `` CTRL+` ``. ستقوم الطرفية الجديدة بتحميل البيئة الافتراضية، وسيظهر استدعاء التفعيل في الطرفية. سيكون الموجه أيضًا يحتوي على اسم البيئة الافتراضية (`.venv`):
```output
➜ nightlight source .venv/bin/activate
(.venv) ➜ nightlight
```
1. افتح ملف `app.py` من مستكشف VS Code وأضف الكود التالي:
```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
```
سيبدأ التطبيق في التشغيل ويفتح في متصفح الويب الخاص بك:
![The Counter Fit app running in a browser](../../../../../translated_images/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.ar.png)
سيتم تصنيفه كـ *Disconnected*، مع إطفاء LED في الزاوية العلوية اليمنى.
1. أضف الكود التالي إلى أعلى ملف `app.py`:
```python
from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000)
```
يقوم هذا الكود باستيراد فئة `CounterFitConnection` من وحدة `counterfit_connection`، والتي تأتي من حزمة `counterfit-connection` التي قمت بتثبيتها سابقًا. ثم يقوم بتهيئة اتصال بتطبيق CounterFit الذي يعمل على `127.0.0.1`، وهو عنوان IP يمكنك دائمًا استخدامه للوصول إلى جهاز الكمبيوتر المحلي الخاص بك (غالبًا ما يُشار إليه بـ *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 button](../../../../../translated_images/vscode-new-terminal.77db8fc0f9cd31824b0e49a201beafe4ae4616d6c7339992cb2819e789b3eff9.ar.png)
1. في هذه الطرفية الجديدة، قم بتشغيل ملف `app.py` كما كان من قبل. ستتغير حالة CounterFit إلى **Connected** وسيضيء LED.
![Counter Fit showing as connected](../../../../../translated_images/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.ar.png)
> 💁 يمكنك العثور على هذا الكود في مجلد [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device).
😀 لقد نجح الاتصال بالأجهزة!
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.