سلام جناب مهندس وقتتون بخیر.
مهندس میخواستم بدونم بهترین و اصولی ترین روش OTA که مثلا محصولات تجاری از اون استفاده می کنن چیه.برای esp32 .
example های خود آردوینو دو روش Basic و Web رو معرفی کردن.این دو روش رو تست کردم و فهمیدم ولی این روش ها باید لپتاپ و esp32 توی یک شبکه لوکال باشن.اما اینکه بخوای firmware چندین ماژول رو از راه دور از طریق اینترنت آپدیت کنی اصولی ترین روش چیه.سرچ کردم ولی روش های مختلفی بود که کمی گیج شدم.
این کارها رو کردم.ممنون میشم نظرتون رو بگید که چقدر درسته این روش.
یک سرور مجازی خریدم.وب سرور Apache24 رو روش نصب کردم.فایل .bin برنامه رو روی سرور ذخیره کردم.
روی esp از کتابخونه httpclient استفاده کردم و فایل .bin رو دانلود کردم.بعد با کتابخونه update.h کد رو آپلود کردم.
سلام دوست عزیز، در مسیر درستی قرار دارید. یکی از اصلی مشکلاتی که در OTP وجود داره این هست که چطور به فایلی که به دست میکرو رسیده میشه اعتماد کرد؟ فرض کنید که شما دستگاهی ساختید که هزاران نفر اون رو تهیه کردن و حالا یک نسخه جدید از نرم افزارش رو روی اینترنت قرار میدید. حالا اگر یک هکر بتونه دستگاه های شما رو قانع کنه که یک فایل که خود هکر ساخته رو به عنوان ورژن جدید روی خودش نصب کنن حالا کنترل همه دستگاه ها به دست هکر میفته. این اتفاق بارها برای دستگاه ها افتاده و هنوز هم شرکت های سعی دارن روش های بهتری پیدا کنن برای این اعتماد بین دستگاه و سرور ها.
این اتفاق مخصوصا برای بسیاری از دوربین های مدار بسته افتاده که متاسفانه این آسیب پذیری در اونها زیاد دیده میشه.
این مشکلات برای گوشی های موبایل هم وجود داره و برای همین هست که شما حتما باید اپ های موبایل رو از استورهای شناخته شده دانلود کنید. از طرف دیگه، گوشی موبایل به همه امکانات وب دسترسی داره ولی دستگاه شما روی esp32 به آخرین امکانات و پروتکل های اینترنتی دسترسی نداره.
شما برای ایمن سازی مسیر بین دستگاه و فایل، باید شبکه وب رو خوب بشناسید. حتما باید از https استفاده کنید. خود فایل باید رمز نگاری شده باشه و حتما فایل ها باید sign شده باشن. یک public/private key با تکنولوژی های روز باید بسازید و فایل ها رو با اونها رمزنگاری کنید.