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

19 KiB

کامپیوتر تک‌برد مجازی

به جای خرید یک دستگاه IoT همراه با حسگرها و عملگرها، می‌توانید از کامپیوتر خود برای شبیه‌سازی سخت‌افزار IoT استفاده کنید. پروژه CounterFit به شما این امکان را می‌دهد که یک اپلیکیشن را به صورت محلی اجرا کنید که سخت‌افزار IoT مانند حسگرها و عملگرها را شبیه‌سازی می‌کند و از طریق کد پایتون محلی به این حسگرها و عملگرها دسترسی پیدا کنید. این کد به همان شیوه‌ای نوشته می‌شود که شما برای سخت‌افزار واقعی روی Raspberry Pi می‌نویسید.

راه‌اندازی

برای استفاده از CounterFit، باید نرم‌افزارهای رایگانی را روی کامپیوتر خود نصب کنید.

وظیفه

نرم‌افزارهای مورد نیاز را نصب کنید.

  1. پایتون را نصب کنید. برای دستورالعمل‌های نصب آخرین نسخه پایتون به صفحه دانلود پایتون مراجعه کنید.

  2. Visual Studio Code (VS Code) را نصب کنید. این ویرایشگری است که برای نوشتن کد دستگاه مجازی خود در پایتون استفاده خواهید کرد. برای دستورالعمل‌های نصب VS Code به مستندات VS Code مراجعه کنید.

    💁 شما آزاد هستید که از هر IDE یا ویرایشگر پایتون دیگری که ترجیح می‌دهید برای این درس‌ها استفاده کنید، اما دستورالعمل‌های درس‌ها بر اساس استفاده از VS Code ارائه می‌شوند.

  3. افزونه Pylance برای VS Code را نصب کنید. این افزونه پشتیبانی زبان پایتون را برای VS Code فراهم می‌کند. برای دستورالعمل‌های نصب این افزونه در VS Code به مستندات افزونه Pylance مراجعه کنید.

دستورالعمل‌های نصب و پیکربندی اپلیکیشن CounterFit در زمان مناسب در دستورالعمل‌های تکلیف ارائه می‌شود، زیرا این اپلیکیشن به صورت پروژه‌ای نصب می‌شود.

سلام دنیا

به طور سنتی، هنگام شروع کار با یک زبان برنامه‌نویسی یا فناوری جدید، یک اپلیکیشن 'سلام دنیا' ایجاد می‌شود - یک اپلیکیشن کوچک که چیزی مانند متن "Hello World" را خروجی می‌دهد تا نشان دهد همه ابزارها به درستی پیکربندی شده‌اند.

اپلیکیشن سلام دنیا برای سخت‌افزار IoT مجازی تضمین می‌کند که پایتون و Visual Studio Code به درستی نصب شده‌اند. همچنین به CounterFit برای حسگرها و عملگرهای IoT مجازی متصل می‌شود. این اپلیکیشن از هیچ سخت‌افزاری استفاده نمی‌کند، فقط برای اثبات عملکرد همه چیز به CounterFit متصل می‌شود.

این اپلیکیشن در پوشه‌ای به نام nightlight قرار خواهد گرفت و در بخش‌های بعدی این تکلیف با کدهای مختلف برای ساخت اپلیکیشن چراغ شبانه استفاده خواهد شد.

پیکربندی محیط مجازی پایتون

یکی از ویژگی‌های قدرتمند پایتون امکان نصب بسته‌های Pip است - این‌ها بسته‌هایی از کد هستند که توسط افراد دیگر نوشته شده و در اینترنت منتشر شده‌اند. شما می‌توانید یک بسته Pip را با یک فرمان روی کامپیوتر خود نصب کنید و سپس از آن بسته در کد خود استفاده کنید. شما از Pip برای نصب بسته‌ای برای ارتباط با CounterFit استفاده خواهید کرد.

به طور پیش‌فرض، وقتی یک بسته نصب می‌کنید، آن بسته در همه جای کامپیوتر شما در دسترس است، و این می‌تواند منجر به مشکلاتی با نسخه‌های بسته‌ها شود - مانند اینکه یک اپلیکیشن به یک نسخه خاص از یک بسته وابسته باشد که با نصب نسخه جدید برای یک اپلیکیشن دیگر خراب شود. برای حل این مشکل، می‌توانید از یک محیط مجازی پایتون استفاده کنید، که اساساً یک نسخه کپی از پایتون در یک پوشه اختصاصی است، و وقتی بسته‌های Pip نصب می‌کنید، فقط در آن پوشه نصب می‌شوند.

💁 اگر از Raspberry Pi استفاده می‌کنید، نیازی به تنظیم محیط مجازی روی آن دستگاه برای مدیریت بسته‌های Pip ندارید، بلکه از بسته‌های جهانی استفاده می‌کنید، زیرا بسته‌های Grove به صورت جهانی توسط اسکریپت نصب‌کننده نصب شده‌اند.

وظیفه - پیکربندی محیط مجازی پایتون

یک محیط مجازی پایتون پیکربندی کنید و بسته‌های Pip برای CounterFit را نصب کنید.

  1. از ترمینال یا خط فرمان خود، دستورات زیر را در مکانی دلخواه اجرا کنید تا یک دایرکتوری جدید ایجاد کرده و به آن بروید:

    mkdir nightlight
    cd nightlight
    
  2. اکنون دستورات زیر را اجرا کنید تا یک محیط مجازی در پوشه .venv ایجاد کنید:

    python3 -m venv .venv
    

    💁 شما باید به طور صریح python3 را فراخوانی کنید تا محیط مجازی ایجاد شود، زیرا ممکن است پایتون 2 نیز در کنار پایتون 3 (آخرین نسخه) نصب شده باشد. اگر پایتون 2 نصب شده باشد، فراخوانی python به جای پایتون 3 از پایتون 2 استفاده خواهد کرد.

  3. محیط مجازی را فعال کنید:

    • در ویندوز:

      • اگر از Command Prompt یا Command Prompt از طریق Windows Terminal استفاده می‌کنید، اجرا کنید:

        .venv\Scripts\activate.bat
        
      • اگر از PowerShell استفاده می‌کنید، اجرا کنید:

        .\.venv\Scripts\Activate.ps1
        

        اگر خطایی درباره غیرفعال بودن اجرای اسکریپت‌ها در این سیستم دریافت کردید، باید اجرای اسکریپت‌ها را با تنظیم یک سیاست اجرایی مناسب فعال کنید. می‌توانید این کار را با اجرای PowerShell به عنوان مدیر و سپس اجرای دستور زیر انجام دهید:

        Set-ExecutionPolicy -ExecutionPolicy Unrestricted
        

        وقتی از شما خواسته شد تأیید کنید، Y را وارد کنید. سپس PowerShell را دوباره اجرا کنید و دوباره امتحان کنید.

        در صورت نیاز می‌توانید این سیاست اجرایی را در آینده بازنشانی کنید. می‌توانید اطلاعات بیشتری در این مورد در صفحه سیاست‌های اجرایی در مستندات مایکروسافت پیدا کنید.

    • در macOS یا لینوکس، اجرا کنید:

      source ./.venv/bin/activate
      

    💁 این دستورات باید از همان مکانی اجرا شوند که دستور ایجاد محیط مجازی را اجرا کردید. شما هرگز نیازی به رفتن به داخل پوشه .venv ندارید، بلکه باید همیشه دستور فعال‌سازی و هر دستوری برای نصب بسته‌ها یا اجرای کد را از پوشه‌ای که محیط مجازی را در آن ایجاد کردید اجرا کنید.

  4. پس از فعال شدن محیط مجازی، دستور پیش‌فرض python نسخه‌ای از پایتون را اجرا می‌کند که برای ایجاد محیط مجازی استفاده شده است. دستور زیر را اجرا کنید تا نسخه را دریافت کنید:

    python --version
    

    خروجی باید شامل موارد زیر باشد:

    (.venv) ➜  nightlight python --version
    Python 3.9.1
    

    💁 نسخه پایتون شما ممکن است متفاوت باشد - تا زمانی که نسخه 3.6 یا بالاتر باشد، مشکلی نیست. اگر نه، این پوشه را حذف کنید، نسخه جدیدتری از پایتون نصب کنید و دوباره امتحان کنید.

  5. دستورات زیر را اجرا کنید تا بسته‌های Pip برای CounterFit نصب شوند. این بسته‌ها شامل اپلیکیشن اصلی CounterFit و همچنین شیم‌هایی برای سخت‌افزار Grove هستند. این شیم‌ها به شما امکان می‌دهند کدی بنویسید که گویی با استفاده از حسگرها و عملگرهای فیزیکی از اکوسیستم Grove برنامه‌نویسی می‌کنید، اما به دستگاه‌های IoT مجازی متصل است.

    pip install CounterFit
    pip install counterfit-connection
    pip install counterfit-shims-grove
    

    این بسته‌های Pip فقط در محیط مجازی نصب خواهند شد و خارج از آن در دسترس نخواهند بود.

نوشتن کد

پس از آماده شدن محیط مجازی پایتون، می‌توانید کد اپلیکیشن 'سلام دنیا' را بنویسید.

وظیفه - نوشتن کد

یک اپلیکیشن پایتون ایجاد کنید که "Hello World" را در کنسول چاپ کند.

  1. از ترمینال یا خط فرمان خود، دستورات زیر را در داخل محیط مجازی اجرا کنید تا یک فایل پایتون به نام app.py ایجاد کنید:

    • در ویندوز اجرا کنید:

      type nul > app.py
      
    • در macOS یا لینوکس اجرا کنید:

      touch app.py
      
  2. پوشه فعلی را در VS Code باز کنید:

    code .
    

    💁 اگر ترمینال شما در macOS دستور command not found را برگرداند، به این معنی است که VS Code به PATH شما اضافه نشده است. می‌توانید VS Code را به PATH خود اضافه کنید با دنبال کردن دستورالعمل‌های بخش راه‌اندازی از خط فرمان در مستندات VS Code و سپس دستور را اجرا کنید. VS Code به طور پیش‌فرض در ویندوز و لینوکس به PATH شما اضافه می‌شود.

  3. وقتی VS Code راه‌اندازی شد، محیط مجازی پایتون را فعال می‌کند. محیط مجازی انتخاب شده در نوار وضعیت پایین ظاهر خواهد شد:

    VS Code showing the selected virtual environment

  4. اگر ترمینال VS Code هنگام راه‌اندازی VS Code در حال اجرا باشد، محیط مجازی در آن فعال نخواهد بود. ساده‌ترین کار این است که ترمینال را با استفاده از دکمه Kill the active terminal instance ببندید:

    VS Code Kill the active terminal instance button

    می‌توانید تشخیص دهید که آیا ترمینال محیط مجازی را فعال کرده است یا نه، زیرا نام محیط مجازی به عنوان پیشوند روی اعلان ترمینال ظاهر می‌شود. برای مثال، ممکن است:

    (.venv) ➜  nightlight
    

    اگر .venv به عنوان پیشوند روی اعلان وجود نداشته باشد، محیط مجازی در ترمینال فعال نیست.

  5. یک ترمینال جدید در VS Code راه‌اندازی کنید با انتخاب Terminal -> New Terminal یا فشار دادن CTRL+`. ترمینال جدید محیط مجازی را بارگذاری می‌کند و فراخوانی برای فعال‌سازی آن در ترمینال ظاهر خواهد شد. اعلان نیز نام محیط مجازی (.venv) را خواهد داشت:

    ➜  nightlight source .venv/bin/activate
    (.venv) ➜  nightlight 
    
  6. فایل app.py را از اکسپلورر VS Code باز کنید و کد زیر را اضافه کنید:

    print('Hello World!')
    

    تابع print هر چیزی که به آن داده شود را در کنسول چاپ می‌کند.

  7. از ترمینال VS Code، دستور زیر را اجرا کنید تا اپلیکیشن پایتون خود را اجرا کنید:

    python app.py
    

    خروجی زیر در کنسول ظاهر خواهد شد:

    (.venv) ➜  nightlight python app.py 
    Hello World!
    

😀 برنامه 'سلام دنیا' شما موفقیت‌آمیز بود!

اتصال 'سخت‌افزار'

به عنوان یک مرحله دوم 'سلام دنیا'، اپلیکیشن CounterFit را اجرا کرده و کد خود را به آن متصل خواهید کرد. این معادل مجازی اتصال برخی سخت‌افزارهای IoT به یک کیت توسعه است.

وظیفه - اتصال 'سخت‌افزار'

  1. از ترمینال VS Code، اپلیکیشن CounterFit را با دستور زیر اجرا کنید:

    counterfit
    

    اپلیکیشن شروع به اجرا می‌کند و در مرورگر وب شما باز می‌شود:

    The Counter Fit app running in a browser

    این اپلیکیشن به عنوان Disconnected علامت‌گذاری شده است و LED در گوشه بالا-راست خاموش است.

  2. کد زیر را به بالای فایل app.py اضافه کنید:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    

    این کد کلاس CounterFitConnection را از ماژول counterfit_connection وارد می‌کند، که از بسته Pip counterfit-connection که قبلاً نصب کرده‌اید می‌آید. سپس یک اتصال به اپلیکیشن CounterFit که روی 127.0.0.1 اجرا می‌شود، که یک آدرس IP است که همیشه می‌توانید برای دسترسی به کامپیوتر محلی خود (اغلب به عنوان localhost شناخته می‌شود) استفاده کنید، روی پورت 5000 برقرار می‌کند.

    💁 اگر اپلیکیشن‌های دیگری روی پورت 5000 اجرا می‌شوند، می‌توانید این پورت را با به‌روزرسانی کد تغییر دهید و CounterFit را با استفاده از CounterFit --port <port_number> اجرا کنید، که <port_number> را با پورت مورد نظر خود جایگزین کنید.

  3. باید یک ترمینال جدید در VS Code راه‌اندازی کنید با انتخاب دکمه Create a new integrated terminal. این به این دلیل است که اپلیکیشن CounterFit در ترمینال فعلی در حال اجرا است.

    VS Code Create a new integrated terminal button

  4. در این ترمینال جدید، فایل app.py را همانند قبل اجرا کنید. وضعیت CounterFit به Connected تغییر خواهد کرد و LED روشن خواهد شد.

    Counter Fit showing as connected

💁 می‌توانید این کد را در پوشه code/virtual-device پیدا کنید.

😀 اتصال شما به سخت‌افزار موفقیت‌آمیز بود!

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.