IoT Developer – ESP32 + MQTT + Web Application
معرفی پروژه
به دنبال یک برنامهنویس با تجربه در حوزه IoT هستیم که بتواند بخش نرمافزار دستگاهها مختلف و ارتباط بین آنها را طراحی و پیادهسازی کند.
پروژه یک مجموعه ای از تجهیزات با سنسور و موتور های متعدد است که یک بازی را در دنیا واقعی اجرا میکند .
این سیستم شامل 15 دستگاه مجهز به ESP32 است که از طریق شبکه Wi-Fi داخلی با یک Mini PC مرکزی در ارتباط هستند. مدیریت این سیستم از طریق یک وباپلیکیشن انجام میشود و هماهنگی آن توسط Data Broker مرکزی که روی Mini PC اجرا میشود، صورت میگیرد.
بخش های مختلفی از سیستم جداگانه طراحی و اجرا شده است که اطلاعات آنها متعاقباً در اختیار داوطلبان پروژه قرار خواهد گرفت.
فریلنسر مسئول انجام موارد زیر خواهد بود:
1. معماری سیستم
• تعریف پروتکل ارتباطی (ساختار MQTT Topic و فرمت Payload )
• طراحی استراتژی همگامسازی برای تایمر توزیعشده
• توسعه منطق کلی تعامل بین دستگاهها
2. توسعه Firmware برای ESP32
• پیادهسازی اتصال Wi-Fi
• یکپارچهسازی MQTT Client
• کنترل موتور با PWM (موتورهای براشلس)
• پردازش سنسور مادون قرمز
• پیادهسازی منطق مبتنی بر رویداد (Event-Driven)
• ثبت و مدیریت زمان در چند وضعیت (Multi-State Time Tracking)
• مدیریت دستورات فعالسازی و غیرفعالسازی
• پیادهسازی مکانیزم اتصال مجدد پایدار و بازیابی خطا
3. یکپارچهسازی Backend روی Mini PC
• راهاندازی و پیکربندی MQTT Broker
• پیادهسازی منطق سمت سرور برای:
o تایمر مرکزی بازی
o انتشار مقادیر RPM
o تجمیع و پردازش دادههای وضعیت
o هماهنگی بین دستگاهها
o ایجاد API Endpoint برای وباپلیکیشن
4. وباپلیکیشن (در صورت داشتن مهارت)
• طراحی رابط کاربری برای اپراتور
• تنظیم مدت زمان بازی
• نمایش داشبورد لحظهای (Real-Time)
• کنترل سرعت موتور (RPM)
• نمایش و ثبت نتایج
خلاصه وظایف فریلنسر
• طراحی معماری ارتباط بین دستگاهها (MQTT)
• برنامهنویسی Firmware برای ESP32
• پیادهسازی ارتباط WiFi و MQTT
• کنترل موتور با PWM
• خواندن و پردازش سنسورها
• مدیریت تایمر و هماهنگی بین دستگاهها
• ارسال و دریافت دادهها با سرور مرکزی
• راهاندازی Broker روی Mini PC
• مستندسازی پروژه
مهارتهای مورد نیاز
• تجربه کار با ESP32
• برنامهنویسی C/C++ , Python, Arduino
• تجربه در پروژههای IoT
• آشنایی با شبکه و TCP/IP
• تجربه در کنترل موتور و PWM
خروجی مورد انتظار:
• Firmware کامل برای دستگاهها
• طراحی ساختار MQTT Topics
• راهاندازی Broker روی Mini PC
• مستندسازی پروژه
لطفاً موارد زیر را ارسال کنید:
• نمونه کارهای مرتبط
• توضیح کوتاه درباره تجربه مشابه
• زمان تقریبی انجام پروژه
• مبلغ پیشنهادی
نمونه عملکرد:
1. دستگاه Start Switch (تعداد: 1 عدد)
یک دستگاه ESP32 به عنوان کلید شروع بازی عمل میکند.
با فعال شدن توسط بازیکنان، این دستگاه یک سیگنال بیسیم به Data Broker مرکزی ارسال میکند. سپس Broker تایمر بازی را برای تمام دستگاهها فعال میکند.
مدت زمان بازی از طریق وباپلیکیشن توسط اپراتور تنظیم میشود و مقدار پیشفرض آن 90 ثانیه است.
2. دستگاه بازی (تعداد: 1 عدد غول)
این دستگاه منطق بازی را با استفاده از سنسورهای مادون قرمز در دنیای واقعی اجرا میکند.
به عنوان مثال:
اگر سنسورمستقر در پشت چشم غول، عبور 10 توپ را تشخیص دهد، LED مربوط به آن سمت دستگاه خاموش میشود و همچنین به دستگاههای از پیش متصل و وابسته به آن دستور غیرفعال شدن میدهد (تفنگ های متصل به غول غیر فعال میشوند و تا زمانی که سیگنال فعالسازی مجدد دریافت نکنند، در وضعیت غیرفعال باقی میمانند
3. دستگاههای کنترل موتور (تعداد: 7 عدد تفنگ بازی)
ESP32 درون تفنگ های بازی مسئول کنترل موتورهای براشلس هستند.
سرعت چرخش هر موتور (RPM) از طریق سیگنال PWM که توسط ESP32 تولید میشود، کنترل میگردد.
مقدار RPM مورد نظر از طریق وباپلیکیشن تنظیم میشود.
وباپلیکیشن مقدار RPM را منتشر (Publish) میکند و دستگاههای ESP32 مربوطه با Subscribe کردن به این مقدار، سرعت موتور خود را بر اساس آن تنظیم میکنند.
4. دستگاههای مانیتورینگ وضعیت (تعداد: 6 عدد پرچم)
این شش دستگاه، هر کدام دارای سه ورودی مجزا هستند.
پس از شروع تایمر، هر دستگاه مدت زمانی را که در هر یک از سه وضعیت خود قرار دارد، اندازهگیری و ثبت میکند ، مثلا امتیاز بنفع بازیکن آبی ، قرمز یا غول.
با رسیدن تایمر به صفر، هر دستگاه مجموع زمان صرفشده در هر وضعیت را طی دوره بازی محاسبه ونتایج به وباپلیکیشن ارسال شده و به اپراتور نمایش داده میشود.
این آگهی از وبسایت کارلنسر پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت کارلنسر برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.