برد ESP8266

برنامه نویسی بردهای ESP8266 با زبان LUA مناسب IoT

getting-started-with-lua-in-nodemcu-board-digispark
نوشته شده توسط معین صابری

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

 


زبان برنامه نویسی LUA


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

زبان برنامه نویسی LUA - دیجی اسپارک

 

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

 


نرم افزار Nodemcu Flasher


اولین قدم جهت برنامه نویسی برد ESP8266 با زبان LUA، آپلود SDK این زبان روی برد است. به این منظور به کمک نرم افزار Nodemcu Flasher، این SDK را روی برد منتقل می کنیم. در قدم نخست، می بایست این نرم افزار را دانلود کنیم. برای این مورد، روی این لینک کلیک کنید. با باز شدن صفحه، با تصویر صفحه گیت هاب نرم افزار مواجه خواهید شد.

نرم افزار Nodemcu Flasher - دیجی اسپارک

 

پس از ورود به صفحه گیت هاب، می بایست نرم افزار دانلود کنید. توجه داشته باشید که در این آموزش ما از سیستم عامل ویندوز استفاده می کنیم.  به منظور دانلود نرم افزار، روی گزینه code که در صفحه با رنگ سبز مشخص شده(در تصویر زیر با فلش قرمز مشخص شده) کلیک کنید.  پس از کلیک، مطابق تصویر زیر در منوی باز شده روی گزینه download as zip کلیک کرده و نرم افزار را دانلود کنید.

استفاده از نرم افزار Nodemcu Flasher - دیجی اسپارک

 

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

نصب نرم افزار Nodemcu Flasher - دیجی اسپارک

 

مطابق تصویر فوق، بسته به سیستم عامل ۳۲ و یا ۶۴، یکی از فولدرهای win32 و یا win64 را انتخاب کنید. با ورود به این فولدر، با فولدر دیگری به نام Release روبه رو می شوید. این فولدر را باز کنید. در این فولدر نرم افزار ESP8266Flasher را کلیک کرده و باز کنید.

راه اندازی نرم افزار Nodemcu Flasher - دیجی اسپارک

 


فلش کردن SDK لوا روی برد 


پس از دانلود نرم افزار Nodemcu Flasher، برد خود را به رایانه متصل کنید. ما در اینجا از برد NODEMCU استفاده می کنیم. با اتصال به رایانه، در منوی Operation نرم افزار، پورت تخصیص یافته را مشاهده خواهید کرد.

فلش کردن SDK لوا روی برد Nodemcu - دیجی اسپارک

 

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

 


نرم افزار LuaLoader


پس از آپلود SDK زبان LUA، نوبت به ابزار انتقال برنامه می رسد. این ابزار که با نام نرم افزاری Lua Loader شناخته می شود یک محیط برنامه نویسی به زبان LUA برای برد ESP8266 است. این نرم افزار دارای امکانات فراوان و مثال های برنامه نویسی است. به منظور دانلود این نرم افزار، ابتدا روی این لینک کلیک کنید.  با کلیک بر روی این لینک، وارد صفحه گیت هاب نرم افزار می شوید. مشابه دانلود نرم افزار Nodemcu Flasher، بر روی گزینه code و سپس download as zip کلیک کرده تا نرم افزار دانلود گردد.

نرم افزار LuaLoader - دیجی اسپارک

 

 پس از دانلود نرم افزار، می بایست آن را از حالت فشرده خارج کنید. پس از unzip شدن و ورود به دایرکتوری، فولدر با نام version0.9 را کلیک کرده و باز کنید. در این فولدر روی نرم افزار LuaLoader کلیک کرده و آن را اجرا کنید. با اجرای این نرم افزار با محیط آن به شکل زیر رو به رو خواهید شد.

راه اندازی نرم افزار LuaLoader - دیجی اسپارک

 

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

 


قابلیت های نرم افزار Lua Loader


نرم افزار LuaLoader امکانات جانبی بسیاری را بدون نیاز به برنامه نویسی فراهم می کند.  در ابتدا به کمک منوی زیر می توانید شماره GPIO و وضعیت ورودی و خروجی آن را تعیین کنید.

قابلیت های نرم افزار Lua Loader - دیجی اسپارک

 

 مطابق تصویر فوق، در قسمت ۳GPIO0 تنها یک عدد، به عنوان مثال ۵ بنویسید. این منو شماره GPIO را تعیین می کند. منوی Input وضعیت ورودی و خروجی را تعیین می کند. منوی Floating وضعیت پایه به صورت شناور، پول آپ یا پول داون را تعیین می کند. گزینه SET وضعیت پایه به صورت ورودی/خروجی را مشخص خواهد کرد. همچنین گزینه Read وضعیت پایه را خوانده و اعداد ۰ و ۱ در خروجی مقدار متناظر با پایه را خواهند نوشت. آیکون ساعت نیز به صورت زمانبندی شما اقدام به خواندن و یا نوشتن مقدار در پایه خواهد نمود. در کنار این، منوی های زیر نیز نقش مهمی در اجرا ایفا می کنند.

  • Heap: مقدار حافظه هیپ در صفحه نرم افزار چاپ می گردد.
  • chipID: این گزینه ID چیپ را در خروجی نمایش می دهد.
  • Restart: این گزینه برد را مجددا راه اندازی خواهد نمود.
  • tmr.stop: این گزینه تایمر جهت خواندن ورودی و ایجاد خروجی را متوقف می کند.

در ادامه نیز، به سایر منوها می پردازیم. این منوها وضعیت شبکه را تعیین می کند. به تصویر زیر دقت کنید.

منوهای نرم افزار Lua Loader - دیجی اسپارک

 

در تصویر فوق، مطابق جدول زیر منوها عملکرد دارند.

عملکرد منو
در این قسمت نام SSID مودمی که برد قرار به اتصال آن دارد، تعیین می شود. SSID
در این قسمت رمز عبور مودمی که برد قرار به اتصال آن دارد، تعیین می شود. PASSWORD
به کمک این منو برد به مودم متصل می شود. setAP
این منو لیست AP های موجود در محیط را نمایش می دهد. survey
نمایش آی پی دریافت شده از مودم GET IP
قطع اتصال مودم Disconnect

 

درون نرم افزار LuaLoader تعدادی مثال وجود دارد. با کلیک بر روی گزینه type file و یافتن فولدر examples، می توانید این برنامه ها را روی برد اجرا کنید.

 


اتصال نرم افزار به برد


جهت آپلود برنامه ها روی برد، نیاز است تا برد به نرم افزار متصل شود. پیش از هرچیز از نصب درایور مبدل سریال به USB مطمئن شوید. برای اتصال برد به نرم افزار، روی Tools و سپس گزینه  Com Port Setting را انتخاب کنید. با انتخاب این مورد، منوی زیر را خواهید دید.

اتصال نرم افزار به برد Nodemcu - دیجی اسپارک

 

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

 


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


 انواع برد ESP8266

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۸ دیدگاه

  • با سلام امیدوارم حالتون خوب باشه من یه ماژول وای فای WeMos model d1 R2 دارم میخواستم باهاش با کد های باینری جمر وای فای درست کنم ولی متاسفانه فایلی که برای خودش باشه پیدا نکردم لطفا راهنماییم کنید ممنون

  • سلام، مطلب عالی بود، من با زبان لوا برای ویندوز برنامه های حجم بالا و سنگینی رو نوشتم و کاملا تسلط به این زبان دارم، در زبان آموزشی شما آیا فانشن ها و حلقه ها و متغییر ها شباهت به همون لوا ویندوز دارند؟
    سوال بعد لطفا بگید در صورتی برد رو دوباره با آردینو برنامه نویسی کنم چیکار باید کنم؟

    • سلام و ممنونم از شما
      بله دقیقا سینتکس همان است. پس از برنامه نویسی با اردوینو،sdk تغییر میکند. در این حالت همانند این آموزش باید sdk لوا را نصب کنید