اینترنت اشیا IOT برد Nodemcu خانه هوشمند نرم افزار

آشنایی با Lua زبان برنامه نویسی اینترنت اشیاء IOT

اینترنت اشیاء IOT با Lua
نوشته شده توسط اروند طباطبایی

اینترنت اشیاء این روزها به واقعیتی فراتر از باور تبدیل شده است و سرعت رشد آن هم بسیار فراتر از تصور ماست. بوجود آمدن زیرساخت‌های سخت افزاری مانند انواع ماژول‌ها و بردهای امبدد از جمله آردوینو Arduino و رزبری پای Raspberry Pi در کنار افزایش پهنای باند اینترنت و سرعت برق و باد آن، همگی باعث شده تا شرایط برای رشد اینترنت چیزها یا اینترنت اشیاء IOT محیا شود. البته در رشد این نوزاد نوپا IOT مسایل دیگری از جمله زبان‌های برنامه نویسی سطح بالا مانند Lua و Node Red بسیار سهیم بوده‌اند.

 

Lua چیست؟

قبل از هرچیز با فرض اینکه شما میدانید که زبان برنامه نویسی چیست، شروع میکنیم. اگر بخواهیم زبان برنامه نویسی Lua را توصیف کنیم، یک زبان قدرتمند، سبک، کارا و مخصوص امبدد سیستم‌ها Embedded Systems میباشد. چرا امبدد سیستم‌ها؟ به این دلیل که زبان برنامه نویسی Lua از روش برنامه نویسی رویه‌ای یا procedural programming پشتیبانی می‌کند. از روش برنامه نویسی شیئ گرا یا object-oriented programming و همچنین از روش برنامه نویسی تابعی یا functional programming و حتی از روش برنامه نویسی مبتنی بر داده یا data-driven programming هم پشتیانی می‌کند.

 

واژه Lua به چه معناست؟

شیوه تلفظ این کلمه به صورت لوو آآآ Loo-ah میباشد. در زبان پرتغالی به معنی ماه میشود. از آنجایی که Lua یک اسم تلقی میشود پس همیشه با حرف اول بزرگ نوشته خواهد شد. اسم ماه زمین و اسم زبان برنامه نویسی! تیم محقیقن در دانشگاه PUC-Rio در برزیل که ابداع کننده این زبان برنامه نویسی برای اینترنت اشیاء IOT بوده‌اند بر این نکته تاکید کرده اند که شیوه نوشتاری آن به صورت Lua باشد نه به صورت LUA چرا که خودشون دوست نداشته اند! پس لطفا شما هم Lua بنویسید.

 

زبان برنامه نویسی Lua پایدار و تنومند است

زبان برنامه نویسی Lua که امروزه در اینترنت اشیاء یا IOT و باز یا اینترنت اشیاء استفاده میشود؛ در بسیاری از رابط‌های صنعتی هم استفاده شده است. البته نه این که صرفا مصرف صنعتی داشته باشد چرا که در برخی از قسمت‌های نرم افزار معروف Adobe Photoshop هم استفاده شده است. در کل تاکید زبان برنامه نویس Lua تاکید بر امبدد سیستم‌ها Embedded Systems دارد. زبان برنامه نویسی Lua از بازی‌های رایانه‌ای هم سر در آورده، کدام بازی؟ همون انگری برد معروف از این زبان استفاده کرده است. نکته جالب راجع به Lua اینه که تازه در سال ۱۹۹۳ متولد شده است و تا به امروز بسیار پیشرفت کرده و نسخه‌های زیادی از آن منتشر شده است. در سال ۲۰۰۱ این زبان برنامه نویسی جایزه Front Line Award 2011 را از مجله توسعه دهندگان بازی دریافت کرد.

 

زبان Lua به اندازه کافی سریع هم هست

مهم‌ترین علت شهرت زبان Lua بخاطر کارایی آن است. آنطور که گفته شده است، سرعت دیگر زبان‌های برنامه نویسی را با سرعت Lua میسنجند. بنچ مارک‌های بسیاری درباره زبان Lua وجود دارد که معمولا به عنوان سریع ترین در حوزه اسکریپت امبددها ذکر شده است. یک کامپایر سریع‌تر برای Lua توسعه داده شده است به نام LuaJIT که یک کامپایلر just-in-time میباشد. زبان Lua از سینتکس بسیار ساده و در عین حال ساختار توصیف داده بسیار ساده بهره می‌برد که بر اساس آرایه‌های داینامیک و زبان توصیفی می‌باشد.

 

Lua قابلیت ترابرد پذیری دارد

از آنجایی که از یک کامپایر استاندارد C استفاده می‌کند، قابلیت تبدیل و یا ترابرد پذیری به کلیه Unix ها و Windows و حتی موبایل‌ها از جمله اندروید، IOS, BREW, Symbian و Windows Phone را دارد. زبان برنامه نویسی Lua در امبددها Embedded از جمله پردازنده‌های ARM و یا Rabbit قابل اجراست و اپلیکیشن‌های مبتنی بر امبدد سیستم‌ها را میتواند راه اندازی کند. از آنجایی که هسته Lua از کمترین دیتا استاتیک استفاده میکند، برای امبددها و خصوصا اینترنت اشیاء IOT مناسب است. چرا که اینترنت اشیاء IOT بر بستر امبدد سیستم‌ها به سادگی قابل اجراست.

زبان Lua بسیار سریع و دارای حجم کم است و این‌ها در کنار وجود داشتن API های متنوع و کتابخانه‌های متنوع برای تبادل کد با دیگر زبان‌ها باعث شده که انتخاب مناسبی در امبدد سیستم‌ها باشد. اینترنت اشیاء IOT همانطور که پیش‌تر گفتم بر بستر امبدد سیستم‌ها از جمله آردوینو Arduino، رزبری پای Raspberry Pi و دیگر بردها از جمله اورنج پای و اودروید و … به سادگی قابل اجراست.

 

Node MCU راهکاری مدرن و روبه پیشرفت

از جمله ماژول‌های پر کاربرد در زمینه اینترنت اشیاء IOT ماژول‌های ارسال و دریافت داده است که میتوان به ESP8266 اشاره کرد. به تازگی ماژول Node MCU که بر پایه ESP8266 طراحی شده است بسیار مورد استقبال قرار گرفته است. این ماژول توانایی کامپایل کردن کدهای آردوینو را دارد. همچنین زبان Lua یک انتخاب مناسب برای استفاده در این ماژول است. Node MCU دارای مدل‌های مختلفی است که معمولا بر اساس حافظه داخلی متفاوت میباشند. دو مدل با ۴ مگابایت و ۵۱۲ کیلوبایت حافظه داخلی در بازار ایران موجود می‌باشند و قیمتی بین ۱۸ تا ۲۹ هزار تومان میباشد.

ماژول Node MCU دارای ۳۰ پایه می‌باشد و به طور کلی از ارتباط UART و SPI و I2C بهره می‌برد. از طریق یک کابل USB با همان نرم افزار آردوینو قابل برنامه ریزی و اجرا کردن کدهای آردوینو Arduino میباشد.

 

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

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

۱۳ دیدگاه

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

    • با سلام
      ضمن تشکر از توجه شما، بله هیچ محدودیتی نداریم. ولی نکته مهم در مبحث اینترنت اشیاء سبک بودن و کم حجم بودن برنامه و در عین حال سرعت پاسخ گویی مناسب آن می‌باشد.

      • آیا بهترین زبان برنامه نویس در اینترنت اشیا زبان Lau می باشد اگر امکان دارد منبع اموزشی این زبان را معرفی بفرمائید باتشکر

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

        • با سلام
          انتخاب زبان برنامه نویسی بستگی به چند عامل مختلف دارد. بله پایتون هم گزینه مناسبی می‌باشد. ولی در کل با توجه به نیازمندی پروژه بایستی برنامه مربوطه انتخاب شود.

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

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

  • سلام
    با جستجو در گوگل به دو نوع از برد nodeMCU با چیپ cp2102 برخورد کردم
    دربعضی از فروشندگان amazon و eBay نام برد “nodeMCU CP2102” بود و در بعضی پسوند lua داشت، به این صورت “nodeMCU cp2102 lua”.
    حالا سوالی که برام پیش اومده اینه که آیا اینها باهم فرق دارند؟ و اگر متفاوت هستند، تفاوت در چیست؟
    شکل ظاهری و تمام قطعات موجود روی هر دو مورد رو نگاه کردم و کاملا یکسان بود.
    اما تفاوت در نام آنها برام سواله؟!!
    ممنون میشم یک توضیحی بفرمایید.
    با تشکر

    • با سلام
      بنده در خصوص کالاهای سایت‌ها اطلاعی ندارم و بایست از همان فروشگاه راجع به این مورد سوال کنید. نکته‌ی بعدی هم اینکه، مگر شما از این سایت‌ها خرید میکنید؟ که در آن به دنبال برد Nodemcu هستید؟!!