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

blog
۱۳۹۸-۰۷-۰۲
7 دقیقه

تقریبا می‌توان که همه ما با گوشی های هوشمند از جمله سامسونگ و اپل و … کار کرده‌ایم اگر دقت کنید گاهی از اوقات شرکت سازنده یک 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 ساده به کار گیرید.

 

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

 

 

 

 

اطلاعات
23
0
لینک و اشتراک
profile

BLO OM

متخصص الکترونیک

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

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
حانی گفت :
۱۴۰۳-۰۶-۱۶ ۱۷:۴۳

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

profile
Daniel گفت :
۱۴۰۳-۰۲-۲۴ ۲۳:۰۱

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

profile
وهاب گفت :
۱۴۰۰-۰۶-۱۶ ۱۶:۳۴

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

profile
Zeus گفت :
۱۴۰۰-۰۶-۲۱ ۰۹:۳۱

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

profile
علیرضا گفت :
۱۴۰۰-۰۴-۱۹ ۱۱:۵۶

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

profile
یزدخواستی گفت :
۱۴۰۰-۰۱-۲۲ ۱۱:۴۱

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

profile
zeus گفت :
۱۴۰۰-۰۲-۰۵ ۱۰:۳۸

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

profile
محمد حسین گفت :
۱۳۹۹-۱۲-۰۷ ۲۱:۲۰

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

profile
Cihangir sakan گفت :
۱۳۹۹-۰۹-۳۰ ۰۲:۳۸

بروزرسانی

profile
مروارید درخشان گفت :
۱۳۹۹-۰۶-۱۲ ۰۱:۴۸

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

profile
محمد حسین رحیمی گفت :
۱۳۹۹-۰۴-۱۰ ۱۰:۱۹

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

profile
زئوس Zeus گفت :
۱۳۹۹-۰۴-۱۶ ۱۵:۰۵

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

profile
mohmmadreza گفت :
۱۳۹۸-۱۱-۰۹ ۱۷:۳۳

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

profile
زئوس Zeus گفت :
۱۳۹۸-۱۲-۱۰ ۱۰:۲۵

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

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

profile
mohmmadreza گفت :
۱۳۹۸-۱۲-۱۲ ۱۶:۴۵

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

profile
زئوس Zeus گفت :
۱۳۹۸-۱۲-۱۳ ۰۹:۲۱

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

profile
رضا ایجی گفت :
۱۳۹۸-۰۹-۰۶ ۱۳:۰۸

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

profile
زئوس Zeus گفت :
۱۳۹۸-۰۹-۰۹ ۱۰:۵۸

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

profile
رضا ایجی گفت :
۱۳۹۸-۰۹-۰۹ ۱۱:۱۹

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

profile
رضا ایجی گفت :
۱۳۹۸-۰۹-۰۵ ۱۴:۲۷

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

profile
رضا ایجی گفت :
۱۳۹۸-۰۹-۰۶ ۰۸:۲۰

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

profile
زئوس Zeus گفت :
۱۳۹۸-۰۹-۰۶ ۰۹:۲۳

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

profile
زئوس Zeus گفت :
۱۳۹۸-۰۹-۰۵ ۱۶:۰۳

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

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله