مقاله های سیسوگ, پروژه آردوینو, توصیه شده

OTA چیست؟ و راه‌اندازی آن با NodeMcu

راه‌اندازی OTA با NodeMcu

تقریبا می‌توان که همه ما با گوشی های هوشمند از جمله سامسونگ و اپل و … کار کرده‌ایم اگر دقت کنید گاهی از اوقات شرکت سازنده یک Notification با مضمون Software Update را برای ارسال کرده است که اگر روی آن کلیک کنید شما را به بخش تنظیمات هدایت می‌کند و در نهایت از شما جهت آپدیت دستگاه اجازه می‌خواهد که اگر این اجازه داده شود سیستم به طور خودکار ورژن جدید اندروید را برای گوشی‌های سامسونگ و ورژن جدید IOS را برای گوشی‌های اپل و بقیه سیستم‌عامل ها را برای گوشی خاص خود آن سیستم عامل، نصب می‌کند. حال سوالاتی که ممکن است برای علاقه‌مندان در این حوزه پیش بیاید به احتمال قریب به یقین شامل موارد زیر هستند.

  • OTA چیست؟
  • پروتکل ارتباطی چیست؟
  • آیا بودن اینترنت ضروری است؟
  • آیا می‌توان از این تکنولوژی در سیستم‌های الکترونیک خود استفاده کنیم؟ اگر می‌توان به چه صورتی باید این کار را انجام دهیم؟

.

.

.

در این مقاله می‌خواهیم به این سوالات پاسخ دهیم و در نهایت یک مثال کاملا عملی بعنوان یکی از پروژه های آردوینو  NodeMcu برای درک بهتر مبحث پیاده سازی کنیم.

 

OTA چیست؟

OTA مخفف Over-The-Air است.
تمام عمليات بي سيمي که در شبکه بدون استفاده از کابل انجام شود را OTA می‌گويند. اگر اين امکان براي بروز رساني نرم افزار پايه اي گوشي استفاده شود ، (FOTA (Firmware Over-The-Air نيز خوانده مي شود.

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

پروتکل ارتباطی چیست؟

پروتکلی که در این سری از ارتباطات استفاده می‌شود پروتکل سریال است که به صورت یک پکت‌های دیتایی که تعیین می‌کنیم و در نهایت توسط IP موردنظر دیتا را ارسال می‌کنیم و در صورتی که دیتا موردنظر به درستی ارسال شود و هیچ مشکلی در روند ارسال وجود نداشته باشد سیستم نیز به شما اصطلاحا ACK ارسال می‌کند به این معنی که دیتا به درستی تحویل داده شده است.

آیا بودن اینترنت ضروری است؟

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

آیا می‌توان از این تکنولوژی در سیستم‌های الکترونیکی خود استفاده کنیم؟ اگر می‌توان به چه صورتی باید این کار را انجام دهیم؟

بله این کار کاملا شدنی است و می‌خواهیم در ادامه به راه‌اندازی این سیستم با NodeMcu بپردازیم.

راه‌اندازی OTA  با NodeMcue

خب پس از اینکه یک آشنایی نسبی با این تکنولوژی پیدا کردیم نیاز است که برای درک بهتر آن را راه‌اندازی کنیم. برای راه‌اندازی این سیستم نیاز است که ابتدا مراحل زیر را انجام دهیم.

تهیه NodeMcu

نصب Arduino IDE

نصب کتابخانه NodeMcu  

برنامه نویسی NodeMcu در محیط آردوینو

 

نصب کتابخانه NodeMcu

برای نصب کتابخانه NodeMcu ابتدا عبارت ” nodemcu arduino library ” را سرچ می‌کنیم و اولین لینکی که وجود دارد را باز می‌کنیم که مربوط به سایت Github می‌باشد.

 

OTA چیست؟

 

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

OTA چیست؟

 

نصب کتابخانه NodeMcu

نصب کتابخانه NodeMcu

 

حال باید به صورت شکل زیر عمل کنیم.

نصب کتابخانه NodeMcu

نصب کتابخانه NodeMcu

خب حالا نوبت به چک کردن این موضوع رسیده است که آیا کتابخانه هایی که مدنظر ما بوده است نصب شده‌اند یا خیر؟

نصب کتابخانه NodeMcu

بله همانطوری که مشاهد کردید کتابخانه‌هایی که مدنظر ما بوده است نصب شده اند.

خب حالا نوبت به بخش برنامه‌نویسی ماژول رسیده است.

 

برنامه نویسی NodeMcu در محیط آردوینو

برای این کار ابتدا باید به شکل زیر عمل کنیم.

نصب کتابخانه OTA

نصب کتابخانه OTA

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

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

خب پس از اینکه موفق شدید برنامه را درون NodeMcu موردنظر آپلود کنید باید در سریال مانیتور خود یک IP محلی مشاهد کنید مطابق تصویری که در ادامه قرار می‌دهیم.

نصب OTA

اگر به این مرحله رسیدیم یعنی اینکه تا الان ما یک IP محلی را برای دستگاه خود اختصاص دادیم و از این به بعد برای اینکه بتوانیم با این دیوایس صحبت کنیم نیاز است که فقط با این IP اتصال برقرار کنیم تا این قسمت کار ما تمام شده است.

حال می‌خواهیم برنامه چشمک زن را روی دیوایس مربوطه آپلود کنیم البته بدون سیم و در نهایت ببینیم که آیا دیوایس موردنظر کار می‌کند یا خیر؟ نظر شما چیست؟

 

برای این کار ابتدا NodeMcu خود را به یک پاور مجزای دیگر متصل می‌کنیم و در نهایت  کد چشمک زن زیر را در IDE آردوینو می‌نویسیم و سپس برای آپلود کد به صورت تصویر زیر عمل می‌کنیم.

برای آپلود کردن کد هم باید به صورت زیر عمل کنیم.

پروژه OTA با آردوینو

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

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

 

امیدوارم که این آموزش هم برای شما مخاطبین سیسوگی مفید واقع شده باشد.

 

 

 

 

author-avatar

درباره BLO OM

«السَّلَامُ عَلَیْکَ یَا أَبَا عَبْدِ اللَّهِ، السَّلَامُ عَلَیْکَ وَ رَحْمَهُ اللَّهِ وَ بَرَکَاتُهُ».

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

23 دیدگاه در “OTA چیست؟ و راه‌اندازی آن با NodeMcu

  1. Avatar for حانی حانی گفت:

    سلام ایا این برنامه میتواند دوربین و صدا را کنترل کند
    لطفا سریع پاسخ دهید ممنون

  2. Avatar for Daniel Daniel گفت:

    سلام خب ما الان دستگاه رو ip داشتیم حالا اگه تو فضای محصول انبوه و فرش چی میشه ؟

  3. Avatar for وهاب وهاب گفت:

    ممنون از مطلب خوبتون…
    جناب Zeus کتابخانه ای برای stm32 در این رابطه موجود نیست؟
    لطفا اگر امکان داره منبعی برای آموزش ota در میکروهای arm معرفی کنید.

    1. Avatar for Zeus Zeus گفت:

      سلام
      والا برای آپدیت از راه دور کتایبخانه دیدم ولی پولی بودن
      خودم حدود ۷ سال پیش پیاده سازی کردم این مورد رو باید تایم بذارم و منتشر کنم فقط
      مساله واقعا زمانه

  4. Avatar for علیرضا علیرضا گفت:

    سلام ، تشکر از اموزش خوبتان
    من همه مراحل را اجرا کردم و برنامه به خوبی روی ESP32 ریخته میشود ولی مشکلی که هست اسم میکرو توی منوی PORT نمیاید و توی منوی SERIAL PORT فقط COM5 رو میتونم ببینم
    مشکل از کجاست ؟

  5. Avatar for یزدخواستی یزدخواستی گفت:

    سلام آیا nodemcu در کدویژن کتابخانه دارد؟ آیا می شود OTA رو در سیستم های مبتنی بر AVR پیاده کرد و اینکه من با کدویژن کار میکنم آیا سوئیچ کنم روی آردینو ؟

    1. Avatar for zeus zeus گفت:

      سوالتون گنگه !
      اگر منظورتون اینه که برای esp میشه با کدویژن برنامه نوشت – باید بگم خیر نمیشه
      اگر میخواید بدونید که میتونید با avr بوت لودری بنویسید که با استفاده از nodemcu بتونید ای وی آر رو آپدیت کنید بله میشه

  6. Avatar for محمد حسین محمد حسین گفت:

    سلام من یه دستگاه دیجیتال دارم که از ota پشتیبانی میکنه . آیا میشه با لپتاپ از طریق ota به روزرسانیش کنم ؟

  7. Avatar for Cihangir sakan Cihangir sakan گفت:

    بروزرسانی

  8. Avatar for مروارید درخشان مروارید درخشان گفت:

    ممنون از مقاله خوبتان . مثال جهت رفع مشکل : آپدیت سیستمی miui 12 برای من آمد ولی توسط دیتا همراه آپلود نشد . سپس توسط هات اسپات گوشی دیگر آپلود کردم و انجام شد . اما : در بخش آپلود پک بصورت کامل آپلود نشده بود و برنامه های جدید اینترفیس یا نرم افزاری کمپانی را رد کرده بود . موفقیت آمیز نبود . دلیل چه میتواند باشد .؟

  9. Avatar for محمد حسین رحیمی محمد حسین رحیمی گفت:

    با سلام.
    آموزش جالبی بود.!
    فقط ی چیزی که میمونه اینه که ما میخواهیم این پروتکل رو توی ی محصولی بزاریم.
    حالا ی سوال:
    این محصول ما توی سراسر ایران پخش شده.
    حالا ما چجوری همه اینارو بدون نیاز به اینکه به ی وایفای وصل باشم(ینی وسیله ای که ما میخواهیم با اون محصول رو آپدیت کنیم و خود محصول به ی اینترنت محلی وصل باشد) آپدیت کنیم؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      مثلا میتونید از گوشی و نرم افزار اندریدی استفاده کنید – حالا سناریو های مختلفی میشه تعریف کرد – مثلا وقتی نرم افزار آپدیتر رو باز میکنید گوشی رو هات اسپات کنه با یه اسم خاص و دستگاها همیشه سعی کنند به اون اسم کانکت بشن اگه بود و آپدیت بشن
      و یا هر سناریوی دیگری

  10. Avatar for mohmmadreza mohmmadreza گفت:

    با سلام ممنون بابت آموزش خوبتان
    یک سوال تخصص داشتم من تطبیق مراحل پیش رفت: ip اختصاص یافته هم دقیقا همانی است که روی پورت سریال نمایش داده شده
    برای آپلود برنامه جدید به صورت ota پسورد هم در ابتدای اپلود پرسیده می شود اتفاقا و سپس مرحله اپلود شروع می شود اما هنگام استارت ابتدا. PROGRESS:0% توی سریال مانیتور روی پورت خود ESP نمایش می دهد ولی چند ثانیه ERROR]2[: CONNECT FAILED
    ERROR[4]:END FAILED ظاهر می گردد و مجددا از من پسورد می خواهد در نهایت برنامه اپلود. نمی گردد

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      دو تا حالت کلی وجود داره اول این که نوع ماژول esp درست انتخاب نشده باشه و دوم استیبل نبودن لینک wifi یا ضعیف بودن اون لینکه

      البته همیشه قبل از هر اقدامی از صحت تغزبه مدار مطمپن بشید.

      1. Avatar for mohmmadreza mohmmadreza گفت:

        نه تمام این مواردی که فرمودید اوکی اوکی بود ولی تستی که کردم مجددا با رزبین بدون مشکل موفق شدم اپلود کنم ولی با pc خیر

        1. Avatar for زئوس Zeus زئوس Zeus گفت:

          سلام خوب اگر با رزبین موفق شدید یعنی هم برنامه و هم سخت افزار داره به درستی کار میکنه و مشکل برمیگرده به یه چیزی تو ویندوز
          فایروالی چیزی !

  11. Avatar for رضا ایجی رضا ایجی گفت:

    بله (حالا مهندس بازنشسته هستم ولی دیگه…) 🙂
    دقیق مطابق عکس های آموزش بالا کتابخانه ها و برد رو تنظیم کردم. فقط چیزی که هست ممکنه برد بنده با برد استفاده شما متفاوت باشه! (حالا این قسمت اخر رو بذارید رو بازنشستگی بنده)

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام – نفرمایید الکترونیک که بازنشستگی نداره 🙂
      من خودم نرم افزار آردوینو رو روی سیستم ندارم که چک کنم اما مشکل رو جستجو کردم به فروم آردوینو رسیدم و راه حلی که برای حلش داده بودند
      fatal error: ESP8266WiFi.h
      البته اجازه بدید خودم هم ادیتور آردوینو رو نصب میکنم و چک میکنم ببینم مشکل حل میشه یا نه
      ممنون از صبوری شما

      1. Avatar for رضا ایجی رضا ایجی گفت:

        درود بر شما
        سپاس از وقتی که برای جواب بنده گذاشتید.

  12. Avatar for رضا ایجی رضا ایجی گفت:

    با سلام و عرض ادب
    آیا امکان اجرای این پروژه با برد آردوینو WeMos D1 WiFi هست؟
    با سپاس

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      بله امکانش هست 🙂

    2. Avatar for رضا ایجی رضا ایجی گفت:

      چندین مرتبه کتابخانه رو به روز کردم ولی همچنان پیغام ESP8266WiFi.h: No such file or directory باقی مونده! :-/

      1. Avatar for زئوس Zeus زئوس Zeus گفت:

        خوب دارید با ادیتور آردوینو کار میکنید دیگه
        از کدوم ورژن sdk استفاده میکنید ؟

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *