آردوینو

نحوه راه اندازی برد آردوینو Yun

آموزش نحوه راه‌اندازی برد آردوینو Yun

یادگیری آردوینو برای افراد مبتدی لذت‌بخش است اما برای افرادی که سال‌ها کارشان برنامه‌نویسی میکروکنترلر بوده، شاید کمی کسل‌کننده باشد. به هر ترتیب، امروز در بلاگ بهنام رباتیک می‌خواهیم بردی از خانواده آردوینو را به شما معرفی کنیم که نه تنها کاربران مبتدی می‌توانند از آن بهره گیرند بلکه کاربران حرفه‌ای نیز قادر خواهند بود با سختی‌ها و پیچیدگی‌های آن کلنجار بروند. این برد که آردوینو Yun نام دارد، دارای دو هسته پردازشی است و امکانات خوبی را نیز در اختیار شما قرار می‌دهد. با بهنام رباتیک همراه باشید تا با نحوه راه اندازی برد آردوینو Yun آشنا شوید.

توضیحات لازم قبل از راه اندازی آردوینو Yun

با اینکه آردوینو Yun یک برد متفاوت است اما راه‌اندازی و برنامه‌نویسی آن شبیه برد آردوینو Leonardo است زیرا پردازنده مشابهی در آن به کار رفته است. همچنین، آردوینو یون یک پردازنده اضافه به نامAtheros AR9331 نیز دارد.

پردازنده Atheros AR9331 لینوکس، OpenWrt Wireless Stack را اجرا می‌کند. برنامه‌نویسی U4 32 از طریق USB دقیقاً مشابه برد لئوناردو است. این یعنی یک بار که شما آردوینو Yunرا پیکربندی می‌کنید تا به شبکهWi-Fi  متصل شود، می‌توانید از طریق وای‌فای U4 32 را برنامه‌نویسی نمایید.

برای اتصال آردوینو Yun به کامپیوتر خود، شما به یک کابل USB Micro-B نیاز دارید. این کابل تغذیه و دیتای برد را فراهم می‌کند. زمانی که برنامه‌نویسی و راه اندازی آردوینو Yun را آغاز می‌کنید، باید Arduino Yun را از Tools Boards در نرم‌افزار آردوینو برگزینید. توجه داشته باشید که آردوینو یون فقط در ورژن‌های بالاتر از 1.5.4 نرم‌افزار آردوینو در دسترس است.

تفاوت آردوینو Yun با آردوینو Leonardo

نمایی از برد آردوینو یون
نمایی از برد آردوینو یون

علاوه بر تراشه، آردوینو Yun یک پردازنده اضافی به نام Atheros AR9331 دارد که توزیعی از لینوکس برای سیستم‌های جاسازی شده با نام OpenWrt-Yun بر پایه  OpenWrt اجرا می‌کند.

آردوینو Yun از لحاظ مشخصه‌های فیزیکی و اتصالات، چند تفاوت با لئوناردو دارد. پورت مموری کارت microSD، درگاه کابل شبکه و یک کانکتور USB-B نیز دارد. لازم به ذکر است که آردوینو یون کانکتور یا سوکت پاور جداگانه ندارد و از طریق کانکتور micro-USB تغذیه می‌شود.

برد آردوینو یون رگولاتور 5 ولت ندارد و اگر شما ولتاژ بیشتر از آن را به برد وصل کنید، به آن صدمه می‌زنید. ضمناً، اگر شما Yun را از طریق اتصال USB تغذیه نمی‌کنید، می توانید تغذیه 5 ولت را به پین‌های VIN و V5 بر روی برد بسپارید. در این صورت شما نمی‌توانید بیشتر از 5 ولت را به برد متصل کنید وگرنه به آن صدمه خواهید زد. توصیه می‌شود تا حد امکان از اتصال USB برای تغذیه برد استفاده کنید.

درگاه کابل شبکه، مموری کارت microSD و USB به صورت فیزیکی به پردازنده U4 32 متصل نیستند، بلکه به AR9331 متصل شده‌اند.

توابع و کاربردهای پردازنده U4 32 برد آردوینو Yun مشابه لئوناردو است ولی شما نمی‌توانید از Serial 1 استفاده کنید زیرا برای ارتباط با پردازنده AR9331 در نظر گرفته شده است.

آردوینو یون همچنین، یک ماژول وای‌فای بر روی برد دارد که اجازه اتصال به شبکه‌های وای‌فای را می‌دهد یا می‌تواند به عنوان نقطه دسترسی برای اتصال دیگر دستگاه‌ها عمل کند.

پردازنده‌های Atheros AR9331 و U4 32 ماژول وای‌فای، هر کدام یک شاسی ریست جداگانه دارند.

چندین LED وضعیت بر روی برد Yun وجود دارد:

1) مشخص کننده پاور 2) اتصال WLAN و 3) اتصال WAN و USB. به علاوه، پین 12 نیز به یکی از LEDها متصل است.

اتصالات و امکانات برد آردوینو یون
اتصالات و امکانات برد آردوینو یون

راه اندازی آردوینو Yun؛ مرحله OpenWrt-Yun

آردوینو یون یک توزیعی از لینوکس بنام OpenWrt-Yun بر پایه OpenWrt اجرا می‌کند. در حالی که پیکربندی سیستم از خط دستور command line امکان‌پذیر است، یک صفحه وب وجود دارد که امکان پیکربندی گزینه‌ها و تنظیمات مختلف را به شما می‌دهد. وجه مشترک رابط که LuCi نامیده می‌شود این است که به شما دسترسی تنظیمات بیشتر برای وای‌فای را می‌دهد.

حافظه خارجی در آردوینو Yun

شما می‌توانید از حافظه خارجی مانند یک کارت حافظه microSD یا Thumb Driver برای ذخیره کردن اطلاعات، الگوهای خود، صفحات وب و . . . استفاده کنید. برای آردوینو یون، دسترسی و ذخیره اطلاعات بر روی این درایورها از طریق U4 32، نیاز به داشتن یک مسیر به نام Arduino  در Root of the Volume دارد.

راه اندازی آردوینو Yun؛ مرحله سرویس‌های وب

ریست کردن API در آردوینو Yun
ریست کردن API در آردوینو Yun

 OpenWrt-Yun برای مشتریان و سرورها از REST استفاده می‌کند. REST خلاصه عبارت Representational State Transfer است. این یک معماری نرم‌افزاری است که در معرض قسمت‌های مختلف سخت‌افزار آردوینو از طریق  URLها قرار می‌گیرد.

به طور پیش‌فرض، دسترسی REST API محافظت شده با رمز عبور است ولی امکان تغییر و دسترسی بدون رمز عبور هم وجود دارد. برای تغییر دادن این تنظیمات پیش از راه اندازی آردوینو Yun، وارد پنل پیکربندی آردوینو یون شوید. در پایین صفحه، گزینه‌های تغییر دسترسی را می‌بینید.

یک مثال واضح برای ایده REST را می‌توانید در اینجا ببینید.

سه نقطه پایانی REST که توسط برد Yun شناخته می‌شوند عبارتند از:

– /Arduino

– /data

–  /mailbox

Arduino هیچ چیزی که از قبل پیکربندی شده باشد را ندارد. همه چیز بعد از عبور کردن از وب سرور به اسکچ بر روی U4 32 به URL اضافه می‌شود.

Data برای دسترسی به حافظه key/value داخلی استفاده می‌شود. فراخوانی‌های در دسترس عبارتند از:

put/KEY/VALUE : یک مقدار را در داخل حافظه ذخیره می‌کند.

get/KEY: مقدار کلید درخواست داده شده در JSON را می‌دهد.

get: داخل لیست ذخیره شده در JSON را به دست می‌دهد.

:delete حافظه داخلی را پاک می‌کند.

mailbox: برای اضافه کردن پیام به صف که mailbox نامیده می‌شود، به کار می‌رود. صف پیام در سیستم لینوکس ذخیره می‌شود و می‌تواند توسط میکروکنترلر آردوینو خوانده شود.

 REST Callدر دسترس عبارت است از:

/mailbox/message

ریست کردن پردازنده‌ها U4 32، وای‌فای و AR9331

برای ریست کردن AR9331 که OpenWrt را باز راه‌اندازی می‌کند، از شاسی ریست YUN RST که نزدیک پین‌های ورودی آنالوگ و LEDهای برد است، استفاده کنید.

برای ریست کردن U4 32 و AR9331 اسکچ آردوینو نصب شده، شاسی کنار پورت شبکه را دوبار بزنید.

شاسی ریست وای‌فای کنار کانکتور USB-A قرار دارد. این شاسی که WLAN RST نامیده می‌شود، در صورت فشار داده شدن، باعث خواهد شد که WLAN LED چشمک بزند.

اگر به یک شبکه متفاوت بروید و نتوانید دسترسی بیسیم به Yun از طریق واسط وب خود آن را داشته باشید، می‌توانید پیکربندی شبکه آردوینو Yun را از طریق نگه داشتن شاسی ریست وای‌فای یعنی WLAN RST به مدت پنج ثانیه ریست کنید.

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

برای ریست کردن توزیع OpenWrt-Yun به حالت پیش‌فرض، شاسی ریست وای‌فای (WLAN RST) را حداقل به مدت 30 ثانیه فشار دهید تا برد به تنظیمات اورجینال بازگردد.

راه اندازی آردوینو یون؛ مرحله ریست کردن پسورد

ریست کردن پسورد در آردوینو Yun
ریست کردن پسورد در آردوینو Yun

رمز و پسورد WebPannel می‌تواند ریست شود و تغییر کند. آردوینو Yun را از طریق یک کابل USB به کامپیوتر متصل و اسکچ YunSerialTerminal را آپلود کنید. شما همچنین می‌توانید آن را در مثال‌های Bridge در نرم‌افزار آردوینو بیابید. زمانی که راه اندازی آردوینو Yun کامل شد، Serial Monitor را باز کنید. در منوی بازشونده به سمت پایین، گزینه New Line Character را انتخاب کرده و کلید Enter را بزنید. چیزی مشابه تصویر زیر در سریال ملیتور خود می بینید.

حال شما باید دستور Passwd را برای تغییر رمز اجرا کنید. Password را داخل Serial Monitor Input تایپ کنید و دکمه Enter را بزنید. از شما خواسته خواهد شد که رمز جدید را وارد و همچنین دوباره تایپ کنید تا تأیید شود. اگر هر دو رمز شما منطبق باشد، رمز سیستم تغییر می‌کند و شما می‌توانید با رمز جدید به webpannel دسترسی داشته باشید.

راه اندازی آردوینو Yun؛ مرحله Serial Re-Enumeration on Reset

آردوینو Yun تراشه اختصاصی برای مدیریت ارتباط سریال ندارد؛ این یعنی پورت سریال مجازی است. زمانی که شما هر برد آردوینو را به کامپیوتر وصل می‌کنید، رایانه یک درایور پورت سریال می‌سازد و U4 32 نیز راه‌انداز خود را زمانی که سریال را بسازد اجرا می‌کند. برد یک نمونه از درایور USB’s Connected Device Class (CDC) می‌باشد.

این یعنی هر زمان که شما پردازنده U4 32 را ریست می‌کنید، ارتباط USB سریال از بین می‌رود و دوباره ایجاد می‌شود. برد از لیست پورت‌های سریال حذف شده و لیست دوباره شکل می‌گیرد. هر برنامه که ارتباط سریال باز با Yun داشته باشد، ارتباطش قطع می‌شود. این برخلاف برد آردوینو Uno است زیرا در آن شما می‌توانید پردازنده اصلی یعنی Atmega328P را بدون بستن ارتباط USB که توسط پردازنده دوم یعنی ATmega8U2 یا Atmega16U2  حفظ می‌شود، ریست کنید. این تفاوت در نصب، آپلود کردن و ارتباطات نیز وجود دارد.

ریست نشدن در زمانی که شما پورت سریال را در کامپیوتر خود باز می‌کنید، برد Yun اسکچ را ری‌استارت نمی‌کند. این یعنی شما نمی‌توانید اطلاعات و دیتای سریال را که قبلاً توسط برد به کامپیوتر فرستاده شده است را ببینید. به عنوان مثال، بیشتر دیتا در تابع setup()  فرستاده شدند.

این تغییر بدان معناست که اگر شما هر یک از دستورات Write()، Print1n() و Serial Print() را در زمان نصب برنامه خود استفاده کنید، در زمان باز شدن سریال، به شما نشان نخواهد داد. شما می‌توانید اگر سریال مانیتور باز است، داده‌ها را ببینید. در این شرایط، باید مانند زیر عمل کنید:

 

// stops the program until Serial Monitor is opened

while (!Serial) ;

یا

// stops the program until Console is opened

while (!Console) ;

نصب درایورها برای راه اندازی آردوینو Yun

