در این پروژه قصد داریم دیتا را توسط پروتکل UDP از یک بورد ESP به سرور انتقال داده و در نرم افزار Node-Red مانیتور و کنترل کنیم. همراه ما باشید.
معرفی پروتکل User Datagram Protocol) UDP)
UDP بخشی از مجموعه پروتکل اینترنت است که به آن مجموعه UDP/IP میگویند. برخلاف TCP، این پروتکل غیر قابل اعتماد و بدون اتصال است. بنابراین، نیازی به برقراری ارتباط، قبل از انتقال اطلاعات نیست. در UDP هیچ خطایی وجود ندارد، بنابراین باعث پهنای باند نیز می شود. پروتکل اطلاعات کاربر (UDP) از نظر تأخیر و پهنای باند کارآمدتر است.
UDP یک استاندارد ارتباطی برای تبادل اطلاعات از طریق اینترنت است. این پروتکل از یک فرایند بدون اتصال برای ارسال بسته های اطلاعات به مقصد استفاده می کند، همچنین به سرعت ارسال بیش از قابلیت اطمینان اولویت می دهد. به دلیل تأخیر کم، UDP برای مواردی استفاده می شود که حساس به زمان هستند مانند پخش ویدئو، بازیهای ویدیویی و جستجوی سیستم نام دامنه (DNS).
در UDP، گیرنده تأیید دریافت بسته را تضمین نمیکند و فرستنده نیز منتظر هیچ نوع تأیید ارسال بسته نمیماند. این مسئله موجب میشود که پروتکل غیر قابل اعتماد شود و البته بر سهولت پردازش نیز میافزاید.
با این وجود چرا باید به یک پروتکل غیر قابل اعتماد برای انتقال اطلاعات نیاز داشته باشیم؟ در حقیقت از UDP جایی استفاده میشود که تأیید ارسال بستهها، پهنای باند قابل توجهی را به همراه دادههای واقعی اشغال میکند اما حتی اگر برخی بستهها در جریان ارسال از دست بروند، تأثیر آن زیاد نیست و میتوان آن را به سادگی نادیده گرفت.
در اینجا چند نمونه از ویژگی های این پروتکل را لیست کرده ایم:
- برای زمانی مناسب است که تأیید وصول بستههای اطلاعات اهمیت زیادی نداشته باشد.
- پروتکل خوبی برای گردش دادهها در یک جهت محسوب میشود.
- اتصال-محور نیست.
- مکانیسم کنترل ازدحام ندارد.
- تحویل دادهها را بر مبنای ترتیب تضمین نمیکند.
UDP چگونه کار میکند
UDP از پروتكل اينترنت براي بدست آوردن يك دیتا از يك رايانه به ديگري استفاده مي كند و همچنین با کپی اطلاعات در یک بسته UDP و افزودن اطلاعات هدر خود به بسته، کار می کند. این اطلاعات شامل پورتهای مبدأ و مقصد برای برقراری ارتباط، طول بسته و یک checksum است. پس از بسته شدن بسته های UDP در بسته پروتکل اینترنت، آنها به مقصد خود ارسال میشوند. اگرچه این روش انتقال تضمین نمیکند که دادههای ارسالی حتی به مقصد خود برسند، اما دارای سرریز بسیار کمی است و برای خدماتی که اصلاً لازم نیست بار اول کار کنند محبوب است.
شروع پروژه
ابتدا کد فرستنده را در Arduino IDE نوشته و کتابخانه های لازم را نصب میکنیم. در اینجا <WiFi.h> و <WiFiUDP.h> کتابخانه های مورد نیاز می باشند. در این کد تنها نیاز به آی پی گیرنده و یک پورت باز داریم.
سپس شماتیک بلوکی را در Node-Red طراحی می کنیم. در این طراحی نیاز به نود udp, debug, function است. نود UDP جهت گوش دادن به پورت مربوطه با خروجی بافر هست. همچنین تنظیمات آنها به صورت زیر می باشد.
در کد نوشته شده قرار است یک پک حاوی چندین دیتا منتقل شود و در Node-Red مانیتور شود.
1 دیدگاه