آردوینو آموزش آردوینو

معرفی برد آردوینو Mega2560 با تراشه وای فای ESP8266 Nodemcu

نوشته شده توسط معین صابری

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

حتما پیش از این با برد آردویینو MEGA آشنایی دارید. این برد از تعداد بیشماری GPIO بهره می برد. در کنار این موضوع، میزان حافظه بالای آن، این برد را به انتخابی مناسب برای پروژه های کنترلی با تعداد زیادی ورودی/خروجی و برنامه سنگین و حجم تبدیل می کند. در این آموزش به یک مدل پیشرفته تر از این برد می پردازیم. این مدل، علاوه بر قابلیت های پیشین، از ماژول وای فای ESP8266 نیز بهره برده و زمینه را برای اتصال این برد به اینترنت به منظور ارسال داده و دریافت فرمان، ساده می نماید. در این آموزش به معرفی کامل این برد و ویژگی ها و قابلیت های آن می پردازیم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

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

 


برد آردوینو Mega2560 با Nodemcu


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

برد آردوینو مگا 2560 با تراشه ESP8266 وای فای - دیجی اسپارک

 


ویژگی‌های پردازنده MEGA2560


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

تعداد پایه های ورودی/خروجی : ۵۴ عدد

تعداد پایه های ورودی آنالوگ: ۱۶ عدد

تعداد پورت های سریال یوآرت: ۴ عدد

حافظه فلش : ۲۵۶ کیلیوبایت(۸ برابر آردویینو UNO)

حافظه ایپرام: ۴ کیلو بایت (۴ برابر آردویینو UNO)

میزان حافظه رم: ۸ کیلوبایت(۴ برابر آردویینو UNO)

فرکانس کاری: ۱۶ مگاهرتز

 


ویژگی‌های پردازنده ESP8266


 فرکانس کاری ۸۰ الی ۱۶۰ مگاهرتز

حافظه فلش ۴ مگابایت (۳۲ مگابیت)

قابلیت اتصال به اینترنت

قابلیت تبدیل به نقطه دسترسی(اکسس پوینت)

قابلیت ایجاد شبکه به صورت لوکال

قابلیت تبدیل به سرور

پشتیبانی از سیستم عامل FREE RTOS

قابلیت برنامه نویسی به کمک آردویینو

همانطور که مشاهده می نمایید، آردویینو مگا دارای حافظه بسیار بالا، پایه های ورودی خروجی بیشمار و تعداد مناسبی ورودی آنالوگ در کنار ۴ پورت سریال UART، بردی قدرتمند محسوب می شود. از طرفی دیگر، سرعت پردازش ۱۶۰ مگاهرتزی و حافظه فلش ۴ مگابایتی پردازنده وای فای، درکنار قابلیت اتصال به اینترنت، قدرت این برد را دو چندان می نماید.

شماتیک برد آردوینو مگا 2560 بر پایه وای فای ESP8266 - دیجی اسپارک

 


پورت تغذیه و امکانات جانبی


این برد همانند برد MEGA2560، از طریق جک آداپتور و یا ورودی VIN تغذیه می شود. در این برد، یک سوکت مینی USB وجود دارد که به کمک آن می توان برد را تغذیه و پروگرام کرد. تغذیه ماژول ESP8266 نیز از طریق ورودی جک، VIN و یا سوکت مینی USB تغذیه شده و نیازی به تغذیه جداگانه نیست. همچنین، بر روی این برد، همانند برد مگا ۲۵۶۰، پورت تغذیه ۳٫۳ و ۵ ولت موجود است. وجود سوکت آنتن، این امکان را به شما می دهد تا برد وای فای را افزایش دهید.

برد آردوینو مگا 2560 برپایه وای فای ESP8266 - دیجی اسپارک

 


برد آردوینو Mega2560 مناسب پردازش سنگین


