اندروید تینگز یا Android Things چیست؟ آموزش راه اندازی و استفاده

اخیرا گوگل تکنولوژی جدیدی از اینترنت اشیا بر پایه اندروید معرفی کرد که به درستی Android Things نام گذاری شده است. در ماه می ۲۰۱۵ گوگل پروژه Brillo را به عنوان سیستم عامل اینترنت اشیاء خود معرفی کرد. اما رفته رفته با توجه به بازخوردی که از توسعه دهندگان در مورد Brillo دریافت کرد، گوگل تصمیم بر حذف آن و ساخت اندروید تینگز گرفت. با اضافه کردن نام اندروید به آن، گوگل سعی بر تاکید این نکته دارد که توسعه دهندگان قادر به استفاده از API، Android SDK و سرویس هایی که شامل پلتفرم Google Cloud میشود، می باشند. برای آشنایی با اندروید تینگز با برنامه چی همراه باشید.(منبع نوشته: AndroidAuthority)

با اندروید تینگز آشنا شوید

این مقاله دارای سرفصل های زیر میباشد:
سخت افزار
راه اندازی Android Things
اتصال به اندروید تینگز
توسعه دادن اندروید تینگز
انواع اندروید تینگز
تفاوت اندروید و اندروید تینگز
*سیستم های مدیریتی Android Things
*نحوه عملکرد اندروید تینگز
مشکلات اندروید تینگز
*نیاز به سخت افزار قدرتمند
*استفاده در بلند مدت
*قطع شدن اتصال adb
جمع بندی

Android Things هم اکنون به صورت یک پیشنمایش است و هنوز کارهای بسیاری برای انجام دادن پیش رو دارد. به هر حال این سیستم عامل به قدری کامل شده است تا توسعه دهندگان بتوانند پروژه های خودشان را بر اساس Android Things بسازند.


سخت افزار

سخت افزار android things

Android Things از سه بورد Intel Edison، NXP PicoI.MX6UL و Raspberry Pi3 پشتیبانی می کند. پشتیبانی برای Intel joule و NXP Argon i.MX6UL به زودی ارائه میشود. اولین چیزی که توجه شما را جلب خواهد کرد این است که این برد ها از ترکیب سی پی یو های Intel و ARM استفاده می کنند و اینکه هر دوی ۳۲ بیت و ۶۴ بیت را میتوانند پشتیبانی بکنند. کمترین مقدار رم ۵۱۲ مگابایت است و تمامی بورد ها دارای وای فای و بلوتوث هستند.

اندروید از لینوکس به عنوان هسته اصلی استفاده می کند و Linux یک سیستم عامل مولتی تسک است که میتواند از حافظه مجازی هم پشتیبانی بکند. (به انجام دادن کار های مختلف بصورت همزمان و در کنار هم، مولتی تسک میگویند). این به این معناست که Android Things نیاز به یک پردازنده دارد که از حافظه مجازی پشتیبانی میکند. به بیانی دیگر یک پردازنده با MMU کامل. یعنی برای پردازنده های ARM باید از سری Cortex-A استفاده بشود؛ نه میکروکنترلر های سری Cortex-M.

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

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


راه اندازی Android Things

اولین قدم دانلود ایمیج Android Things مناسب برای بورد خودتان است. برای Pi میتوانید از این لینک آن را دانلود کنید (که در یک فایل زیپ میباشد). سپس آن را بر روی یک کارت microSD بریزید (آموزش آن را ببینید). سپس کارت را وارد pi کرده، مانیتور را وصل کنید (توسط کابل HDMI) و سپس پاور را وصل نمایید.

Android Things حدود ۹۰ ثانیه طول میکشد تا در Pi3 بالا بیاید یا به اصطلاح بوت شود. در ابتدا شما اطلاعات بوت مشابه آن چیزی که در راه اندازی لینوکس وجود دارد، مشاهده خواهید کرد. سپس بعد از چند ثانیه با صفحه انتظار Android Things که سه نقطه در حال حرکت میباشد روبرو میشوید. سپس صفحه نمایش Android Things که در مورد اترنت و اتصال های وای فای و چیزهای کوچک دیگر اطلاعاتی می دهد، بالا می آید.

بوت شدن

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

