|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "a4f0c166010e31fd7b6ca20bc88dec6d",
|
|
|
"translation_date": "2025-08-25T22:18:49+00:00",
|
|
|
"source_file": "1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md",
|
|
|
"language_code": "fa"
|
|
|
}
|
|
|
-->
|
|
|
# ویو ترمینال
|
|
|
|
|
|
[ویو ترمینال از Seeed Studios](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) یک میکروکنترلر سازگار با آردوینو است که دارای WiFi، تعدادی حسگر و عملگر داخلی و همچنین پورتهایی برای افزودن حسگرها و عملگرهای بیشتر با استفاده از یک اکوسیستم سختافزاری به نام [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html) میباشد.
|
|
|
|
|
|

|
|
|
|
|
|
## راهاندازی
|
|
|
|
|
|
برای استفاده از ویو ترمینال، باید نرمافزارهای رایگانی را روی کامپیوتر خود نصب کنید. همچنین باید قبل از اتصال به WiFi، فریمور ویو ترمینال را بهروزرسانی کنید.
|
|
|
|
|
|
### وظیفه - راهاندازی
|
|
|
|
|
|
نرمافزارهای موردنیاز را نصب کرده و فریمور را بهروزرسانی کنید.
|
|
|
|
|
|
1. ویژوال استودیو کد (VS Code) را نصب کنید. این ویرایشگری است که برای نوشتن کد دستگاه خود به زبان C/C++ از آن استفاده خواهید کرد. برای دستورالعملهای نصب ویژوال استودیو کد به [مستندات VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) مراجعه کنید.
|
|
|
|
|
|
> 💁 یک IDE محبوب دیگر برای توسعه آردوینو [Arduino IDE](https://www.arduino.cc/en/software) است. اگر قبلاً با این ابزار آشنا هستید، میتوانید به جای VS Code و PlatformIO از آن استفاده کنید، اما درسها بر اساس استفاده از VS Code توضیح داده خواهند شد.
|
|
|
|
|
|
1. افزونه PlatformIO را برای VS Code نصب کنید. این افزونه از برنامهنویسی میکروکنترلرها به زبان C/C++ پشتیبانی میکند. برای دستورالعملهای نصب این افزونه در VS Code به [مستندات افزونه PlatformIO](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=platformio.platformio-ide) مراجعه کنید. این افزونه به افزونه Microsoft C/C++ وابسته است که بهطور خودکار هنگام نصب PlatformIO نصب میشود.
|
|
|
|
|
|
1. ویو ترمینال خود را به کامپیوتر متصل کنید. ویو ترمینال دارای یک پورت USB-C در قسمت پایین است که باید به یک پورت USB روی کامپیوتر شما متصل شود. ویو ترمینال با یک کابل USB-C به USB-A ارائه میشود، اما اگر کامپیوتر شما فقط پورت USB-C دارد، به یک کابل USB-C یا یک مبدل USB-A به USB-C نیاز خواهید داشت.
|
|
|
|
|
|
1. دستورالعملهای موجود در [مستندات WiFi Overview ویکی ویو ترمینال](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/) را دنبال کنید تا ویو ترمینال خود را راهاندازی کرده و فریمور را بهروزرسانی کنید.
|
|
|
|
|
|
## سلام دنیا
|
|
|
|
|
|
بهطور سنتی، هنگام شروع کار با یک زبان برنامهنویسی یا فناوری جدید، یک برنامه کوچک به نام 'سلام دنیا' ایجاد میشود که متنی مانند `"Hello World"` را نمایش میدهد تا نشان دهد همه ابزارها بهدرستی پیکربندی شدهاند.
|
|
|
|
|
|
برنامه سلام دنیا برای ویو ترمینال اطمینان میدهد که ویژوال استودیو کد با PlatformIO بهدرستی نصب شده و برای توسعه میکروکنترلر آماده است.
|
|
|
|
|
|
### ایجاد یک پروژه PlatformIO
|
|
|
|
|
|
اولین گام، ایجاد یک پروژه جدید با استفاده از PlatformIO است که برای ویو ترمینال پیکربندی شده باشد.
|
|
|
|
|
|
#### وظیفه - ایجاد یک پروژه PlatformIO
|
|
|
|
|
|
پروژه PlatformIO را ایجاد کنید.
|
|
|
|
|
|
1. ویو ترمینال را به کامپیوتر خود متصل کنید.
|
|
|
|
|
|
1. ویژوال استودیو کد را باز کنید.
|
|
|
|
|
|
1. آیکون PlatformIO در نوار منوی کناری قرار دارد:
|
|
|
|
|
|

|
|
|
|
|
|
این گزینه را انتخاب کنید، سپس *PIO Home -> Open* را انتخاب کنید.
|
|
|
|
|
|

|
|
|
|
|
|
1. از صفحه خوشآمدگویی، دکمه **+ New Project** را انتخاب کنید.
|
|
|
|
|
|

|
|
|
|
|
|
1. پروژه را در *Project Wizard* پیکربندی کنید:
|
|
|
|
|
|
1. نام پروژه خود را `nightlight` بگذارید.
|
|
|
|
|
|
1. از منوی کشویی *Board*، `WIO` را تایپ کنید تا بردها فیلتر شوند و *Seeeduino Wio Terminal* را انتخاب کنید.
|
|
|
|
|
|
1. *Framework* را روی *Arduino* بگذارید.
|
|
|
|
|
|
1. گزینه *Use default location* را تیکدار بگذارید یا آن را بردارید و مکان پروژه خود را انتخاب کنید.
|
|
|
|
|
|
1. دکمه **Finish** را انتخاب کنید.
|
|
|
|
|
|

|
|
|
|
|
|
PlatformIO اجزای موردنیاز برای کامپایل کد برای ویو ترمینال را دانلود کرده و پروژه شما را ایجاد میکند. این فرآیند ممکن است چند دقیقه طول بکشد.
|
|
|
|
|
|
### بررسی پروژه PlatformIO
|
|
|
|
|
|
اکسپلورر ویژوال استودیو کد تعدادی فایل و پوشه را که توسط ویزارد PlatformIO ایجاد شدهاند، نشان میدهد.
|
|
|
|
|
|
#### پوشهها
|
|
|
|
|
|
* `.pio` - این پوشه شامل دادههای موقتی است که توسط PlatformIO مانند کتابخانهها یا کد کامپایلشده استفاده میشود. اگر حذف شود، بهطور خودکار بازسازی میشود و نیازی نیست این پوشه را در کنترل نسخه (مانند GitHub) اضافه کنید.
|
|
|
* `.vscode` - این پوشه شامل پیکربندیهای مورد استفاده توسط PlatformIO و ویژوال استودیو کد است. اگر حذف شود، بهطور خودکار بازسازی میشود و نیازی نیست این پوشه را در کنترل نسخه اضافه کنید.
|
|
|
* `include` - این پوشه برای فایلهای هدر خارجی است که هنگام افزودن کتابخانههای اضافی به کد خود نیاز دارید. در این درسها از این پوشه استفاده نخواهید کرد.
|
|
|
* `lib` - این پوشه برای کتابخانههای خارجی است که میخواهید از کد خود فراخوانی کنید. در این درسها از این پوشه استفاده نخواهید کرد.
|
|
|
* `src` - این پوشه شامل کد منبع اصلی برنامه شما است. در ابتدا، فقط یک فایل به نام `main.cpp` در آن وجود دارد.
|
|
|
* `test` - این پوشه جایی است که میتوانید تستهای واحد برای کد خود قرار دهید.
|
|
|
|
|
|
#### فایلها
|
|
|
|
|
|
* `main.cpp` - این فایل در پوشه `src` نقطه ورود برنامه شما را شامل میشود. این فایل را باز کنید و کد زیر را مشاهده خواهید کرد:
|
|
|
|
|
|
```cpp
|
|
|
#include <Arduino.h>
|
|
|
|
|
|
void setup() {
|
|
|
// put your setup code here, to run once:
|
|
|
}
|
|
|
|
|
|
void loop() {
|
|
|
// put your main code here, to run repeatedly:
|
|
|
}
|
|
|
```
|
|
|
|
|
|
وقتی دستگاه روشن میشود، فریمورک آردوینو ابتدا تابع `setup` را یک بار اجرا میکند، سپس تابع `loop` را بهطور مکرر اجرا میکند تا زمانی که دستگاه خاموش شود.
|
|
|
|
|
|
* `.gitignore` - این فایل لیستی از فایلها و دایرکتوریهایی را که باید هنگام افزودن کد به کنترل نسخه (مانند آپلود در یک مخزن GitHub) نادیده گرفته شوند، شامل میشود.
|
|
|
|
|
|
* `platformio.ini` - این فایل شامل پیکربندی دستگاه و برنامه شما است. این فایل را باز کنید و کد زیر را مشاهده خواهید کرد:
|
|
|
|
|
|
```ini
|
|
|
[env:seeed_wio_terminal]
|
|
|
platform = atmelsam
|
|
|
board = seeed_wio_terminal
|
|
|
framework = arduino
|
|
|
```
|
|
|
|
|
|
بخش `[env:seeed_wio_terminal]` شامل پیکربندی برای ویو ترمینال است. میتوانید چندین بخش `env` داشته باشید تا کد شما برای چندین برد کامپایل شود.
|
|
|
|
|
|
مقادیر دیگر با پیکربندی از ویزارد پروژه مطابقت دارند:
|
|
|
|
|
|
* `platform = atmelsam` سختافزاری را که ویو ترمینال استفاده میکند (یک میکروکنترلر مبتنی بر ATSAMD51) تعریف میکند.
|
|
|
* `board = seeed_wio_terminal` نوع برد میکروکنترلر (ویو ترمینال) را تعریف میکند.
|
|
|
* `framework = arduino` نشان میدهد که این پروژه از فریمورک آردوینو استفاده میکند.
|
|
|
|
|
|
### نوشتن برنامه سلام دنیا
|
|
|
|
|
|
اکنون آماده نوشتن برنامه سلام دنیا هستید.
|
|
|
|
|
|
#### وظیفه - نوشتن برنامه سلام دنیا
|
|
|
|
|
|
برنامه سلام دنیا را بنویسید.
|
|
|
|
|
|
1. فایل `main.cpp` را در ویژوال استودیو کد باز کنید.
|
|
|
|
|
|
1. کد را به کد زیر تغییر دهید:
|
|
|
|
|
|
```cpp
|
|
|
#include <Arduino.h>
|
|
|
|
|
|
void setup()
|
|
|
{
|
|
|
Serial.begin(9600);
|
|
|
|
|
|
while (!Serial)
|
|
|
; // Wait for Serial to be ready
|
|
|
|
|
|
delay(1000);
|
|
|
}
|
|
|
|
|
|
void loop()
|
|
|
{
|
|
|
Serial.println("Hello World");
|
|
|
delay(5000);
|
|
|
}
|
|
|
```
|
|
|
|
|
|
تابع `setup` یک اتصال به پورت سریال (در اینجا، پورت USB که برای اتصال ویو ترمینال به کامپیوتر استفاده میشود) را مقداردهی اولیه میکند. پارامتر `9600` نرخ [baud](https://wikipedia.org/wiki/Symbol_rate) (یا نرخ سمبل) است، یعنی سرعت ارسال دادهها از طریق پورت سریال به بیت در ثانیه. این تنظیم به معنای ارسال ۹۶۰۰ بیت داده در هر ثانیه است. سپس منتظر میماند تا پورت سریال آماده شود.
|
|
|
|
|
|
تابع `loop` خط `Hello World!` را به پورت سریال ارسال میکند، بنابراین کاراکترهای `Hello World!` همراه با یک کاراکتر خط جدید ارسال میشوند. سپس به مدت ۵۰۰۰ میلیثانیه یا ۵ ثانیه متوقف میشود. پس از پایان `loop`، دوباره اجرا میشود و این روند تا زمانی که میکروکنترلر روشن باشد ادامه دارد.
|
|
|
|
|
|
1. ویو ترمینال خود را در حالت آپلود قرار دهید. هر بار که کد جدیدی را به دستگاه آپلود میکنید، باید این کار را انجام دهید:
|
|
|
|
|
|
1. دو بار سریع کلید پاور را به پایین بکشید - کلید به حالت روشن بازمیگردد.
|
|
|
|
|
|
1. چراغ آبی وضعیت در سمت راست پورت USB را بررسی کنید. باید بهصورت پالس روشن شود.
|
|
|
|
|
|
[](https://youtu.be/LeKU_7zLRrQ)
|
|
|
|
|
|
برای مشاهده ویدئو، روی تصویر بالا کلیک کنید.
|
|
|
|
|
|
1. کد را بسازید و به ویو ترمینال آپلود کنید.
|
|
|
|
|
|
1. پالت دستورات ویژوال استودیو کد را باز کنید.
|
|
|
|
|
|
1. عبارت `PlatformIO Upload` را تایپ کنید تا گزینه آپلود جستجو شود و *PlatformIO: Upload* را انتخاب کنید.
|
|
|
|
|
|

|
|
|
|
|
|
PlatformIO در صورت نیاز کد را بهطور خودکار قبل از آپلود کامپایل میکند.
|
|
|
|
|
|
1. کد کامپایل شده و به ویو ترمینال آپلود میشود.
|
|
|
|
|
|
> 💁 اگر از macOS استفاده میکنید، یک اعلان درباره *DISK NOT EJECTED PROPERLY* ظاهر میشود. این به این دلیل است که ویو ترمینال بهعنوان یک درایو در فرآیند فلش کردن متصل میشود و هنگام نوشتن کد کامپایلشده به دستگاه، قطع میشود. میتوانید این اعلان را نادیده بگیرید.
|
|
|
|
|
|
⚠️ اگر خطاهایی درباره در دسترس نبودن پورت آپلود دریافت کردید، ابتدا مطمئن شوید که ویو ترمینال به کامپیوتر شما متصل است، با کلید سمت چپ صفحه روشن شده و در حالت آپلود قرار دارد. چراغ سبز در پایین باید روشن باشد و چراغ آبی باید بهصورت پالس روشن شود. اگر همچنان خطا دریافت میکنید، کلید روشن/خاموش را دوباره دو بار سریع به پایین بکشید تا ویو ترمینال را به حالت آپلود مجبور کنید و دوباره آپلود را امتحان کنید.
|
|
|
|
|
|
PlatformIO دارای یک مانیتور سریال است که میتواند دادههای ارسالشده از طریق کابل USB از ویو ترمینال را نظارت کند. این امکان را به شما میدهد تا دادههای ارسالشده توسط دستور `Serial.println("Hello World");` را مشاهده کنید.
|
|
|
|
|
|
1. پالت دستورات ویژوال استودیو کد را باز کنید.
|
|
|
|
|
|
1. عبارت `PlatformIO Serial` را تایپ کنید تا گزینه مانیتور سریال جستجو شود و *PlatformIO: Serial Monitor* را انتخاب کنید.
|
|
|
|
|
|

|
|
|
|
|
|
یک ترمینال جدید باز میشود و دادههای ارسالشده از طریق پورت سریال به این ترمینال جریان مییابد:
|
|
|
|
|
|
```output
|
|
|
> Executing task: platformio device monitor <
|
|
|
|
|
|
--- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
|
|
|
--- More details at http://bit.ly/pio-monitor-filters
|
|
|
--- Miniterm on /dev/cu.usbmodem101 9600,8,N,1 ---
|
|
|
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
|
|
|
Hello World
|
|
|
Hello World
|
|
|
```
|
|
|
|
|
|
عبارت `Hello World` هر ۵ ثانیه یک بار در مانیتور سریال چاپ میشود.
|
|
|
|
|
|
> 💁 میتوانید این کد را در پوشه [code/wio-terminal](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/wio-terminal) پیدا کنید.
|
|
|
|
|
|
😀 برنامه 'سلام دنیا' شما با موفقیت اجرا شد!
|
|
|
|
|
|
**سلب مسئولیت**:
|
|
|
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه حرفهای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم. |