پنجره تنظیمات درایورد برد آردوینو Yun
پنجره تنظیمات درایورد برد آردوینو Yun

اولین باری که یک برد آردوینو یون را به یک سیستم macOS متصل می‌کنید، Keyboard Setup Assistant اجرا خواهد شد. اگر چیزی برای پیکربندی با لئوناردو وجود ندارد، می‌توانید این پنجره را ببندید.

نصب و راه اندازی درایورهای آردوینو Yun در سیستم عامل macOS و ویندوز

مراحل زیر را طی کنید:

  • نرم‌افزار آردوینو ورژن 1.5.4 یا بالاتر را دانلود کنید.
  • بر روی فایل نصبی آن دو بار کلیک کنید.
  • بر روی دکمه I Agree کلیک کنید.
  • بطور پیش‌فرض، همه جزئیات قابل دسترس انتخاب شده‌اند که شامل درایورها و میانبرهای نرم‌افزار آردوینو می‌باشند.
  • مکانی که می‌خواهید نرم افزار آردوینو را در آنجا نصب کنید، انتخاب نمایید.
  • نصب‌کننده، پیشرفتش را نشان می‌دهد و فایل‌ها را در محل مورد نظر از حالت زیپ خارج می‌کند.
  • اگر گزینه نصب درایورها را انتخاب کردید، یک پنجره برای تأیید انتخاب شما ظاهر می‌شود.
  • زمانی که نصب کامل شد، می‌توانید دکمه Close را بزنید تا نصب تمام شود.

نصب و راه اندازی آردوینو Yun در سیستم عامل لینوکس

نیازی به نصب درایورها برای سیستم عامل Ubuntu 10.0.4 نیست اما مطمئن شوید که پورت 5353 توسط فایروال بلاک نشده باشد.

پیکربندی The Onboard Wi-Fi برای راه اندازی آردوینو Yun

آردوینو Yun توانایی عمل کردن به عنوان نقطه دستیابی را دارد اما می‌تواند همچنین به یک شبکه خارجی نیز متصل گردد.

زمانی که ابتدا آردوینو یون را روشن می‌کنید، یک شبکه وای‌فای بنام ArduinoYun-XXXXXXXXX می‌سازد. کامپیوتر خود را به این شبکه وصل کنید. یک بار که شما IP address را دریافت کردید، مرورگر خود را اجرا کرده و  http://arduino.local یا 192.168.140.1 را در محل آدرس وارد کنید. بعد از چند لحظه، یک صفحه وب ظاهر می‌شود که از شما می‌خواهد تا پسورد را وارد نمایید. Arduino را وارد کنید و دکمه Log In را بزنید.

شما یک صفحه وب که دربرگیرنده اطلاعاتی در مورد اتصالات شبکه جاری است را مشاهده خواهید کرد. اولین مورد، Wi-Fi Interface شماست. دومین مورد، اتصال شبکه است. دکمه Configuration را بزنید تا فرآیند مربوطه طی شود.

در صفحه جدید، شما Yun خود را پیکربندی خواهید کرد. یک نام منحصر به فرد به آن بدهید و مشخص کنید که به کدام شبکه میخواهید متصل شوید.

در قسمت Yun Name، برای آردوینو خود یک اسم منحصر به فرد بگذارید. شما برای اشاره کردن به برد خود در آینده از این اسم استفاده خواهید کرد.

یک پسورد با 8 کاراکتر یا بیشتر برای آردوینو خود انتخاب کنید. اگر این قسمت را رها کنید، سیستم همان پسورد پیش‌فرض خود یعنی Arduino را می‌گذارد.

اگر بخواهید، می‌توانید منطقه زمانی و کشور را تنظیم کنید.

نام شبکه وای‌فای که می‌خواهید به آن وصل شوید را وارد کنید.

نوع امنیت را انتخاب و پسورد را وارد نمایید.

زمانی که شما دکمه Configure & Restart را می‌زنید، آردوینو خودش ریست شده و به شبکه مشخص شده متصل می‌شود. شبکه آردوینو بعد از چند لحظه خاموش خواهد شد.

برنامه‌نویسی تراشه U4 32 از طریق وای‌فای در زمان راه اندازی آردوینو Yun

زمانی که برد آردوینو Yun و کامپیوتر شما بر روی یک شبکه یکسان قرار دارند، می‌توانید به صورت بیسیم آن را برنامه‌نویسی کنید.

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

