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

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

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 ساده به کار گیرید.

 

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

 

 

 

 

حمایت از BLO OM

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

BLO OM
BLO OM

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

دیدگاه ها

20 دیدگاه

  • وهاب
    ۱۶ شهریور ۱۴۰۰

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

    • Zeus ‌
      Zeus
      ۲۱ شهریور ۱۴۰۰

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

  • یزدخواستی
    ۲۲ فروردین ۱۴۰۰

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

    • Zeus ‌
      zeus
      ۵ اردیبهشت ۱۴۰۰

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

  • محمد حسین
    ۷ اسفند ۱۳۹۹

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

  • Cihangir sakan
    ۳۰ آذر ۱۳۹۹

    بروزرسانی

  • مروارید درخشان
    ۱۲ شهریور ۱۳۹۹

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

  • محمد حسین رحیمی
    ۱۰ تیر ۱۳۹۹

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

    • Zeus ‌
      زئوس Zeus
      ۱۶ تیر ۱۳۹۹

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

  • mohmmadreza
    ۹ بهمن ۱۳۹۸

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

    • Zeus ‌
      زئوس Zeus
      ۱۰ اسفند ۱۳۹۸

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

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

      • mohmmadreza
        ۱۲ اسفند ۱۳۹۸

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

        • Zeus ‌
          زئوس Zeus
          ۱۳ اسفند ۱۳۹۸

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

  • رضا ایجی
    ۶ آذر ۱۳۹۸

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

    • Zeus ‌
      زئوس Zeus
      ۹ آذر ۱۳۹۸

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

      • رضا ایجی
        ۹ آذر ۱۳۹۸

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

  • رضا ایجی
    ۵ آذر ۱۳۹۸

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

    • Zeus ‌
      زئوس Zeus
      ۵ آذر ۱۳۹۸

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

    • رضا ایجی
      ۶ آذر ۱۳۹۸

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

      • Zeus ‌
        زئوس Zeus
        ۶ آذر ۱۳۹۸

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 10 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک