این روزها دیگر کلمه IoT یا همان اینترنت اشیا (Internet of Things) کلمه نامانوس و غریبی نیست. به لطف کاربردهای جالب توجهی که امروزهروز تکنولوژی در زندگی ما پیدا کرده است، آمار شرکتهایی که بالاخره این حقیقت را میپذیرند که برای پیشرفت تجاری باید دست به دامان تکنولوژی شوند، به طور روزانه افزایش مییابد. به این ترتیب دیر نیست آن روزی که IoT-based بودن تمام ابزارها (یعنی آنکه بر مبنای اصول IoT ساخته شده باشند) ، در کنار سایر تکنولوژیهای به کار رفته در آنها، به یک ویژگی بسیارمهم برایشان تبدیل شود. براساس پیشبینی وبسایت gartner ، تا سال 2030 تقریبا 95% ابزارها و سیستمهایی که ساخته میشوند، از IoT استفاد میکنند.
پیش از این و در آموزشهای قبلی در مورد ابزارهای IoT و ساخت پروژههایی که در آنها از IoT استفاده میشود، صحبت کردهایم.
از طرفی، در حالیکه برخی شرکتها از راهکارهای مبتنی بر IoT در پیشبرد مسائل تجاری خود استفاده میکنند، شرکتهای دیگری نیز وجود دارند که به دنبال فرصتهایی در زمینهی تهیهی پلتفرمهای مختلف برای IoT ها هستند. به این منظور که ستون فقراتی ایجاد کنند برای توسعه و گسترش راهکارهای مبتنی بر IoT. ساخت و وجود داشتن چنین پلتفرمهایی، نقشی اساسی در توسعه و همهگیر شدن IoT در حل مسائل ایفا میکنند و ما اینجا و در این آموزش قصد داریم تا نگاهی به برخی از این پلتفرمها بیندازیم.
به علت خواص ذاتی معماری IoT، انواع مختلفی از پلتفرمهای IoT وجود دارد که اغلب آنها بر تامین یکی از نیازمندیهای شبکه تمرکز دارند ( مثلا SigFox که بر نیاز متصل بودن به شبکه (connectivity) تمرکز میکند.) اما بعضی از آنها نیزوجود دارند (مانند Particle.io) که اصطلاحا پلتفرمهای چندکاره هستند راهکارهای جامع و کاملی در توسعهی IoT محسوب میشوند. این آموزش اولین مقاله از یک سلسله آموزشهاست که قصد داریم در آنها برخی از انواع پلتفرمهای موجود را بررسی کنیم و برای شروع، به سراغ نوعی محبوب از این پلتفرمها میرویم که همان پلتفرمهای توسعه سختافزاری هستند. با ما باشید و از این آموزش لذت ببرید.
پلتفرم های توسعه سخت افزاری IoT
خب شاید بپرسید که منظورما از این عبارت عجیب و غریب “پلتفرمهای توسعه سختافزاری IoT” چیست!
منظور تمام بسترهای سختافزاری هستند که برای توسعه دادن ابزارها برای قابل استفاده شدن در اینترنت اشیا به آنها نیاز داریم. این بستر سختافزاری ممکن است مثلا یک ماژول مخابراتی باشد، یا یک میکروکنترلر، یا یک ماژول SoC، یا هرچیزی که دارای ویژگی مطلوبی باشد که برای کاربردی کردن یک شیء در دنیای اینترنت اشیا بدرد میخورد.
به هیچ عنوان ادعا نداریم که لیستی که در ادامهی این آموزش از برخی از این پلتفرمها آماده کردهایم، لیست جامعی است چرا که پلتفرمهای بسیار دیگری نیز هستند که ممکن است شما نام ببرید و در این لیست نباشند. ما فقط کوشیدهایم که تعدادی از آنهایی را کاملتر هستند و سازگاری بیشتری با سیستمعاملها دارند در اینجا به شما معرفی کنیم. ضمنا ترتیب معرفی پلتفرمها، طبق هیچ نکتهی بخصوصی نیست 🙂
1. پلتفرمهای سختافزاری Particle.io
یکی از کاملترین پلتفرمهای سختافزاری IoT ، Particle.io است که در دسته همان پلتفرمهای چندکاره قرار میگیرد و میتواند خدماتی نظیر اتصال به شبکهی IoT، خدمات کنترل اشیا از طریق ابر (device cloud) وبرخی اپلیکیشنهای دیگر را ارائه دهد. Particle میتواند مبنای بسیاری از توسعهها قرار گیرد، از آنهایی گرفته که تنها به عنوان نمونههای تست و آزمایشگاهی ساخته میشوند، تا آنهایی که در مرحله DMF یا همان طراحی به منظور مونتاژ گسترده هستند.
برای ساخت یک محصول IoT، در قدم اول باید تمام ابزارهای مدنظر را به یک شبکه متصل نمود و تمام میکروکنترلرهای موجود در بورد Particle، قابلیت اتصال از طریق شبکه WiFi، شبکه های سلولی (cellular(2G/3G/LTE و یا شبکه mesh را دارا هستند و حتی بعضی از آنها قابلیت اتصال از طریق چند تا از این شبکهها را نیز به صورت همزمان دارند. میکروکنترلر این بوردها توسط سیستمعامل(OS) بخصوصی کنترل میشود که به توسعهدهندگان این امکان را میدهد که به راحتی و از طریق device cloud اشیاء موجود را به هم اتصال دهند.
بد نیست اشاره خیلی کوتاهی هم به این نکته داشته باشیم که ماژولها و ابزارهای ارتباطی این نوع بوردها، دارای استانداردهای CE و FCC هستند که قیمت تمام شدهی محصول را در زمان تولید انبوه کاهش میدهند.
همچنین این بوردها به صورت منبع باز (open source) هستند و اگر قرار باشد با آنها کار کنید، مطمئن باشید که منابع و کمکهای بسیاری در انتظار راهنمایی شما هستند!
دلیل دیگری که بوردهای Particle را به انتخابی مطلوب تبدیل میکند، ارائه ی سرویس به صورت End-to-End است. به این ترتیب شما در هر مرحله از کار از عملکرد صحیح بورد اطمینان داشته و نگران وجود اشکال در میانهی عملیاتها نیستید.
2. بورد های Espressif ESP8266
زمانی که صحبت از ساخت ابزارهای IoT باشد، محصولات ساخته شده بر پایهی Espressif ( توسط شرکت AI thinker) ، یقینا دومین پرچمداران این حوزه محسوب میشوند. از زمانی که در چندین سال قبل، تراشههای WiFi به نام ESP8266-01 روانهی بازار شدند تا امروز، روند رشد آنها به گونهای بوده است که امروزه تبدیل به یکی از عزیزدردانههای تولیدکنندگان انبوه و نیز سازندگان خردهپا و تفننی در ساخت ابزارهایی شدهاند که IoT مبتنی بر شبکه WiFi دارند. این ماژولها معمولا قیمت پایین و توان مصرفی کمی دارند و کار کردن با آنها ساده و همهفهم است. این ویژگیها به همراه یک سری ویژگیها فنی دیگر باعث شده است که آنها این چنین جای خودشان را در قلب طراحان سختافزار باز کنند. تراشههای ESP انعطافپذیری بالایی را در زمان استفاده به شما ارائه میدهند و میتوان از آنها به عنوان ماژول WiFi، متصل به سایر کنترلرها و تحت نظارت آنها و یا در مود عملکردی مستقل (standalone mode) استفاده کرد.
معیارهای مورد نیاز این بوردها برای ساخت و پیادهسازی ابزارهای IoT کوچک و غیردستوپاگیر هستند. به عنوان مثال با دارا بودن firmware هایی مشابه OTA ( قابلیت به روزرسانی بیسیم) کار را بسیار آسان میکنند.
به دلیل داشتن همین قابلیتها، در دسترس بودن بورد هایی مانند NodeMCU و یا بورد های مبتنی بر ESP ، این امکان را به توسعهدهندگان IoT میدهد که پیش از طراحی یک شبکهی IoT بتوانند درکی کلی از آن داشته باشند.
دقیقا مشابه بوردهای Particle، ESP ها نیز دارای استانداردهای FCC و CE هستند که باعث میشود پس از تکمیل و تولید انبوه و در مرحلهی دریافت استانداردهای نهایی، قیمت تمام شده آنها کمتر شود.
همچنین جالب است بدانید که ESP ها یکی از قویترین و اختصاصیترین اینترفیسهای WiFi را در صنعت ارائه میدهند و پروتکلهای متعددی دارند که از IoT ها پشتیبانی میکنند. مثلا پروتکل ESP Touch protocol که به ابزارها این امکان را میدهد که به طریقی امن و یکپارچه بتوانند به شبکههای WiFi دسترسی پیدا کنند.
یادگیری شیوهی کار با این بورد ها بسیار ساده است و میتوان آنها را با هر نوع میکروکنترلری مدیریت کرد.
3. بوردهای توسعهی IoT ساخت شرکت Intel
کمپانی Intel بدون شک یکی از اصلیترین رهبران در امپراطوری ساخت و تولید محصولات الکترونیکی و به همین دلیل زمانی که چند صباح پیش تعدادی بورد با قابلیتهای پشتیبانی از IoT به بازار عرضه کرد، هیچ کس هیچ تعجبی نکرد!
و هرچند که پشتیبانی از برخی از آن بوردهای اولیه که قابلیتهای IoT داشتند پس از مدتی از دستور کار Intel خارج شد اما همچنان تعدادی از آنها در مراحل پیشتولید و نمونهزنی توسط سازندگان و توسعهدهندگان مورد استفاده قرار میگیرد.
یکی از اصلیترین ویژگیهای بوردهای تولیدی Intel، همانطور که احتمالا میتوانید خودتان حدس بزنید، قدرت پردازش بسیار بالاست! یکی از محبوبترین این بوردها ماژول Intel Edison compute است.
براساس اطلاعاتی که در وبسایت خود شرکت Intel قرار دارد، ماژول compute برای کارشناسان حرفهای IoT، تولیدکنندگان، به منظور استفاده در شرکتهای فنی، و نیز استفاده های انبوه در صنعت تولید محصولات IoT طراحی شده است. از خوبیهای این ماژول این است که به سادگی توسعهپذیر است و برای توسعههای آزمایشگاهی (prototype) بسیار مناسب است. در مواردی هم که عملکرد ابزار مورد توجه است ، میزان مخاطره و ریسک آن در محدودهی قابل قبول تولیدات تجاری است. این ماژول از 22 nm Intel SoC استفاده میکند و شامل یک هستهی دوگانه (dual core)، یک dual threaded Intel Atom CPU در فرکانس 500MHz و یک میکروکنترلر کوارک 32-bit اینتل است که در فرکانس 100MHz کار میکند.
این ماژول و اغلب بورد های دیگر کمپانی اینتل مانند Intel Curie یا Intel Galileo خط تولیدشان متوقف شده است.
اما اینتل اخیرا یک پلتفرم توسعهی سختافزاری IoT ارائه نمود که بسیار هم مورد توجه قرار گرفت. این بورد که با نام Up Squared groove IoT Development Kit شناخته میشود، به طور خاص به منظور استفاده در کاربردهای صنعتی IoT و برآوردن نیازهای نامتعارف و منحصر به فرد آنجا طراحی شده است.
4. بوردهای عرضه شده توسط Adafruit
Adafruit یکی از بزرگترین فروشگاههای آنلاین عرضهی قطعات الکترونیکی است. چندی پیش این فروشگاه نیز به عرصهی رقابتهای داغ در بازار IoT پیوست و تولید شاخهای مخصوص به خود را درمحصولات IoT آغاز کرد. به عنوان مثال یکی از این محصولات بورد های
Adafruit feather بودند که با ویژگیهای خاصشان، توسعهی نمونههای پیشتولید شده برای محصولات IoT مقیاسپذیر را امکانپذیر میکردند. همچنین در کنار بوردهای توسعهای ، Adafruit هم مانند Particle خدمات دیگری را نیز در عرصهی IoT ارئه نمود. و آن ارائهی سرویسهای مبتنی بر ابر (cloud) برای طیف وسیعی از ابزارها بود. ابزارهایی که کتابخانههای کاربری آنها ساده بود و اغلب پلتفرم های توسعه سختافزاری در IoT ها هم جزء همین دسته محسوب میشدند. با API های قدرتمند، داشبوردهای کاربری زیبا و IoT پلتفرمهای کاملا امن.
میتوان به سادگی مشخص کرد که تفاوت عمده میان Particle و Adafruit ، شیوههای طراحی محصولات در آنهاست. به عنوان مثال Adafruit.io ، با تمرکز ویژه بر جامعهی سازندگان و برآوردن نیازمندیهای آنها تولید شده است و راهکاری بسیار مناسب برای ساخت نمونههای اولیه و آزمایشگاهی ست. اما Particle خود را بیشتر به معیارهای تجاری و شیوههای ارتقاء درجهبندی کیفی محصلات تولید انبوه متعهد میداند.
5. گروه محصولات IoT ارائه شده توسط آردوینو
برای کسانی که در فضای IoT کار میکنند، محال است که نام آردوینو نام آشنایی نباشد. بسیار پیش از آنکه IoT اینقدر مورد اقبال و ترند عمومی واقع شود، بسیاری از بوردهای آردوینو به منظور توسعه نمونههای آزمایشگاهیِ محصولاتی که در آنها ابزارهای مختلف از طریق یک شبکه به هم متصل میشدند، استفاده میشد. با توجه به برنامه نویسی آسان و دارا بودن خاصیت پیکربندی خودکار در مدارها (plug and play)، مدارهای مبتنی بر آردوینو به سرعت در میان سختافزارکاران به شهرت و محبوبیت رسیدند. اولین بوردهای آردوینو بیشتر میکروکنترلرهای عاممنظوره (GP) بودند که با استفاده از ماژولهای WiFi و GSM به اینترنت متصل میشدند. اما با باز شدن پرونده IoT، به مرور بوردهای آردوینو نیز تخصصیتر شدند و به سمت ایجاد ویژگیهای مورد نیاز برای پشتیبانی از IoT رفتند. بوردهایی مانند Arduino 101 (که توسط کمپانی اینتل ساخته شد)، MKR1000، Arduino WiFi Rev 2، MKR Vidor 4000 (اولین بورد آردوینو که براساس چیپهای FPGA ساخته شد) همگی از گروه همین بوردهای تخصصی بودند.
تمام این بوردها با در نظر داشتن موضوعات IoT ساخته شدند وهرکدام دارای ویژگیهای مختلفی هستند که آنها را برای حل مسائل و چالشهای موجود در IoT مناسب میسازند. به عنوان مثال بورد Arduino WiFi Rev 2 دارای ماژولهای IMU است که به همین علت به بورد مناسبی برای کاربردهایی تبدیل میشود که در آنها ابزارهای شبکه متحرک هستند و نیاز است که آنها را از راه دور کنترل کرد.
مشابه Adafruit و particle ، آردوینو نیز قادر به ارائه سرویسها و خدمات ابری است که مختص استفادهی برخی از بوردهای آن است؛ بوردهایی مانند MKR1000 ، Arduino Yun/Yun Shield و Arduino 101/WiFi Shield 101. سرویس ابری آردوینو (cloud.arduino.cc) ابزاری ساده را به سازندگان ارائه میدهد که به کمک آن اشیاء خود را به اینترنت متصل کنند و پروسه نصب آن تا زمانی که اتصال اشیاء آماده شود بسیار کوتاه است. و جالب است بدانید که حتی یک بورد سادهی Arduino Uno نیز میتواند با اتصال به ماژول Espressif ESP8266 ، برای ساخت یک پروژهی IoT جوابگو باشد!
6. بورد های Raspberry Pi
هرچند که رسالت Raspberry Pi در تولید بوردهای عاممنظوره است، اما بی انصافی ست اگر نقش آن را در توسعه ی برخی محصولات و پروژههای IoT که امروزه به صورت رایجی مورد استفاده هستند، نادیده بگیریم. به طور کلی بورد های رزبری پای بسیار پیچیدهتر و قدرتمندتر از آن هستند که بخواهیم از آنها در توسعهی سنسورها و اکچواتورهای ساده استفاده کنیم، اما میتوانیم وظایف سنگینتری را به آنها محول کنیم، مثلا جمعآوری کننده داده، ایفای نقش Hub یا Gateway در شبکههای IoT یا …
یکی از بوردهای رزبریپای، بورد +Raspberry pi 3 model B است که ویژگیهای خیرهکنندهای دارد:
- 1.4GHz Broadcom BCM2837B0
- Cortex-A53 (ARMv8) 64-bit SoC
- 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN
- Bluetooth 4.2, BLE
- a Gigabit Ethernet port over USB 2.0 (300 Mbps حداکثر سرعت : )
و تمام این ویژگیها جدای از ویژگیهای دیگری مانند دارا بودن 4 پورت USB ، دارا بودن خروجی Audio، دارا بودن LPDDR2 SDRAM با ظرفیت 1GB و … است که تمام اینها روی هم آن را به یک بورد ایدهآل برای کاربردهای IoT تبدیل میکنند. و البته رزبری پای نسخه 4 نیز ارائه شده است.
بنابر درخواست صنایع تولید محصولات IoT و نیز افراد عادی که علاقهمند بودند از بوردهای رزبری پای در محصولات تولیدی خودشان استفاده کنند، ماژولهای Raspberry pi compute نیز تولید و عرضه شدند. یکی از این بورد ها که به نام CM 3 معروف است و به تازگی عرضه شده است، در واقع همان شالودههای اصلی Raspberry Pi 3 را گرفته (مانند پروسسور BCM2837 و رم 1 گیگابایتی) و در کنار آن ویژگیهای دیگری را نیز ارائه کرده است مثلا 4GB eMMC Flash device (قطعهی معادل کارت SD در بوردهای پای)که در فرکانس 1.2GHz پردازنده کار میکند. تمام اینها بر روی صفحهای با ابعاد 67.6mm x 31mm قرار گرفته اند و دریک کانکتوراستاندارد DDR2 SODIMM (مشابه همان کانکتوری که در حافظه لپتاپها استفاده میشود)جای میگیرند.
بنابراین در مجموع ویژگیهای بوردهای رزبری پای به گونهای ست که آنها را برای استفاده به عنوان gateway و یا در پروژههای IoT که به سرعت پردازش بالا نیاز دارند، مناسب کرده است.
خبر خوبی که در مورد تمام این پلتفرم های معرفی شده وجود دارد ، این است که تمام آنها به صورت منبع باز ( open source) در دسترس هستند و فارغ از اینکه کدام را بخواهید انتخاب کنید، حتما پشتیبانی ها و منابع بسیاری برای کمک کردن به شما وجود خواهد داشت.
در پایان لازم است مجددا متذکر شویم که این آموزش ادعای جامع و کامل بودن ندارد چرا که پلتفرمهای بسیار دیگری نیز وجود دارند که شما میتوانید در مورد آنها کسب اطلاع کنید. از جملهی آنها میتوان به Beaglebone، Banana Pi و لیست بوردهای IoT موجود در سایت SparkFun اشاره کرد.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
سلام ممنون از اطلاعات خوبتون که در اختیار گذاشتید
در خصوص اینترنت اشیا که با سایت آدافروت راه اندازی کرده بودم به مشکل خوردم .
چون سایتش فیلتر شده .
میشه لطف کنید سایتهای مشابه و یا راه حل مشکل من رو هم اضافه کنید ممنونم.