در آدرس Tools> Port، شما باید لیستی از نام آردوینو Yun خود و آدرس IP آن ببینید. در منوی برد نیز Arduino Yun را انتخاب کنید.

مثال Blink را باز کنید: File> Examples> 01Basics> Blink و اسکچ را بر روی برد آپلود نمایید. یک بار که برنامه آپلود شود، پردازنده U4 32 ریست خواهد شد. شما باید LED متصل به پایه 13 را در حال چشمک زدن ببینید.

استفاده از Onboard Ethernet برای راه اندازی آردوینو Yun

استفاده از Onboard Ethernet برای راه اندازی آردوینو Yun
استفاده از Onboard Ethernet برای راه اندازی آردوینو Yun

زمانی که آردوینو یون را به شبکه سیمی با کابل LAN متصل می‌کنید، برد تلاش می‌کند تا از طریق DHCP به صورت خودکار وصل شود.

اگر شما بخواهید برای راه اندازی آردوینو Yun این برد را مستقیماً به کامپیوتر خود متصل کنید، هم باید رابط کامپیوتر را برای داشتن یک آدرس IP پیکربندی کنید و هم آن را به گونه‌ای تنظیم نمایید که به عنوان یک سرور DHCP عمل کند.

ارتباط با OpenWrt-Yun از طریق Bridge در زمان راه اندازی آردوینو Yun

کتابخانه Bridge ارتباط بین آردوینو و OpenWrt-Yun را فعال می‌کند. این کار چند مزیت دارد که در ادامه به آنها اشاره کرده‌ایم:

وای‌فای و رابط شبکه USB Host و مموری کارت microSD، همگی به AR9331 وصل خواهند شد. سپس کتابخانه Bridge به شما اجازه می‌دهد تا با این وسایل کار کنید.

راه اندازی آردوینو Yun؛ فرآیند The Console

کنسول بر پایه Bridge، شما را قادر می‌سازد تا اطلاعات را از Yun به یک کامپیوتر بفرستید. این کار یک ارتباط امن بین Yun و کامپیوتر شما از طریق SSH ایجاد می‌کند.

متن برنامه زیر را بر روی آردوینو Yun بارگذاری کنید:

#include
const int ledPin = 13; // the pin that the LED is attached to
int incomingByte;      // a variable to read incoming serial data into
void setup() {
// initialize serial communication:
Bridge.begin();
Console.begin();
while (!Console){
; // wait for Console port to connect.
}
Console.println(“You’re connected to the Console!!!!”);
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
}
void loop() {
// see if there’s incoming serial data:
if (Console.available() > 0) {
// read the oldest byte in the serial buffer:
incomingByte = Console.read();
// if it’s a capital H (ASCII 72), turn on the LED:
if (incomingByte == ‘H’) {
digitalWrite(ledPin, HIGH);
}
// if it’s an L (ASCII 76) turn off the LED:
if (incomingByte == ‘L’) {
digitalWrite(ledPin, LOW);
}
}
delay(100);
}

 

برای دیدن کنسول، در منوی پورت، نام آردوینو یون و آدرس IP خود را انتخاب کنید. Arduino Yun فقط زمانی در منوی پورت نشان داده می‌شود که کامپیوتر و برد آردوینو شما بر روی یک شبکه یکسان باشند. اگر برد شما بر روی یک شبکه متفاوت باشد، آن را در منوی پورت نخواهید دید. در این صورت Port Monitor را باز کنید تا از شما پسورد Yun را بخواهد.

شما همچنین، با باز کردن یک Terminal Window و تایپ ssh root@yourYunsName.local telnet localhost 6571 و سپس زدن Enter کنسول را ببینید.

راه اندازی آردوینو Yun؛ فرآیند Process

دستورات Process به شما اجازه می‌دهند تا Linux Process  را بر روی Open-Wrt-Yun از طریق آردوینو اجرا کنید.

در مثال زیر، OpenWrt-Yun به یک سرور با دستور CURL وصل می‌شود و تعدادی متن ASCII دانلود می‌کند. در ادامه متن ارتباط سریال را پرینت می‌گیرد.

#include
void setup() {
// Initialize Bridge
Bridge.begin();
// Initialize Serial
Serial.begin(9600);
// Wait until a Serial Monitor is connected.
while (!Serial);
// run various example processes
runCurl();
}
void loop() {
// Do nothing here.
}
void runCurl() {
// Launch “curl” command and get Arduino ascii art logo from the network
// curl is command line program for transferring data using different internet protocols
Process p;        // Create a process and call it “p”
p.begin(“curl”);  // Process that launch the “curl” command
p.addParameter(“http://arduino.cc/asciilogo.txt”); // Add the URL parameter to “curl”
p.run();      // Run the process and wait for its termination
// Print arduino logo over the Serial
// A process output can be read with the stream methods
while (p.available()>0) {
char c = p.read();
Serial.print(c);
}
// Ensure the last bit of data is sent.
Serial.flush();
}

 

استفاده از Bridge برای انتقال اطلاعات بین پردازنده‌ها

Bridge به شما اجازه می‌دهد تا اطلاعات را بین دو پردازنده و با استفاده از یک جفت key/value عبور دهید.

این مثال نشان می‌دهد که چگونه از کتابخانه Bridge، برای دسترسی به پین‌های دیجیتال و آنالوگ بر روی برد از طریق فراخوانی‌های REST استفاده کنید. همچنین، به شما می‌آموزد که چگونه می‌توانید API خود را از طریق فراخوانی‌های REST ایجاد نمایید.

به علاوه، به کتابخانه‌های YunServer، Bridge و YunClient نیاز دارید.

#include
#include
#include

 

در تابع setup()، ارتباط سریال برای اهداف عیب‌یابی شروع می‌شود و LED پایه 13 روی برد روشن خواهد شد. این در حالی است که Bridge نیز شروع می‌شود.

در این شرایط، Bridge.Begin() بلاک می‌شود و دو ثانیه طول می‌کشد تا کامل گردد. یکبار که Bridge شروع شد، LED خاموش می‌شود.

void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
digitalWrite(13, LOW);
Bridge.begin();
digitalWrite(13, HIGH);

در بخش دوم setup()، به نمونه YunServer بگویید که فقط به اتصالات ورودی که از localhost می‌آید، گوش دهد. ارتباطات باعث می‌شود تا OpenWrt-Yun به پردازنده U4 32 برای کنترل پایه‌ها منتقل گردد. این اتفاق بر روی پورت 5555 می‌افتد. سرور را با دستور server.begin() استارت کنید.

server.listenOnLocalhost();
server.begin();
}

در تابع loop() ، شما یک نمونه از YunClient برای مدیریت ارتباط می‌سازید. اگر Client متصل شد، تقاضاها را در یک تابع custom که در زیر توضیح داده می‌شود، انجام می‌دهد و زمانی که پایان یافت، ارتباط را می‌بندد.

گذاشتن یک تأخیر در انتهای تابع loop() کمک می‌کند تا پردازنده مجبور به انجام کار زیادی نباشد.

void loop() {
YunClient client = server.accept();
if (client) {
process(client);
client.stop();
if (command == “digital”) {
}
delay(50);
}

یک تابع بنام YunClient که پردازنده را به عنوان آرگومان خود قبول کند ایجاد کنید. دستور را با ایجاد یک رشته برای نگه داشتن اطلاعات ورودی بخوانید. دستورات REST را به وسیله عاملیت آنها اعم از Digital، Analog و Mode تجزیه و اطلاعات را به تابعی که به درستی نامگذاری کردید، منتقل کنید.

void process(YunClient client) {
String command = client.readStringUntil(‘/’);
}
digitalCommand(client);
if (command == “analog”) {
analogCommand(client);
}
if (command == “mode”) {
modeCommand(client);
}
}

یک تابع برای سروکار داشتن با دستورات Digital ایجاد کنید. Client را به عنوان آرگومان تأیید نمایید. چند متغیر محلی برای نگه داشتن پین و مقدار دستور ایجاد کنید.

void digitalCommand(YunClient client) {
int pin, value;

تقاضای client را برای پینی که با استفاده از تابع client.parseInt()  کار می‌کند، تجزیه کنید.

اگر کاراکتر بعد از پین / (ممیز) باشد، بدان معناست که URL مقدار یک یا صفر را خواهد داشت. این مقدار یک مقدار را به پین یا پایه می‌دهد و آن را HIGH یا LOW می کند. اگر / (ممیز) وجود نداشت، از پایه مشخص شده مقدار را بخوانید.

pin = client.parseInt();
if (client.read() == ‘/’) {
value = client.parseInt();
digitalWrite(pin, value);
}
else {
value = digitalRead(pin);
}

مقدار را به Client بدهید و Datastore Key را با مقدار فعلی پین آپدیت کنید.

با دادن مقدار به Client در F()، شما می‌توانید از روی حافظه فلش بخوانید. این کار به نگه‌داری حافظه در SRAM  کمک می‌کند که برای زمانی که با رشته‌های بلند مثلURL ها سروکار دارید، مفید است.

Key پین و نوع خواهد بود. به عنوان مثال D2 برای پین دیجیتال 2 ذخیره می‌شود. مقدارش همان مقداری است که الان ست شده یا از پین خوانده شده است.

client.print(F(“Pin D”));
client.print(pin);
client.print(F(” set to “));
client.println(value);
String key = “D”;
key += pin;
Bridge.put(key, String(value));
}

یک تابع برای مدیریت فراخوانی‌های آنالوگ با روش یکسان تنظیم کنید. فقط توجه داشته باشید که Key A به جای D، با پین‌های ورودی آنالوگ کار می‌کند.

void analogCommand(YunClient client) {
int pin, value;
pin = client.parseInt();
if (client.read() == ‘/’) {
value = client.parseInt();
analogWrite(pin, value);
// Send feedback to client
client.print(F(“Pin D”));
client.print(pin);
client.print(F(” set to analog “));
client.println(value);
String key = “D”;
key += pin;
Bridge.put(key, String(value));
}
else {
value = analogRead(pin);
client.print(F(“Pin A”));
client.print(pin);
client.print(F(” reads analog “));
client.println(value);
String key = “A”;
key += pin;
Bridge.put(key, String(value));
}
}

یک تابع دیگر برای مدیریت تغییرات مد کاری پین‌ها ایجاد کنید. YunClient را به عنوان آرگومان بپذیرید و یک متغیر محلی برای نگه داشتن شماره پین به وجود آورید. مقدار پین را درست مثل حالتی که در تابع‌های آنالوگ و دیجیتال ایجاد کرده‌اید، عمل کنید.

void modeCommand(YunClient client) {
int pin;
pin = client.parseInt();

مطمئن شوید که URL معتبر است تا روند راه اندازی آردوینو Yun به مشکل برنخورد.

if (client.read() != ‘/’) {
client.println(F(“error”));
return;
}

اگر URL معتبر بود، آن را به عنوان یک رشته ذخیره کنید. اگر مد یک Input یا Output بود، پین را پیکربندی کرده و به Client گزارش دهید. اگر رشته با این مقادیر همخوانی نداشته باشد، یک خطا برمی‌گردد.

String mode = client.readStringUntil(‘r’);
if (mode == “input”) {
pinMode(pin, INPUT);
// Send feedback to client
client.print(F(“Pin D”));
client.print(pin);
client.print(F(” configured as INPUT!”));
return;
}
if (mode == “output”) {
pinMode(pin, OUTPUT);
// Send feedback to client
client.print(F(“Pin D”));
client.print(pin);
client.print(F(” configured as OUTPUT!”));
return;
}
client.print(F(“error: invalid mode “));
client.print(mode);
}

اتصال به سرویس‌های اینترنت با Temboo پس از راه اندازی آردوینو Yun

اتصال به سرویس‌های اینترنت با Temboo
اتصال به سرویس‌های اینترنت با Temboo

آردوینو یون چندین قابلیت برای شبکه شدن دارد اما برخی از جنبه‌های موجود با پلتفرم‌های آنلاین دیگر کار می‌کنند. آردوینو با Temboo برای برقراری ارتباط خیلی آسان با سرویس‌های مورد علاقه شما هماهنگ شده است. Temboo دسترسی‌های عادی شده به بیش از صد API از یک نقطه ارتباط را فراهم می‌کند و به شما اجازه می‌دهد اطلاعاتی که از چند پلتفرم مانند فیسبوک، توییتر، فدکس، فورث‌اسکوئر و اوی‌پل دریافت می‌کنید را ترکیب و هماهنگ نمایید.

سخن پایانی

امیدواریم آموزش راه اندازی آردوینو Yun برای شما مفید واقع شده باشد. چنان‌چه در هر قسمت از آموزش به مشکلی برخوردید یا با سؤالی مواجه شدید، می‌توانید در قسمت نظرات با ما مطرح نمایید تا در اسرع وقت پاسخگوی شما باشیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *