بردهای پردازشی/ارتباطی ESP8266 چند سالیست که با ورودشان به بازار، نقش مهمی را در اجرای پروژه های IOT ایفا می کنند. این بردها قابلیت ایجاد یک شبکه محلی وای فای و برقراری ارتباط بی سیم را دارند. در کنار این، بدون نیاز به هیچ میکروکنترلر اضافه، می توانید این بردها ار پروگرام نمایید. برای پروگرام کردن این بردها، کیت های توسعه نرم افزاری(SDK) بسیاری وجود دارند. یکی از مهم ترنی نوع این کیت ها، آردوینو است. پیشتر در سلسله آموزشی، به راه اندازی و کار با این ماژول تحت پلتفرم آردوینو پرداخته ایم. این سلسه آموزش با کلیک بر روی این لینک قابل دسترسی است. در این آموزش اما قصد داریم به کمک زبان برنامه نویسی LUA، به پروگرام کردن این برد بپردازیم. در ادامه این آموزش، با مرجع تخصصی ESP8266 به زبان فارسی، دیجی اسپارک، همراه باشید.
زبان برنامه نویسی LUA
زبان برنامه نویسی LUA، یک زبان برنامه نویسی اسکریپتی است. این زبان که کاربردهای مختلفی نظیر بازی سازی دارد، در میکروکنترلرها نیز قابل استفاده است. این زبان که ساختاری شبه به زبان برنامه نویسی پایتون دارد، می تواند در بسیاری از پروژه ها مورد استفاده واقع گردد.
به کمک کیت توسعه نرم افزاری لوا برای برد NODEMCU، ما می توانیم این برد را به کمک این زبان نیز برنامه نویسی نماییم. به همین جهت نیاز است تا ابزارهای مخصوص این کار را در رایانه خود داشته باشیم. در قسمت بعدی به این موضوع می پردازیم.
نرم افزار Nodemcu Flasher
اولین قدم جهت برنامه نویسی برد ESP8266 با زبان LUA، آپلود SDK این زبان روی برد است. به این منظور به کمک نرم افزار Nodemcu Flasher، این SDK را روی برد منتقل می کنیم. در قدم نخست، می بایست این نرم افزار را دانلود کنیم. برای این مورد، روی این لینک کلیک کنید. با باز شدن صفحه، با تصویر صفحه گیت هاب نرم افزار مواجه خواهید شد.
پس از ورود به صفحه گیت هاب، می بایست نرم افزار دانلود کنید. توجه داشته باشید که در این آموزش ما از سیستم عامل ویندوز استفاده می کنیم. به منظور دانلود نرم افزار، روی گزینه code که در صفحه با رنگ سبز مشخص شده(در تصویر زیر با فلش قرمز مشخص شده) کلیک کنید. پس از کلیک، مطابق تصویر زیر در منوی باز شده روی گزینه download as zip کلیک کرده و نرم افزار را دانلود کنید.
پس از دانلود، فایل ZIP را از حالت فشرده با کلیک بر روی گزینه extract here خارج کنید. در این حالت با باز کردن فولدر، با تصویر زیر مواجه خواهید شد.
مطابق تصویر فوق، بسته به سیستم عامل ۳۲ و یا ۶۴، یکی از فولدرهای win32 و یا win64 را انتخاب کنید. با ورود به این فولدر، با فولدر دیگری به نام Release روبه رو می شوید. این فولدر را باز کنید. در این فولدر نرم افزار ESP8266Flasher را کلیک کرده و باز کنید.
فلش کردن SDK لوا روی برد
پس از دانلود نرم افزار Nodemcu Flasher، برد خود را به رایانه متصل کنید. ما در اینجا از برد NODEMCU استفاده می کنیم. با اتصال به رایانه، در منوی Operation نرم افزار، پورت تخصیص یافته را مشاهده خواهید کرد.
در اینجا نیز جهت آپلود SDK زبان LUA، کافیست روی گزینه FLASH(در منوی OPERATION) کلیک کنید. پس از چند لحظه با پر شدن خط، کار آپلود SDK به اتمام می رسد. پس از این مرحله، برد آماده برنامه نویسی با زبان LUA است. به این منظور نیاز است تا نرم افزار انتقال برنامه های لوا به برد را دانلود و نصب کنیم. قسمت بعد مربوط به این موضوع است.
نرم افزار LuaLoader
پس از آپلود SDK زبان LUA، نوبت به ابزار انتقال برنامه می رسد. این ابزار که با نام نرم افزاری Lua Loader شناخته می شود یک محیط برنامه نویسی به زبان LUA برای برد ESP8266 است. این نرم افزار دارای امکانات فراوان و مثال های برنامه نویسی است. به منظور دانلود این نرم افزار، ابتدا روی این لینک کلیک کنید. با کلیک بر روی این لینک، وارد صفحه گیت هاب نرم افزار می شوید. مشابه دانلود نرم افزار Nodemcu Flasher، بر روی گزینه code و سپس download as zip کلیک کرده تا نرم افزار دانلود گردد.
پس از دانلود نرم افزار، می بایست آن را از حالت فشرده خارج کنید. پس از unzip شدن و ورود به دایرکتوری، فولدر با نام version0.9 را کلیک کرده و باز کنید. در این فولدر روی نرم افزار LuaLoader کلیک کرده و آن را اجرا کنید. با اجرای این نرم افزار با محیط آن به شکل زیر رو به رو خواهید شد.
این نرم افزار دارای امکانات بی شماری است. به عنوان مثال در این نرم افزار امکاناتی تعبیه شده که بدون نیاز به برنامه نویسی و تنها با کلیک بر روی گزینه ها، می توان به اجرای قابلیت ها پرداخت. در قسمت بعدی به این قابلیت ها خواهیم پرداخت.
قابلیت های نرم افزار Lua Loader
نرم افزار LuaLoader امکانات جانبی بسیاری را بدون نیاز به برنامه نویسی فراهم می کند. در ابتدا به کمک منوی زیر می توانید شماره GPIO و وضعیت ورودی و خروجی آن را تعیین کنید.
مطابق تصویر فوق، در قسمت ۳GPIO0 تنها یک عدد، به عنوان مثال ۵ بنویسید. این منو شماره GPIO را تعیین می کند. منوی Input وضعیت ورودی و خروجی را تعیین می کند. منوی Floating وضعیت پایه به صورت شناور، پول آپ یا پول داون را تعیین می کند. گزینه SET وضعیت پایه به صورت ورودی/خروجی را مشخص خواهد کرد. همچنین گزینه Read وضعیت پایه را خوانده و اعداد ۰ و ۱ در خروجی مقدار متناظر با پایه را خواهند نوشت. آیکون ساعت نیز به صورت زمانبندی شما اقدام به خواندن و یا نوشتن مقدار در پایه خواهد نمود. در کنار این، منوی های زیر نیز نقش مهمی در اجرا ایفا می کنند.
- Heap: مقدار حافظه هیپ در صفحه نرم افزار چاپ می گردد.
- chipID: این گزینه ID چیپ را در خروجی نمایش می دهد.
- Restart: این گزینه برد را مجددا راه اندازی خواهد نمود.
- tmr.stop: این گزینه تایمر جهت خواندن ورودی و ایجاد خروجی را متوقف می کند.
در ادامه نیز، به سایر منوها می پردازیم. این منوها وضعیت شبکه را تعیین می کند. به تصویر زیر دقت کنید.
در تصویر فوق، مطابق جدول زیر منوها عملکرد دارند.
عملکرد | منو |
در این قسمت نام SSID مودمی که برد قرار به اتصال آن دارد، تعیین می شود. | SSID |
در این قسمت رمز عبور مودمی که برد قرار به اتصال آن دارد، تعیین می شود. | PASSWORD |
به کمک این منو برد به مودم متصل می شود. | setAP |
این منو لیست AP های موجود در محیط را نمایش می دهد. | survey |
نمایش آی پی دریافت شده از مودم | GET IP |
قطع اتصال مودم | Disconnect |
درون نرم افزار LuaLoader تعدادی مثال وجود دارد. با کلیک بر روی گزینه type file و یافتن فولدر examples، می توانید این برنامه ها را روی برد اجرا کنید.
اتصال نرم افزار به برد
جهت آپلود برنامه ها روی برد، نیاز است تا برد به نرم افزار متصل شود. پیش از هرچیز از نصب درایور مبدل سریال به USB مطمئن شوید. برای اتصال برد به نرم افزار، روی Tools و سپس گزینه Com Port Setting را انتخاب کنید. با انتخاب این مورد، منوی زیر را خواهید دید.
در منوی پورت، پورتی که رایانه به مبدل سریال برد اختصاص داده را تعیین کنید. در صورتیکه پورت را مشاهده نمی کنید، یکبار نرم افزار را ببندید، برد را از اتصال خارج کنیدو مجددا برد متصل کنید. سپس نرم افزار را اجرا و پورت را انتخاب کنید. پس از انتخاب تنظیمات OK را بزنید تا پورت انتخاب شود. پس از این مرحله، در منوی اصلی نرم افزار، روی گزینه Connect کلیک کنید تا ارتباط با برد برقرار شود. پس از اتصال، می توانید گزینه های مد نظر را انتخاب و برنامه ها را روی برد اجرا کنید.
لوازم مورد نیاز
جمع بندی
در این آموزش به بررسی یکی از زبان های خاص مخصوص برنامه نویسی برد ESP8266 پرداختیم. زبان برنامه نویسی LUA که در سخت افزار کمتر مورد استفاده قرار می گیرد، قابلیت پروگرام بردهای ESP8266 را دارد. به این منظور کیت توسعه نرم افزاری مخصوص(SDK) این برد توسعه یافته است. در این آموزش به بررسی این موضوع پرداختیم. در ابتدا مختصری در رابطه با زبان LUA صحبت شد. پس از آن دانلود ابزار مخصوص انتقال SDK به برد را مورد بررسی قرار دادیم. در نهایت به نرم افزار مخصوص انتقال برنامه به برد پرداختیم.
چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده وجود دارد میتوانید از همین طریق اطلاع رسانی کنید.
با سلام امیدوارم حالتون خوب باشه من یه ماژول وای فای WeMos model d1 R2 دارم میخواستم باهاش با کد های باینری جمر وای فای درست کنم ولی متاسفانه فایلی که برای خودش باشه پیدا نکردم لطفا راهنماییم کنید ممنون
سلام
اطلاعی در این زمینه ندارم.
سلام، مطلب عالی بود، من با زبان لوا برای ویندوز برنامه های حجم بالا و سنگینی رو نوشتم و کاملا تسلط به این زبان دارم، در زبان آموزشی شما آیا فانشن ها و حلقه ها و متغییر ها شباهت به همون لوا ویندوز دارند؟
سوال بعد لطفا بگید در صورتی برد رو دوباره با آردینو برنامه نویسی کنم چیکار باید کنم؟
سلام و ممنونم از شما
بله دقیقا سینتکس همان است. پس از برنامه نویسی با اردوینو،sdk تغییر میکند. در این حالت همانند این آموزش باید sdk لوا را نصب کنید
سلام خیلی مطالب برایم تازگی داشت
ممنون از شما
سلام
متشکرم
سلام و خدا قوت عالی ممنون که هستید
متشکرم از لطف شما
با سلام و خسته نباشید ببخشید آیا میتوان همین دستورالعمل ها را بر روی برد esp32-c3 نیز انجام داد
با سلام و خسته نباشید و تشکر از آموزش خوب شما . آیا میتوانیم با همین روشها که اینجا اموزش دادید برای برد esp32 هم برنامه نویسی کنم و کتابخانه ها و مستندات این زبان را از کجا میتوانم پیدا کنم .
با سلام
خیر نیازی به کمی تغییرات خواهید داشت.