همان طور که گفته شد، سطح پیچیدگی محصولاتی که بر اساس اندروید تینگز پایه گذاری می شوند بیشتر مشابه دستگاه های موبایل است تا مشابه سیستم های ساده تر که با میکرو کنترلر ها کار میکنند.


اتصال به اندروید تینگز

قدم بعدی اتصال به Pi است. این کار به وسیله درگاه اترنت (Ethernet) امکان پذیر است. با استفاده از یک کابل Ethernet باید کامپیوتر خودتان و بورد را با هم شبکه کنید. سپس از adb برای اتصال به آن استفاده کنید.

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

Raspberry Pi نام هاست Android.local را به طور همزمان برای همه دستگاه ها پخش می کند. بنابراین شما می توانید با دستورات زیر به آن وصل شوید:

adb connect Android.local
وصل شدن به adb

بعد از آنکه اتصال برقرار شد، صفحه نمایش برای نشان دادن وضعیت جدید تغییر می کند. امکان اتصال از طریق وایفای نیز وجود دارد اما برای این کار شما ابتدا از طریق کابل اترنت وصل شوید تا دستورات لازم را به آن بدهید. برای اتصال بوردتان به وایفای از دستور زیر استفاده کنید:

adb shell am startservice \
 -n com.google.wifisetup/.WifiSetupService \
 -a WifiSetupService.Connect \
 -e ssid <Network_SSID> \
 -e passphrase <Network_Passcode>

یادتان باشد در دستورات بالا به جای Network_SSID نام شبکه وای فای که قرار است به آن متصل شوید و به جای Network_Passcode هم رمز این شبکه را بنویسید. اگر شما قصد اتصال به یک وایفای عمومی که پسورد ندارد را دارید، نیازی نیست که قسمت مربوط به پسورد را اضافه کنید. می توانید با نگاه کردن به صفحه نمایش یا با استفاده از دستور زیر وضعیت اتصال بورد به اینترنت را بررسی کنید:

adb shell ping 8.8.8.8

خبر خوب این است که بورد اطلاعات اتصال وایفای را ذخیره می کند. در نتیجه شما پس از اولین اتصال، می توانید بدون نیاز به کابل اترنت به وایفای وصل شوید.


توسعه دادن اندروید تینگز

قبل از اینکه اقدام به ساخت Things Android بکنید باید SDK Tools خودتان را به ورژن ۲۴ یا بالاتر و هم چنین SDK را به اندروید ۷ که همان API 24 یا بالاتر است آپدیت کنید. هم چنین Things Android بر روی اندروید نسخه ۷ یا بالاتر قابل اجرا است.

در حال حاظر API های Things Android جزئی از Android SDK نیستند. بنابراین شما باید به طور دستی در پوشه build.gradle سطح اپلیکیشن خودتان، یک dependency ساختگی را به صورت زیر اضافه کنید:

dependencies {
 ...
 provided 'com.google.android.things:androidthings:0.1-devpreview'
}

هم چنین کتابخانه اندروید تینگز را در Manifest اپلیکیشن تان به صورت زیر وارد کنید:

<application ...>
<uses-library android:name="com.google.android.things"/>
...
</application>

هر برنامه Android Things باید بعد از راه اندازی دستگاه، یک فعالیت را در Manifest خود به عنوان نقطه ورودی اصلی مشخص کند. فیلتری که در Manifest باید استفاده شود دارای attribute های زیر است:

  • Action: ACTION_MAIN
  • Category: CATEGORY_DEFAULT
  • Category: IOT_LAUNCHER

برای سهولت توسعه، این فعالیت باید شامل یک فیلتر محتوای CATEGORY_LAUNCHER باشد. بنابراین Android Studio می تواند آن را به عنوان اکتیویتی پیش فرض در هنگام توسعه یا دیباگ کردن شناسایی کند. گوگل چند کد مثال در صفحه پروژه اندروید Things را بساز، دارد.

رابط کاربری ساده

انواع اندروید تینگز

دو نوع عمده از اپلیکیشن های Android Things موجود می باشد. نوعی که شامل صفحه نمایش نمی باشد و نوعی که شامل صفحه نمایش می شود. برای نوع دومی می توانید برنامه ها را با همان ابزار UI (رابط کاربری) که برنامه های سنتی اندروید را می ساختند، بسازید. اگرچه چند فرق وجود دارد، برای مثال Android Things شامل نوار ابزار حالت سیستم یا کلید های ناوبری نمیباشد. این به این معنی است که برنامه کنترل کامل بر تجربه دیداری کاربر را در دست گرفته است.


تفاوت اندروید و اندروید تینگز

نقطه تفاوت Android Things با اندروید معمولی در آنجاست که میتواند لوازم جانبی و سنسور های دریافت کننده را کنترل کند. همه چیز از حسگر های حرارتی گرفته تا نمایشگرهای LCD و حتی موتور های الکتریکی میتوانند توسط اندروید تینگز کنترل شوند. این عملیات توسط پورت ورودی خروجی چند منظوره که بر روی بورد هایی مانند Raspberry Pi یافت می شود، کنترل میگردد.


سیستم های مدیریتی Android Things

سیستمی که توسط Android Things برای مدیریت ابزار های جانبی به کار می رود، PeripheralManagerService نامیده می شود که میتوانیم آنرا بصورت “سرویس مدیریت لوازم جانبی” ترجمه کنیم. این سیستم نه تنها GPIO ساده را مدیریت میکند، بلکه میتواند اینترفیس هایی مانند Pulse Width Modulation یا PWM که متد رایج برای کار کردن با سروو موتور میباشد را هم اداره بکند. علاوه بر اینها مدار های مجزای داخلی (IIC یا I2C) که معمولا توسط سنسورها، عملگرها، شتابدهنده ها، گرماسنج ها، صفحه های نمایش ال سی دی و بسیاری دیگر مورد استفاده قرار می گیرند؛ Serial Peripheral Interface یا SPI که توسط چیزهایی مثل حافظه های غیر فرار خارجی و نمایشگرهای گرافیکی مورد استفاده قرار می گیرند و پورت های سریالی خوب قدیمی (UARTs) که در محیط های پیچیده ای مانند ماژول های جی پی اس و Xbee استفاده میشوند را کنترل می کند.

توسعه دادن برنامه برای هر کس که تجربه کار با Android Studio را دارد باید کار آشنایی باشد. همان ساختار درختی مشابه اپلیکیشن اندرویدی که از فایل های آشنایی مثل AndroidManifest.xml به همراه کد جاوا و فایل های XML برای خروجی استفاده می کند. gradle هم که برای ساخت پروژه ها در Android Studio استفاده شده است توانایی ارسال برنامه ی بوجود آمده را توسط شبکه به بورد Android Things شما دارا می باشد.


نحوه عملکرد اندروید تینگز

از آنجاییکه Android Things یک ورژن سفارشی شده از اندروید است، فقط میتواند یک برنامه را اجرا کند. همان برنامه ای که به بورد شما انتقال داده شده است. هر موقع که شما بورد را راه اندازی کنید، بورد شروع به بارگذاری همان برنامه می کند. این فرق عمده بین یک دستگاه موبایل عمومی (همانند یک گوشی هوشمند) و یک دستگاه مجهز شده به اینترنت اشیا است.

گوگل تعدادی از پروژه های نمونه اندروید Things را در GitHub گذاشته است که شامل یک مثال ساده از GPIO، یک UI ساده، یک زنگ در هوشمند (که از یک دوربین به همراه یک فایربیس استفاده میکند) و یک ایستگاه هواشناسی می شوند.

rpi3

مشکلات اندروید تینگز

ویژگی اصلی Android Things این است که بر روی اندروید نرمال که همه ما میشناسیم و به آن علاقه داریم بنا شده است. ایده کلی این است که سازندگان می توانند به IoT (که مخفف Internet of Things یا اینترنت اشیاء میباشد)، دسترسی پیدا کنند و چندین محصول جالب که شاید با اپلیکیشن های موبایل هم در ارتباط باشند را بسازند. یا شاید برنامه های حال حاضر اندرویدی وجود داشته باشند که به تنهایی و به خوبی بتوانند به عنوان یک دستگاه کار کنند. حداقل تعداد زیادی از کدها هستند که می توانند دوباره استفاده شوند و برای Android Things بهینه سازی شوند.


نیاز به سخت افزار قدرتمند

هرچند این سازگاری با اندروید بی هزینه بدست نیامده است. سیستم سخت افزار مورد نیاز برای دستگاه های Android Things در مقایسه با دستگاه های میکروکنترلر و سیستم عامل هایی مثل mbed بسیار بالاست. حال سوال این است که آیا واقعا یخچال من نیاز به پردازشگر چهار هسته ای و رم ۵۱۲ مگابایت دارد؟

لوگو

البته داشتن چنین قدرت پردازشی بالایی، مزایایی هم با خود دارد. مثلا شاید نیاز باشد محاسبات بیشتری در بعضی از وسایل اتفاق بیفتد. (مثل تشخیص چهره، فرآیند های صوتی و قسمت هایی از زیرساخت هوش مصنوعی یا Al). با این حال اگر این دستگاه ها با فضای ابری ارتباط برقرار کنند، (که می کنند، چون آنها دستگاه هایی مجهز به اینترنت اشیا هستند)، پس قدرت پردازشی خیلی زیادی در اختیار کاربر قرار نمی گیرد و بیشتر آن برای کارهایی که باید انجام شوند، مصرف میشود.


استفاده در بلند مدت

می دانم که این فقط یک پیش نمایش است. اما، به نظر نمی رسد درباره مسئله عمر دستگاه توسط گوگل بحث شده باشد. در حال حاضر برای متصل شدن به وایفای نیاز به نوشتن کد در adb دارید. خوشبختانه گوگل چیز خاصی در ذهن دارد، شاید یک برنامه جامع برای مدیریت کردن همه دستگاه ها بصورت کلی یا حتی یک برنامه خاص و ویژه برای هرکدام از دستگاه هایی که Android Things روی آنها اجرا میشود. اما همانطور که گفتم این یک پیش نمایش برای توسعه دهنده هایی است که میتوانند با نوشتن کد با اندروید تینگز کار کنند. باید منتظر بمانیم تا ببینیم در آینده این تکنولوژی به چه سمتی خواهد رفت.


قطع شدن اتصال adb

یکی از چیزهایی که میتواند برای شما هم آزار دهنده باشد، قطع شدن مداوم اتصال adb است. یعنی ممکن است شما با موفقیت وصل بشوید، با Android Studio کار ها را انجام بدهید، برنامه را آپلود کنید، اما بعد از چند دقیقه اتصال قطع بشود. که به این معنی است که دائما باید با دستور reconnect بورد را وصل کنید. همانطور که معلوم است این راه حل برای دراز مدت جوابگو نیست و امیدوارم که گوگل آن را برطرف کند.


جمع بندی

تکنولوژی استفاده شده به عنوان پشتیبان Android Things به خوبی پایه ریزی شده است و برای توسعه دهندگان در سراسر دنیا کاملا شناخته شده میباشد. همه اینها به همراه دسترسی به پلتفرم های مشهوری مثل Raspberry Pi، اندروید تینگز می تواند یک فرمول موفق باشد. اگرچه نیاز سخت افزاری بالا و کمبود زیر ساخت های کنونی می تواند این معنی را داشته باشد که پلتفرم های دیگر پتانسیل بالاتری را به ازای هزینه کمتر ارائه می دهند.

اما در نهایت زمان ثابت خواهد کرد که آیا دستگاه های IoT مناسب Android things هستند یا نه؟ اگر اینطور باشد افزایش چشمگیری در ارزش بازار گوگل اتفاق می افتد. نه در حوزه سیستم های فیزیکی، اما در مورد سرویس های ابری که این دستگاه ها استفاده می کنند میتوانیم این انتظار را داشته باشیم.

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

1 در مورد “اندروید تینگز یا Android Things چیست؟ آموزش راه اندازی و استفاده”

  1. سلام
    در صفحه ی androiod things console من هیچ فایل زیپ ایمیجی برای دانلود شدن روی رسپ بری وجود ندارد و تنها امکان یک انتخاب وجود دارد خواهشمند است راهنمایی فرمایید چگونه میتوانم فایل زیپ android things را دانلود نمایم

دیدگاه‌ خود را بنویسید

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

اسکرول به بالا