در پروژه های سنگین پردازشی با تعداد ورودی و خروجی های زیاد، تعداد پایه های GPIO، میزان حافظه و سرعت کلاک پردازنده ویژگی های اصلی برد کنترلی به شما می رود. از طرفی، با وجود رشد روزافزون تکنولوژی های بی سیم و انتقال داده از طریق اینترنت، نیاز به یک واحد مخابراتی بی سیم امری مهم تلقی می گردد.  انتخاب یک میکروکنترلر که تمام موارد بالا را در خود جای داده باشد، امری چالشی و تا حدی غیر ممکن است. چراکه به عنوان مثال، پردازنده ESP8266 از توان پردازشی بسیار بالا و میزان حافظه بزرگی برخوردار است. اما بزرگترین ضعف آن، تعداد بسیار پایین GPIO و ورودی آنالوگ است. از طرفی دیگر، برد آردویینو MEGA دارای تعداد بیشماری GPIO، ورودی آنالوگ، پورت سریال و… است. اما توان پردازشی این برد پایین بوده(حداکثر کلاک ۱۶ مگاهرتز) و حافظه فلش آن برای برنامه های بسیار سنگین، مناسب نیست. اما، با کنار هم قرار دادان این دو پردازنده، به یک ترکیب فوق العاده خواهیم رسید. از یک طرف، یک پردازنده با توان پردازشی بالا با فرکانس ۸۰ الی ۱۶۰ مگاهرتز داریم، از طرف دیگر، این پردازنده ما، تعداد ۵۴ عدد پایه ورودی خروجی، ۱۶ عدد ورودی آنالوگ و به ۴ پورت سریال دسترسی خواهد داشت.

روی این برد، یک دکمه تعبیه شده است. با قرار دادن این دکمه در وضعیت صحیح، ماژول ESP8266 و میکروکنترلر MEGA2560 با یکدیگر ارتباط برقرار خواهند کرد. ارتباط این دو میکروکنترلر، از طریق پورت سریال صورت می پذیرد. بنابراین، شما می توانید ورودی ها را از پایه های قسمت MEGA دریافت نموده و از طریق پورت سریال، به ESP8266 انتقال دهید. به کمک این دکمه، می توان از طریق پورت ۰ و یا پورت ۳ مگا۲۵۶۰، با پردازنده ESP8266 ارتباط برقرار نمود.

 


نحوه انتقال برنامه به برد و اجرای آن


همانطور که بیان شد، برد اردویینو مگا ۲۵۶۰ وای فای، دارای دو پردازنده، یکی مگا ۲۵۶۰ و دیگری ESP8266 است. ماژول ESP8266 در حالت پیشفرض، با فرامین AT فعال است، اما می توان به سادگی، بر روی آن آردویینو فلش کرد. در این آموزش نحوه برنامه نویسی ماژول ESP8266 با آردویینو، شرح داده شده است. بر روی این برد، تعدادی کلید سلکتور وجود دارد که با تعیین وضعیت آن، می بایست برد را در مد پروگرام و یا اجرای برنامه، قرار داد. این کلید ها در تصویر زیر مشخص شده اند.

کلیدهای مشخص کننده وضعیت برد Mega2560 با ESP8266 - دیجی اسپارک

این کلیدها، وضعیت برد را تعیین می نمایند. جدول زیر، شرح کاملی از ترتیب قرارگیری کلیدها را نشان می دهد.

جدول دیپ سوئیچ برد مگا2560 با تراشه ESP8266 - دیجی اسپارک

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

روش پروگرام کردن تراشه ESP8266 برد Mega2560 - دیجی اسپارک

 


اجرای برنامه روی برد Mega2560 Wifi


در این قسمت، یک برنامه نمونه بر روی برد مگا۲۵۶۰ وای فای، اجرا خواهیم نمود. در این برنامه، به مانیتورینگ وضعیت یک پایه ورودی پرداخته و وضعیت آن را در مرورگر، به کاربر نمایش خواهیم داد.  در این برنامه، ابتدا یک پایه دلخواه را به عنوان ورودی پول آپ تعیین می نماییم.میکروکنترلر مگا ۲۵۶۰ وضعیت این پایه را خوانده و از طریق پورت سریال، به ماژول ESP8266 ارسال می نماید. در طرف دیگر، ماژول ESP8266 به صورت اکسس پوینت و سرور طراحی می گردد. این ماژول وضعیت ارسالی پایه را از طریق پورت سریال دریافت می نماید. برای اتصال به این سرور، ابتدا می بایست به نقطه دسترسی(وای فای) ماژول ESP8266 متصل شویم. سپس، در مرورگر، آی پی ۱۹۲٫۱۶۸٫۴٫۱ را وارد می نماییم. با وارد کردن این آی پی، در صفحه مرورگر، وضعیت پایه را مشاهده خواهیم نمود.

 


مرحله ۱ : کدهای بخش مگا ۲۵۶۰


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

وضعیت دیپ سوئیچ برای آپلود برنامه روی برد Mega2560 Nodemcu ESP8266 - دیجی اسپارک

همانطور که اطلاع دارید، بر روی این برد یک کلید جهت انتخاب پورت سریال مگا۲۵۶۰ برای اتصال به ماژول ESP8266 قرار دارد. لطفا این کلید را روی وضعیت RX3/TX3 قرار دهید. در این مرحله، می بایست برد را از طریق جک مینی USB آن، به رایانه متصل نمایید. توجه داشته باشید که برد از طریق همین جک، تغذیه خواهد شد.  در این مرحله، می بایست کدهای بخش مگا۲۵۶۰ را آپلود نماییم. به همین دلیل، در نرم افزار آردویینو، بر روی گزینه TOOLS کلیک نمایید. سپس، در قسمت Board، گزینه MEGA 2560 را انتخاب نمایید. پس از آن، کد های زیر را بر روی برد، آپلود نمایید.

void setup() {
  // put your setup code here, to run once:
  Serial3.begin(9600);
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);

}

void loop() {
  if (digitalRead(2) == LOW) {
    Serial3.println("LOW");
    Serial.flush();
  }
  else {
    Serial3.println("HIGH");
    Serial.flush();

  }
  delay(2500);

}

پس از آپلود کد، عبارت Done Uploading در پایین صفحه ظاهر می شود. در این مرحله، مگا۲۵۶۰ در حال ارسال وضعیت پایه شماره ۲، به ماژول ESP8266 از طریق پورت سریال است.

 


مرحله دوم: کدهای وای فای ESP8266


در این قسمت، کدهای بخش ESP8266 را بر روی این ماژول، آپلود می نماییم. به همین منظور، می بایست وضعیت کلیدهای سلکتور به حالت زیر، تنظیم شود.

وضعیت دیپ سوئیچ برای آپلود کدها روی تراشه ESP8266 - دیجی اسپارک

همانطور که بالاتر نیز اشاره شد، پیش از آپلود کد ESP8266، دکمه MODE را یکبار بفشارید تا ماژول به در مد پروگرام قرار گیرد. سپس، در منوی TOOLS و در قسمت Boards، گزینه ESP8266 Generic را انتخاب نمایید. در نهایت، کدهای زیر را بر روی ماژول وای فای آپلود نمایید.

#include <ESP8266WiFi.h>
WiFiServer server(80);
String data = "";

void setup() {
  WiFi.softAP("MEGA2560WIFI", "yourpasswd");
  delay(5000);
  server.begin();
  Serial.begin(9600);
}

void loop() {

  while (Serial.available()) {
    data = Serial.readString();
  }

  WiFiClient client = server.available();   // Listen for incoming clients
  client.print("<html>");
  client.print(" <head> ");
  client.print("<meta http-equiv=\"refresh\" content=\"3\">");
  client.print(" </head>");
  client.print("<body>");
  client.print(data);
  client.print("</body>");
  client.print("</html>");
}

کدهای فوق، در ابتدا یک اکسس پوینت به نام MEGA2560WIFI می سازند. رمز آن در اینجا yourpasswd تعیین شده است. در کدهای برنامه، عبارت ارسالی از سوی مگا ۲۵۶۰ که از طریق پورت سریال ارسال می گردد، به کمک تابع Serial.readString وضعیت پایه خوانده شده و از طریق client.print، وضعیت در صفحه مرورگر نمایش داده می شود.

 


نمایش وضعیت پایه ورودی در مرورگر


در این مرحله، به اجرای برنامه می پردازیم. به منظور برقراری ارتباط بین مگا۲۵۶۰ و ماژول ESP8266، کلیدهای سلکتور و سوییچ پورت را به صورت زیر تنظیم نمایید.

وضعیت دیپ سوئیچ برد Mega2560 برپایه Wifi - دیجی اسپارک

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

وضعیت برد Mega2560 با وای فای ESP8266 در مرورگر - دیجی اسپارک

 

 

پس از اتصال، در مرورگر خود، آدرس ۱۹۲٫۱۶۸٫۴٫۱ را وارد نمایید. در نهایت، وضعیت پایه، به صورت زیر نمایش داده می شود.

همانطور که پیشتر بیان شد، پایه شماره ۲ مگا ۲۵۶۰ به صورت ورودی و پول آپ تعریف شده است. به عبارت دیگر، این پایه به طور پیشفرض، مقدار یک دارد. با اتصال این پایه به زمین، مقدار آن ۰ و یا LOW خواهد شد.

 


تحلیل کدهای برد MEGA2560 وای فای ESP8266


همانطور که پیشتر بیان شد، برد مگا ۲۵۶۰ همراه با ماژول وای فای ESP8266، دارای دو پردازنده است. یک پردازنده، میکروکنترلر مگا ۲۵۶۰ و دیگری پردازنده ESP8266 بوده که این دو پردازنده از طریق رابط سریال UART با هم به تبادل داده می پردازند. در ابتدا به بررسی برنامه بخش مگا ۲۵۶۰ می پردازیم. در این قسمت قصد داریم تا وضعیت پایه ۲ را که به صورت ورودی تعریف شده، از طریق سریال به ESP8266 ارسال نماییم. بنابراین ابتدا پایه شماره ۲ مگا۲۵۶۰ را به صورت ورودی تعریف می نماییم.

