پلتفرم های اینترنت اشیا

برای خیلی ها سوال شده که از چه بردی برای انجام پروژه اینترنت اشیا استفاده کنن. ما در این مقاله بهترین پلتفرم های اینترنت اشیا را معرفی کرده ، همچنین به مقایسه آردونیو و رزبری پای و ESP8266  میپردازیم. در دنیای اینترنت اشیا، معمولا سه برد آردونیو و esp8266 و رزبری پای رایج ترند و به ظاهر شبیه هم هستن، چون شامل یک مدار با مقاومت، خازن و ICUها و اتصالاتی هستند. با این حال، نگاهی دقیقتر می­تواند تفاوت این بردهای توسعه را بیشتر مشخص کند.

اگر دقیقتر نگاه کنیم ، متوجه میشویم که آردونیو، رزبری و esp8266 هم در معماری و هم در نوع هدفشان با هم متفاوت هستند.

پس لازم هست که هر کدام را ریز به ریز بررسی کنیم ، پس با فبیوت همراه باشید.

رزبری پای چیست؟

اولین نسخه از رزبری پای در سال ۲۰۱۲ رونمایی شد. هدف این برد کمک به کودکان برای یادگیری برنامه نویسی بود.

پس از این کار برد رزبری پای بین همه افراد جایگاهش را پیدا کرد و طرفداران زیادی برای خودش جور کرد. افراد بسیار زیادی در جهان دارن از رزبری پای استفاده میکنن .

رزبری پای 4

جدیدترین نسخه رزپری پای، rasberi pi 4 modelB است که در سال ۲۰۱۹ رونمایی شد. رزبری ۴ دارای یک پردازنده ۴ هسته ای ۱٫۵گیگاهرتز و وای فای و بلوتوث هست. خوبی این مدل اینه که بسته به نیازمون میتونیم میزان رم دستگاه رو از ۱ تا ۴ گیگ قبل از خرید انتخاب کنیم. ما یک مقاله خیلی خوب برای جزییات بیشتر رزبری ۴ نوشتیم که میتونید برای مطالعه بیشتر اون رو بررسی کنید. تمشک ورژن ۴ یکی دیگر از پلتفرم های اینترنت اشیا محصوب میشود.

آردونیو چیست؟

برای اولین بار اردونیو در سال ۲۰۰۸ رونمایی شد. اردونیو یک پلتفرم متن باز برای میکروکنترلرهای ATMEL  بود.

اولین تفاوت میان رزبری و اردونیو این هست که اردونیو میکروکنترلر است و رزبری میکروپروسسور. جلوتر بیشتر توضیح میدهیم.

آردوینو Uno

پلتفرم آردونیو رو میشه به راحتی در بردبورد نصب کرد. علاوه بر این آردونیو این قابلیت را داره که بتوان شیلد های مختلفی روی آن سوار کرد. فرض کنید مثل یک مادربرد که بشه روش رم اضافه کرد. کار این شیلد ها هم اضافه کردن قابلیت یا فضای بیشتر به برد هست.

آردونیو نمونه های مختلفی به بازار عرضه کرده اما محبوبترین آنها UNO میباشد. UNOمبتنی بر ATmega328 میباشد.

NodeMCU ESP8266 چیست؟

NodeMCU  یک پلتفرم متن باز برای اینترنت اشیا است. اصطلاح NodeMCU به طور پیش فرض به فریمور اشاره میکنه نه به کیت سخت افزاری.

برد توسعه NodeMcu ESP8266

فریمور NodeMCU   توسط زبان Lua نوشته شده است. NodeMCU   به فاصله دو ماه از تولید ESP8266 تولید شد. NodeMCU در ۱۳ اکتبر ۲۰۱۴ وارد بازار شد. بلافاصله بعد از ورود ان ، فریمور NodeMCU به سایت گیت هاب وارد شد. دو ماه بعد این پروژه گسترش یافت و تعداد زیادی کتابخانه به آن اضافه شد.

بعد از تمام این مراحل  NodeMCU ESP8266 به یکی از تاپ ترین پلتفرم های اینترنت اشیا تبدیل شد.

مقایسه آردونیو UNO و رزبری پای ۴ و NodeMCU ESP8266

 

  • ولتاژ عملیاتی
  • 5V
  • 5V
  • 5V
  • میزان Memory
  • 1-4Mb
  • 32Kb
  • 1-4Gb
  • سرعت کلاک
  • 80-160Mhz
  • 16Mhz
  • 1.5Ghz
  • پلتفرم
  • NodeMCU
  • Arduino UNO
  • Rasbberi Pi 4

 

ما آخرین نسخه های هر پلتفرم را با هم مقایسه کردیم تا دید خوبی از آن داشته باشید.

اولین تفاوتی که میشه مشاهده کرد اینه که سرعت کلاک پردازنده رزبری پای برابر ۱٫۵ گیگاهرتز است در صورتی که سرعت میکروکنترلر اردونیو uno برابر ۱۶ مگاهرتز میباشد. سرعت کلاک NodeMCU ESP8266  برابر ۱۶۰ مگاهرتز هست که از uno بیشتره . خب سرعت رزبری اینجا تقریبا ۱۰۰ برابر uno هست. پس در این مرحله رزبری اول، NodeMCU دوم و uno سوم شد.

تفاوت های دیگه ای هم میشه مشاهده کرد. Raspberry Pi دارای ۱یا ۲ یا ۴ گیگابایت حافظه رم است ، در حالی که آردوینو تنها ۳۲ کیلوبایت حافظه رم دارد. NodeMCU ، ۱۲۸ کیلوبایت حافظه رم و ۴ مگ حافظه فلش دارد.

Arduino و NodeMCU  یک درگاه USB دارد ، در حالی که Raspberry Pi چندین عدد USB به همراه HDMI ، سوکت شبکه RJ45 و بلوتوث و وای فای است.

خب تا اینجا فکر کنم نتیجه گرفته اید که قدرت رزبری که بالاتره . دیگه چیز دیگه ای هم می مونه؟

با این وجود این نکته رو بهتون بگم که اردونیو خیلی محبوبتر از رزبری پای است. چرا؟

برای پیدا کردن جواب باید تفاوت میکروکنترلر و میکروپروسسور رو اول بررسی کنیم.

تفاوت میکروکنترلر و ریزپردازنده چیست؟

اگر به وسط هر دستگاه آردوینو نگاه کنیم یک IC سیاه رنگی میبینیم. این همان میکروکنترلر هست . میکروکنترلر نصب شده روی اردوینو uno ، atmega328 هست که دارای ۲۸ پین میباشد.

NodeMCU  هم از esp8266 استفاده میکند.

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

پس بقیه برد اردوینو و NodeMCU  برای چی هست؟ برای این هست که شما به راحتی بتونید برق دستگاه رو نصب کنید و شروع به کار کنید. دیگه نیازی به راه اندازی میکرو نداشته باشید.

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

رزبری میتونه سیستم عامل رو اجرا کنه مثل کامپیوتر. میتونه برنامه ها رو اجرا کنه، پورت های USBوHTMIوRJ45 رو کنترل کنه و در نهایت یک رابط کاربری زیبا به کاربر نمایش بده.

معماری رزبری پای طوری هست که میتونه کارهایی انجام بده که آردوینو و میکروکنترلر ها نمیتونن انجام بدن. اما برای خیلی از پروژه ها ما نیاز به یک مینی کامپیوتر نداریم.

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

خیلی از کارها هم هستند که با یک میکروکنترلر حل میشن و ما نیازی به یک برد گران قیمت و بزرگ نداریم.

سیستم عامل

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

یعنی چی که این نسخه بهینه شده برای رزبری؟

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

 خب بریم سراغ اردوینو و NodeMCU  . در Uno نزدیک به ۲ کیلوبایت حافظه فلش اختصاص داده شده به فریمور که به اون bootloader هم میگن. طبیعتا با این حافظه نمیتونه نرم افزارهایی رو که رزبری اجرا میکنه ، اجرا کنه . در NodeMCU  هم از یک تا چهار مگ به حافظه فلش اختصاص داده شده است.

در عوض اردوینو و NodeMCU   میتونه دستوراتی رو که توسط Arduino IDE بر روی اون ریخته میشه ، اجرا کنه . این دستورات را میتونه هم بر روی خودش و هم در ویندوز،مک یا لینوکس از جمله رزبری اجرا کنه.

پس در نتیجه ما قراره برنامه نویسی رو روی یک دستگاه جداگانه انجام بدیم و تمام.

خب برای مقایسه یک موضوع مهم دیگه هم اینجا مطرح میشه . بریم ببینیم چی هست؟

هزینه یا قیمت

از نظر هزینه ، رزبری و اردونیو با یکدیگر قابل قیاس هستند . جدیدترین RPI با رم ۱ گیگ تقریبا ۵۵ دلار قیمت دارد. رم ۲ و ۴ گیگ که قیمتشون بالاتر هست.تبدیل قیمتش بر اساس دلار روز با خودتون . اما Arduino UNO تقریبا ۷۰ هزار تومان قیمت دارد.

برد توسعه NodeMcu تقریبا کمتر ۵۰ هزار تومان قیمت دارد . کوچکترین Raspberry Pi که به اون Raspberry Pi Zero میگن، تقریبا ۴۵۰ هزار تومان قیمت دارد.

به تمام این دستگاه ها میشه آپشن هایی اضافه کرد. مثل این میمونه شما یک ماشین میخرید و بعد میرید براش ضبط و روکش و رینگ میخرید.

مخصوصا اپشن ها برای اردوینو و Esp بیشتر هم هستند . مثلا شما میتونید بعد از اتمام پروژتون مجدد قطعات رو جدا کنید و یک پروژه جدید رو استارت بزنید.

 

در عوض برای رزبری پای تنها میشه یک موس و کیبورد و مانیتور اضافه کرد . البته اپشن هایی دیگه ای هم هست اما به نسبت اردینو و esp خیلی کمه.

 نوشتن اولین برنامه 

اگر بخواهید با رزبری اولین برنامتون رو اجرا کنید ، اول باید سیستم عامل رو نصب و بعد پیکربندی کنید.البته یک نسخه ای برای افراد تازه کار وجود دارد به نام Noobs که کار رو آسون میکنه.

 

برای شروع کار با Arduino یا NodeMcu ، باید IDE را روی رایانه یا لبتاپ خود نصب کنید و بعد آردوینو یا برد توسعه NodeMcu را از طریق USB به کامپیوتر متصل است . بعد از این کار می توانید اولین پروژه خود را ایجاد کنید . احتمال خیلی زیاد اولین پروژتون روشن و خاموش کردن یک LED خواهد بود. برای این کار باید پایه های LED را به مثبت و منفی دستگاهتون متصل کنید. برای جلوگیری از سوختن LED ، باید از یک مقاومت هم استفاده کنید.

 

خب از چه زبان برنامه نویسی برای رزبری پای و آردوینو یا NodeMcu استفاده کنیم؟

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

 Raspbian با یک IDE پایتون معروف به نام IDLE 3 راه اندازی میشود. IDLE 3 به اندازه کافی قدرتمند هست تا بتونه نرم افزارهای مختلف رو اجرا کنه.

کسانی که بخوان تازه کارشون رو با رزبری پای استارت بزنن میتوانند با Scratch هم شروع کنند .

افراد باتجربه تر و حرفه ای هم می توانند با زبان های C ، C ++ یا Java فعالیتشون را شروع کنند.

 برای این که آردوینو فاقد مترجم است ، باید اول کد نوشته شود.

بعد بر روی تراشه Atmel کامپایل و بارگذاری شود.

وقتی کد خود را چی کردید ، گزینه آپلود را فشار دهید.

IDE بعد از زدن اپلود ، اول کد را چک میکند تا خطاها را پیدا کند.

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

اتصال

بیشتر پلتفرم های اینترنت اشیا دارای آرایه ای از General-Purpose-Inputs-Output (یا GPIO) هستند. دستگاه های جدیدتر Raspberry Pi چهل پین GPIO دارند  ، در حالی که Arduino UNO دارای چهارده پین GPIO است.

این پین ها رو میشه روی  Highیا Low تنظیم کرد و یا اینکه یک ولتاژ ورودی را بخوانند.

در هر دستگاه یک سری پین های خاص هست که برای بعضی از پروتکل ها استفاده میشه مثلSPI ، I2C و UART

 شما حتی می توانید یک پین را مثل یک موج سینوسی از ۰ تا ۵ ولت شبیه سازی کنید. این تکنیک به عنوان مدولاسيون پهناي پالس (PWM) معروف است. با PWM ، می توانید میزان روشنایی یک LED یا سرعت یک موتور را به صورت دیجیتال کم و زیاد کنید .

 Raspberry Pi دارای ماژول هایی است که به برد متصل میشن و این برد را برای پروژه های Internet of Things مناسبتر می کنند.

 اگر میخواهیم اردوینو رو به وای فای مجهز کنیم کار سختی نیست. کافیه فقط یک شیلد WiFi مجهز به ESP8266 رو به بالای آردوینو متصل کنیم. علاوه بر این ، انواع مختلفی برد Arduino موجوده که از اینترنت بی سیم استفاده می کنند ، مانند MKR1000.

NodeMcu هم که خودش وای فای داره و کار ما رو راحت میکنه.

بسیاری از تولید کنندگان مدل های مختلفی از آردوینو تولید کردند که هر کدام برای یک هدفی استفاده میشود.

 

مصرف برق چطور است؟

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

 

مصرف برق Raspberry Pi 3 Model B تقریباً  ۱٫۷ وات است . اگر از Raspberry Pi Zero استفاده می کنید ، مصرف برقتان به  W0.4 کاهش می یابد.

حالا مصرف برق آردوینو UNO را بررسی کنیم. میزان وات مصرفی در UNO  برابر ۰٫۱۴ میباشد.

پس متوجه شدید که Arduino و NodeMcu به طور طبیعی برای پروژه های باتری محور مناسبتر میباشد.

 

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

مثلا اگر نیازی به نمایشگر در RPI ندارید ، می توانید با غیرفعال کردن پورت های HDMI ، در مصرف برق صرفه جویی کنید. Raspberry Pi را متناسب با نیازهای پروژه خود تنظیم کنید ، با این کار باتری تا مدت قابل توجهی کار کند.

 

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

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

 پس کدام پلتفرم برای اینترنت اشیا بهتر است؟

از همه این عوامل نتیجه گیری میشود که هر سه دستگاه برای موارد مختلفی هستند. باید بر اساس نیاز بهترین پلتفرم برای اینترنت اشیا را انتخاب کنیم.برای اینکه بهتر متوجه بشید بیایید یک مثال بزنیم.

فرض کنید ما یک کامیون و یک موتور سیکلت داریم. این خودروها مانند آردوینو و رزبری پای هستند ، یک سری اشتراکات دارند مثلا ، هر دوی آنها دارای چرخ هستند و از هر دو برای حمل وسایل استفاده می شود.

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

 خب منظور ما این نیست که کامیون بهتر از موتورسیکلت و یا برعکس هست.هر کدام نقاط قوت خود را دارند که متناسب با اهداف مختلفی است.

 

به طور کلی ، Arduino و NodeMcu بیشتر برای پروژه های سخت افزار محور ساخته شده است ، در حالی که Raspberry Pi برای پروژه های نرم افزار محور طراحی شده است.

 ممکن هست پروژه شما نیاز به پردازش داده و کنترل سخت افزار داشته باشد. در این صورت ، باید از هر دو دستگاه Raspberry Pi و Arduino یا NodeMcu استفاده کنید.

 هر دو وسیله ای که در اینجا مورد بحث قرار دادیم ، تأثیر بسیاری بر دنیای الکترونیک گذاشته اند. همچنین به میلیون ها مخترع و برنامه نویس ها کمک کرده اند تا پروژه های خود را عملی کنند.

 

 

5/5 ( 3 نظر )
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخی بگذارید

© تمامی حقوق این وب سایت متعلق به فبیوت میباشد