در این آموزش نحوه استفاده از پروتکل ارتباطی ESP-NOW را برای تبادل داده از یک بورد ESP32 به یک یا چند بورد ESP32 شرح می دهیم. برای تهیه و مشاهده لیست فروشندگان ماژول ESP32 کلیک کنید.
پروتکل ESP-NOW چیست و چه کاربردی دارد؟
ESP-NOW یک پروتکل ارتباطی بیسیم و کم مصرف است که قادر به برقراری ارتباط میان ماژول های ESP است. این پروتکل توسط Espressif ساخته و توسعه یافته است و می تواند بین چندین دستگاه بدون استفاده از شبکه Wi-Fi ساخته شده توسط روتر ارتباط برقرار کند. این پروتکل یک شبکه بسیار ویژه، با سرعت بالا و قابل اعتماد است که برای اتوماسیون مسکونی و صنعتی مناسب است. در این پروتکل ابتدا باید دستگاه ها با یکدیگر جفت شوند. پس از آن ارتباط به صورت پایدار برقرار خواهد شد.

سناریوهای مختلف توسط پروتکل ESP-NOW
جهت استفاده از این پروتکل و ارتباط میان ماژول های ESP، می توان چندین سناریو طراحی کرد و ماژول ها می توانند در نقش های مختلفی ظاهر شوند.
- یک بورد اطلاعات را به بورد دیگر ارسال می کند. پیکربندی این سناریو بسیار آسان است و برای ارسال اطلاعات از یک بورد به بورد دیگر مانند خواندن مقادیر سنسورها یا دستورات ON و OFF برای کنترل GPIO بسیار عالی عمل می کند.
- در این سناریو یک بورد ESP32 دستورات یکسان یا متفاوتی را به بوردهای مختلف ESP32 ارسال می کند. این پیکربندی برای مواردی چون کنترل از راه دور ایده آل است. شما می توانید چندین ماژول ESP32 در اطراف خانه داشته باشید که توسط یک بورد اصلی ESP32 کنترل می شوند.
- اگر می خواهید داده ها را از چندین گره حسگر در یک بورد ESP32 جمع آوری کنید، این پیکربندی ایده آل است. این سناریو می تواند به عنوان یک وب سرور پیکربندی شود و داده های سایر بوردها را نمایش دهد.
- با ESP-NOW ، هر بورد می تواند همزمان فرستنده و گیرنده باشد. بنابراین، می توان بین ماژول ها ارتباط دو طرفه برقرار کرد. به عنوان مثال، می توانید دو ماژول ارتباطی با یکدیگر داشته باشید.
- می توان بورد های بیشتری به سناریو 4 اضافه کرد و چیزی شبیه شبکه داشت.
(همه بوردهای ESP32 با یکدیگر ارتباط برقرار می کنند)
مزیت ها
- انتقال داده تا 250 بایت.
- بهره مندی از ارتباط رمزگذاره شده.
- استفاده از Call Back برای اطلاع رسانی به لایه های مختلف در صورت موفقیت یا عدم موفقیت در انتقال اطلاعات.
محدودیت ها
- حداکثر محدوده 250 بایت.
- پشتیبانی حداکثر از 10 عدد اکسس پوینت رمزگذاری شده.
- حداکثر تعداد پشتیباتی در حالت رمزگذاری نشده 20 عدد.
سلام وقت بخیر، چطور میشه به جای این دیتا ها ، تصاویر گرفته شده با استفاده از esp32-cam را به یک esp دیگر فرستاد؟
سلام محمدرضا عزیز .
اصولا استفاده از ESP32-CAM برای عکس یا فیلم گرفتن و مشاهده آن در مرورگر به وسیله آی پی یا فرستادن به ایمیل و …. است اما اینکه شما بخواین عکس رو به یک ESP32 دیگه بفرستین مورد آزمایش ما قرار نگرفته اما چالشی که با اون قطعا مواجه میشید تبدیل نوع یا به عبارتی انجام عمل cast روی دیتا هست و ممکنه دیتا رو(عکس) به صورت واضح یا کامل دریافت نکنین و بایت هایی از دیتا از دست بره با این حال شاید لینک زیر به شما کمک کنه.
https://forum.arduino.cc/t/transfer-pictures-from-esp32-cam-to-esp32-via-serial/647488/16