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

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

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

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

 

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

 


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


ماژول Mega + WiFi R3 که اشاره کردید یک برد توسعه قابل برنامه‌ریزی است که میکروکنترلر ATmega2560 را با ماژول ESP8266 وای‌فای ترکیب می‌کند. این برد یک پلتفرم قدرتمند برای توسعه پروژه‌های اینترنت اشیا (IoT) و دیگر برنامه‌هایی است که نیاز به قابلیت پردازشی ATmega2560 و اتصال بی‌سیم ESP8266 دارند.میکروکنترلر ATmega2560 واحد پردازش اصلی در برد است و با Arduino Mega 2560 سازگار است. تعداد بیشتری پین ورودی/خروجی دیجیتال، ورودی آنالوگ و سایر ویژگی‌ها نسبت به بردهای استاندارد آردوینو را داراست که آن را برای پروژه‌های پیچیده‌تر مناسب می‌کند.

ماژول ESP8266 در برد یکپارچه شده است و قابلیت اتصال به شبکه بی‌سیم را فراهم می‌کند. این برد را قادر می‌سازد تا به اینترنت یا شبکه‌های وای‌فای دیگر متصل شده و ارتباط با دستگاه‌های دیگر یا کنترل از راه دور برد را فراهم کند. میکروکنترلر ESP8266 به‌طور جداگانه از ATmega2560 قابل برنامه‌ریزی است، که امکان استفاده انعطاف‌پذیرتری را مهیا می‌کند.با استفاده از ماژول Mega + WiFi R3، شما می‌توانید از اکوسیستم گسترده آردوینو استفاده کنید که شامل محیط توسعه آردوینو (Arduino IDE) و کتابخانه‌ها می‌شود، تا پروژه‌های خود را برنامه‌ریزی کنید.بطور کلی، ماژول Mega + WiFi R3 یک برد توسعه چندمنظوره است که قدرت پردازشی ATmega2560 و قابلیت اتصال بی‌سیم ESP8266 را ترکیب می‌کند. این برد برای مجموعه گسترده‌ای از پروژه‌های IoT و ارتباطی مناسب است.

 

این برد با داشتن میکروکنترلر ATmega2560 به شما امکانات بسیاری را ارائه می‌دهد. ATmega2560 دارای ۵۴ پین دیجیتال ورودی/خروجی، از جمله ۱۵ پین قابل استفاده به عنوان خروجی PWM، ۱۶ ورودی آنالوگ و ۴ سریال UART است. این ویژگی‌ها، شما را قادر می‌سازد تا با انواع سنسورها، افزونه‌ها و دستگاه‌های جانبی ارتباط برقرار کنید. این برد دارای یک ماژول ESP8266 است که به شما اتصال بی‌سیم Wi-Fi را فراهم می‌کند. با استفاده از ESP8266، می‌توانید به شبکه‌های بی‌سیم متصل شده و دسترسی به اینترنت داشته باشید. این امکان به شما این اجازه را می‌دهد که دستگاه را به عنوان یک نقطه دسترس Wi-Fi کنترل کنید، داده‌ها را به سرویس‌های ابری بفرستید یا با سایر دستگاه‌های متصل به شبکه تعامل داشته باشید.ماژول Mega + WiFi R3 با Arduino IDE سازگار است. این به شما این امکان را می‌دهد که با استفاده از زبان برنامه‌نویسی Arduino، کدهای خود را بر روی برد اجرا کنید. با استفاده از این IDE، می‌توانید به راحتی کدهای خود را توسعه داده و آن‌ها را بر روی برد بارگذاری کنید.

با اتصال به شبکه Wi-Fi، می‌توانید دستگاه Mega + WiFi R3 را به اینترنت متصل کنید و از طریق پروتکل های TCP/IP و UDP داده‌ها را ارسال و دریافت کنید. این امکان به شما اجازه می‌دهد تا با استفاده از پروتکل MQTT، ارتباط با سرویس‌های ابری مانند AWS IoT یا Azure IoT برقرار کنید و داده‌های سنسورها را بر روی پلتفرم‌های ابری ذخیره و تحلیل کنید. برد Mega + WiFi R3 با بردها و کامپوننت‌های آردوینو سازگار است. این بدان معناست که می‌توانید از بردها و ماژول‌های جانبی مختلفی مانند سنسورها، نمایشگرها، ماژول‌های ارتباطی و غیره بر روی برد استفاده کنید.

با استفاده از این افزونه‌ها، قابلیت‌ها و قدرت برد را گسترش داده و پروژه‌های متنوعی را پیاده سازی کنید.میکروکنترلر ATmega2560 با فرکانس ۱۶ مگاهرتز و حافظه فلش ۲۵۶ کیلوبایت، قدرت پردازشی بالا را برای اجرای برنامه‌های پیچیده فراهم می‌کند. این به شما امکان می‌دهد تا الگوریتم‌های پردازشی پیچیده را اجرا کرده و عملکرد بهینه را داشته باشید.برد Mega + WiFi R3 دارای رابط‌های متنوعی است که شامل پورت‌های سریال UART، SPI، I2C، PWM و GPIO است. این رابط‌ها به شما امکان می‌دهند با دستگاه‌ها و سنسورهای مختلف ارتباط برقرار کنید و به آن‌ها دسترسی داشته باشید.

از طریق برنامه‌ریزی برد Mega + WiFi R3، شما می‌توانید عملکرد دستگاه را سفارشی‌سازی کنید و وظایف خاص را اجرا کنید. با استفاده از زبان برنامه‌نویسی آردوینو، می‌توانید عملیات مختلفی را از جمله کنترل ورودی و خروجی‌ها، ارسال و دریافت داده‌ها از طریق اتصال بی‌سیم، مدیریت دستگاه‌های جانبی و بسیاری از وظایف دیگر را برنامه‌ریزی کنید.به عنوان مثال، با استفاده از برد Mega + WiFi R3 می‌توانید پروژه‌های مختلفی را انجام دهید، از جمله:

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

 

 


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


تراشه Mega2560 یکی از پرکاربردترین تراشه‌های میکروکنترلر در سری آردوینو است. این تراشه بر اساس معماری AVR توسط شرکت Atmel (که در حال حاضر به شرکت Microchip Technology تعلق دارد) تولید شده است.تراشه Mega2560 بر اساس معماری AVR (Advanced Virtual RISC) طراحی شده است. این معماری به میکروکنترلر امکانات پیشرفته، عملکرد بالا، مصرف توان کم و قابلیت‌های گسترده را می‌بخشد.تراشه Mega2560 دارای فرکانس سیستم ۱۶ مگاهرتز است که امکان اجرای سریع کدها و عملکردها را فراهم می‌کند.

تراشه Mega2560 دارای حافظه فلش با ظرفیت ۲۵۶ کیلوبایت است. این حافظه برای ذخیره کد برنامه‌ریزی و داده‌های مورد نیاز برنامه استفاده می‌شود. تراشه Mega2560 دارای ۵۴ پین دیجیتال ورودی/خروجی است که امکان ارتباط با انواع سنسورها، ماژول‌ها و دستگاه‌های جانبی را فراهم می‌کند. از این ۵۴ پین، ۱۵ پین قابل استفاده به عنوان خروجی PWM است. تراشه Mega2560 دارای ۱۶ ورودی آنالوگ است که به شما اجازه می‌دهد از سنسورهای آنالوگ مختلف برای اندازه‌گیری مقادیر فیزیکی مانند دما، نور، فشار و غیره استفاده کنید. تراشه Mega2560 دارای ۴ پورت سریال UART است که به شما امکان ارتباط با دستگاه‌های دیگر از طریق پروتکل سریال را می‌دهد.

تراشه Mega2560 دارای پورت SPI است که امکان ارتباط با دستگاه‌هایی مانند نمایشگرها، حافظه‌های فلش، سنسورها و ماژول‌های دیگر را فراهم می‌کند. تراشه Mega2560 دارای پورت I2C است که به شما اجازه می‌دهد با دستگاه‌های I2C ارتباط برقرار کنید، از جمله سنسورهای دما، فشار، شتاب‌سنج و سایر ماژول‌ها. تراشه Mega2560 دارای ۱۵ پین PWM است که به شما امکان کنترل عملکرد‌هایی مانند روشن و خاموش کردن LED‌ها، کنترل سرعت موتورها و تنظیم نورپردازی را می‌دهد.تراشه Mega2560 دارای ۱۶ کانال تبدیل آنالوگ به دیجیتال (ADC) است که به شما امکان اندازه‌گیری سیگنال‌های آنالوگ را می‌دهد.تراشه Mega2560 دارای پین‌های ورودی/خروجی عمومی (GPIO) است که می‌توانید آن‌ها را برای اتصال به دستگاه‌ها و سنسورها به‌کار ببرید و کنترل آن‌ها را برنامه‌ریزی کنید.

  • میکروکنترلر: ATmega2560
  • ولتاژ عملکرد: ۵ ولت
  • ولتاژ ورودی توصیه شده: ۷ تا ۱۲ ولت
  • پین‌های ورودی/خروجی دیجیتال: ۵۴ (از جمله ۱۵ پین PWM)
  • ورودی‌های آنالوگ: ۱۶
  • جریان DC در هر پین دیجیتال: ۲۰ میلی‌آمپر
  • جریان DC برای پین ۳٫۳ ولت: ۵۰ میلی‌آمپر
  • حافظه فلش: ۲۵۶ کیلوبایت (۸ کیلوبایت از آن برای بوتلودر استفاده می‌شود)
  • SRAM: 8 کیلوبایت
  • EEPROM: 4 کیلوبایت
  • فرکانس سیستم: ۱۶ مگاهرتز
  • رابط USB: دارد
  • رابط UART: 4 پورت سریال
  • رابط SPI: 1 پورت
  • رابط I2C: 1 پورت
  • تایمرها: ۶ تایمر ۱۶ بیتی
  • تایمر شمارنده‌ها: ۱ تایمر شمارنده ۱۶ بیتی
  • کنترل کننده USB: ATmega16U2

 


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


تراشه ESP8266 یکی از محبوب‌ترین تراشه‌ها در زمینه اتصال به شبکه بی‌سیم و اینترنت اشیا است. با وجود اندازه کوچک و قدرت پردازش قابل توجه خود، ESP8266 امکانات و قابلیت‌های بسیاری را در اختیار شما قرار می‌دهد. تراشه ESP8266 دارای یک پردازنده Tensilica Xtensa LX106 با فرکانس ۸۰ مگاهرتز است که برای اجرای برنامه‌های کاربردی در شبکه‌های بی‌سیم بسیار قدرتمند است.ESP8266 دارای حافظه فلش داخلی با ظرفیت مختلف است. نسخه‌های مختلف ESP8266 می‌توانند دارای حافظه فلش در حدود ۵۱۲ کیلوبایت تا ۱۶ مگابایت باشند. تراشه ESP8266 از استاندارد Wi-Fi 802.11 b/g/n پشتیبانی می‌کند و امکان اتصال به شبکه‌های Wi-Fi را فراهم می‌کند.

همچنین، امکانات امنیتی مانند WPA/WPA2 و WEP را نیز داراست. ESP8266 دارای رابط‌های UART، SPI و I2C است که به شما امکان ارتباط با دستگاه‌های دیگر و ارتباط با سنسورها، نمایشگرها و ماژول‌های جانبی را می‌دهد.تراشه ESP8266 دارای پین‌های ورودی/خروجی عمومی (GPIO) است که شما می‌توانید از آن‌ها برای اتصال و کنترل دستگاه‌ها و سنسورها استفاده کنید. امکان ارتباط با سرویس‌های ابری مانند MQTT و HTTP را فراهم می‌کند، که می‌توانید اطلاعات و داده‌ها را بصورت بی‌سیم با استفاده از پروتکل‌های MQTT یا HTTP به سرویس‌های ابری ارسال و دریافت کنید. این امکان به شما اجازه می‌دهد با سرورهای ابری ارتباط برقرار کرده و داده‌ها را به آن‌ها ارسال کنید و دستورات را دریافت کنید.

ADC  دارای یک تبدیل آنالوگ به دیجیتال (ADC) است که به شما امکان اندازه‌گیری سیگنال‌های آنالوگ را می‌دهد، بنابراین می‌توانید سنسورها و دستگاه‌های آنالوگ را به آن متصل کنید.برخی نسخه‌های ESP8266 همچنین دارای قابلیت بلوتوث هستند، که امکان اتصال به دستگاه‌های بلوتوثی مانند گوشی‌های هوشمند و دستگاه‌های سنسوری را فراهم می‌کند. تراشه ESP8266 با مصرف انرژی کم و قابلیت باتری‌پذیری، مناسب برای کاربردهایی است که نیاز به مصرف انرژی کمتری دارند و یا از منبع تغذیه باتری استفاده می‌کنند.تراشه ESP8266 با قدرت پردازش قابل توجه و امکانات بی‌سیم قوی خود، یک ابزار قدرتمند برای اتصال به اینترنت اشیا و پیاده‌سازی پروژه‌های اینترنت اشیا است.

  • پردازنده: Tensilica Xtensa LX106 با فرکانس ۸۰ مگاهرتز
  • حافظه فلش داخلی: مقدار مختلفی می‌تواند داشته باشد (معمولاً از ۵۱۲ کیلوبایت تا ۱۶ مگابایت)
  • حافظه SRAM: 32 کیلوبایت
  • شبکه بی‌سیم: Wi-Fi 802.11 b/g/n با قابلیت همزمانی AP و STA
  • رابط‌های ارتباطی:
    UART
    SPI
    I2C
    GPIO
  • پشتیبانی از پروتکل‌های شبکه: TCP/IP، UDP، ICMP، DHCP، DNS
  • امنیت: WPA/WPA2 PSK و WEP
  • ADC: 1 کانال تبدیل آنالوگ به دیجیتال با دقت ۱۰ بیت
  • برد بی‌سیم: تا ۱۰۰ متر در فضای باز (با توجه به شرایط محیطی و آنتن استفاده شده)
  • ولتاژ عملکرد: ۳٫۳ ولت
    جریان مصرفی:
    در حالت استندبای: کمتر از ۲۰ میلی‌آمپر
    در حالت فعال: حدود ۷۰ میلی‌آمپر

 

همانطور که مشاهده می نمایید، آردویینو مگا دارای حافظه بسیار بالا، پایه های ورودی خروجی بیشمار و تعداد مناسبی ورودی آنالوگ در کنار ۴ پورت سریال 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 اسنفاده کردید؟

  • سلام
    من ۱ عدد از این برد تهیه کردم
    از esp به عنوان سرور استفاده میکنم و فایل های html که بر روی حافظه ذخیره کردم روی مرورگر نمایش میدم
    متاسفانه این برنامه بر روی این برد بسیار کند اجرا میشه و تو ۹۰ درصد اوقات ریسپانس به مرورگر نمیده

    در صورتی که همین کدها بر روی wemos d1 r1 خیلی راحت و بدون مشکل اجرا میشه!

    لطفا اگر دلیلی برای این اتفاق میدونید راهنمایی کنید

  • سلام . یکم سخت بود ولی بالاخره موفق شدم و نتیجه کار را روی گوشی با ip ذکر شده بصورت low , high بعد از اتصال pin2 to gnd مشاهده کردم تشکر از شما بابت اموزش تون

  • سلام برد آردوینو Mega2560 با تراشه وای فای ESP8266 Nodemcu + کی پد + جامپر
    میخواستم ی سیستم حضور و غیاب درست کنم
    آیا درست کردن این سیستم پیچیده است ؟