pinMode(2,INPUT_PULLUP(

از آنجاییکه قصد داریم داده ها را به ماژول ESP8266 نیز ارسال نماییم، بنابراین نیاز است که پورت سریال را تعیین کنیم. ما در اینجا از پورت سریال شماره ۳ مگا۲۵۶۰ برای ارسال داده به ESP8266 استفاده نموده ایم. بنابراین این پورت را مطابق دستور زیر، کانفیگ می نماییم.

Serial3.begin(9600)

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

Serial3.println("HIGH");

پس از اینکه داده ها توسط مگا ۲۵۶۰ ارسال شد، در طرف وای فای، از طریق پورت سریال این داده ها می بایست دریافت شوند. ابتدا به کمک دستور زیر در قسمت set up، ماژول را در حالت نقطه دسترسی(اکسس) پوینت قرار می دهیم.

WiFi.softAP("MEGA2560WIFI", "yourpasswd");

در ادامه، به منظور دریافت داده های ارسالی از سوی مگا ۲۵۶۰، قطعه کد زیر را خواهیم داشت.

while (Serial.available)
data=Serial.readString();

در ادامه باید صفحه وب سرور مروگر خود را بسازیم. بنابراین کدهای HTML ساخت صفحه را به کمک تابع client.print، ایجاد می نماییم. در نهایت، با توجه به اینکه داده ها در متغیر data ذخیره شده اند، آن ها را به کمک تابع زیر، در مرورگر نمایش خواهیم داد.

client.print(data(;

 

 


وسایل مورد نیاز


برد آردوینو Mega2560 با تراشه وای فای ESP8266 Nodemcu

 


جمع بندی


در این آموزش، به بررسی برد MEGA2560-WIFI پرداختیم. این برد که نسخه پیشرفته برد MEGA2560 محسوب می شود، دارای ماژول وای فای ESP8266 بوده که امکان ارتباط آن به اینترنت و برقراری ارتباط بی سیم را فراهم می آورد. از طرفی دیگر، وجود تعداد بیشماری پایه GPIO پردازنده مگا ۲۵۶۰ در کنار قدرت پردازشی بسیار بالای پردازنده ESP8266 که هردو بدون نیاز به ابزار جانبی و تنها به کمک آردویینو قابل برنامه ریزی هستند، از این برد، یک برد فوق العاده قدرتمند ساخته است. به عبارت دیگر، این برد ضعف تعداد کم GPIO پردازنده ESP8266 و سرعت پردازشی پایین پردازنده مگا ۲۵۶۰ را برطرف می سازد، چراکه این برد قادر است تا پردازنده مگا۲۵۶۰ و ESP8266 را  از طریق پورت UART به یکدیگر، متصل نماید.

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۱ دیدگاه

  • با سلام و خداقوت و به تیم دیجی اسپارک، میشه برنامه نویسی آردونیو رو با برنامه شبیه اسکرچ کرد؟اگه امکان پذیر باشد میشه همه اینا رو با گوشی اندروید انجام داد؟

    • سلام
      از لطف شما سپاسگزارم
      بله، به کمک برنامه ArduinoDroid می توانید آردویینو را پروگرام نمایید.

  • با سلام
    بنده این برد رو خریداری کردم اما دچار مشکل خاصی شدم و اونم این هستش که نمیتونم به IDE متصلش کنم
    آیا میتونید بنده رو راهنمایی کنید؟

      • سلامی دوباره
        نمیتونم برنامه رو روی برد آپلود کنم و مثل اینکه پیداش نمیکنه
        میشه راهنمایی کنید باید داخل محیط IDE کدوم مدل آردوینو رو انتخاب کنم و در انتها چطور متصل بشن؟

        • سلام
          مطابق آموزش پیش روید. این برد دو قسمت دارد، یکی مگا۲۵۶۰ و دیگری ESP8266، با کلیدهای سلکتور، مطابق آنچه که در آموزش گفته شده، وضعیت را بر روی آپلود برد مورد نظر قرار داده و سپس کد خود را آپلود کنید. دقت کنید که برد مورد نظر را پیش از آپلود در منوی TOOLS و قسمت BOARD به درستی انتخاب کرده باشید.

      • IDE برای وریفای شدن خیلی از کد ها از جمله کدی که خودتون قرار دادید این ارور رو میده
        Compilation error: Error: 2 UNKNOWN: exit status 1
        وقتی حالت IDE رو میذارم روی UNO این مشکل پیش نمیاد

        • همانطور که گفته شد، برد را به درستی انتخاب کنید. برای قسمت وای فای از منوی TOOLS و قسمت BOARD، برد ESP8266 GENERIC و برای قسمت مگا، MEGA2560 را انتخاب نمایید.

          • سلام خیلی ممنونم بابت راهنماییتون ، دیروز اون دوتا نظر رو تقریبا پشت سر هم نوشته بودم
            مراحل آموزش رو میرفتم ولی کار انجام نمیشد
            بالاخره با تغییر IDE و نصب نسخه ی قدیمی تر مشکلم حل شد
            بازم خیلی ممنونم

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

            • سلام دوست عزیز. من نیز دقیقا مشکل شما را دارم. شما از چه نسخه آردوینو و چه ورژنی از کتابخانه esp8266 اسنفاده کردید؟