اینترنت اشیا IOT برد Esp32 برد ESP8266 برد Nodemcu برد ویموس Wemos

شروع کار با ESP-MESH و تست یک سناریو شبکه Mesh با بردهای ESP

نوشته شده توسط CiferTech

ESP-MESH یک پروتکل شبکه است که در سطحی بالاتر از پروتکل Wi-Fi ساخته شده است. ESP-MESH اجازه می دهد تا دستگاه های بیشماری با عنوان گره یا node، پخش شده در یک منطقه بزرگ فیزیکی چه در داخل و چه در فضای باز تحت یک WLAN یا همان شبکه محلی بی سیم به هم متصل شوند. ESP-MESH خود سازماندهی و خود ترمیم کننده است به این معنی که شبکه می تواند به صورت مستقل ساخته و کانکشن بین دستگاه ها نگهداری شود. ESP-WIFI-MESH یک شبکه ارتباطی بی سیم با node هایی است که در یک توپولوژی Mesh با استفاده از ویژگی همزمان AP-STA در Espressif طراحی شده‌اند. این یک شبکه خودساخته و خود ترمیم است. توپولوژی شبکه ESP-WIFI-MESH می تواند تا ۱۰۰۰ node را در مناطق وسیع و بدون نیاز به پشتیبانی زیرساخت Wi-Fi خاص، گسترش دهد. همچنین می توان از ESP-WIFI-MESH برای پوشاندن نقاط کور Wi-Fi در سناریوهای استقرار در منزل که امکان دسترسی به سیگنال Wi-Fi را ندارد استفاده کرد.در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

Get started with ESP-MESH and test a Mesh network scenario

 


شناخت ESP-MESH


تفاوت ESP-MESH با زیرساخت های شبکه های Wi-Fi سنتی از این جهت است که برای اتصال node ها نیازی به node مرکزی نیست. در عوض، node ها مجاز به اتصال با node های همسایه هستند. node ها متقابلا مسئول انتقال مجدد یکدیگر هستند. این مورد اجازه می دهد تا یک شبکه ESP-MESH منطقه تحت پوشش بیشتری داشته باشد زیرا node ها هنوز می توانند بدون نیاز به قرار گرفتن در node مرکزی به هم اتصال متصل شوند. به همین ترتیب، ESP-MESH نیز کمتر مستعد بارگیری می شود زیرا تعداد node های مجاز در شبکه دیگر توسط یک node مرکزی محدود نمی شود.

Get started with ESP-MESH and test a Mesh network scenario

 

ESP-MESH در سطحی بالاتر از پروتکل Wi-Fi زیرساخت شده است و می توان آن را به عنوان یک پروتکل شبکه در نظر گرفت که بسیاری از شبکه های Wi-Fi را در یک WLAN واحد ترکیب می کند. در Wi-Fi، ایستگاه ها یا STA ها در هر زمان به یک اتصال واحد با یک AP محدود می شوند، در حالی که یک AP می تواند به طور همزمان به چندین STA متصل شود. با این وجود ESP-MESH به node ها اجازه می دهد تا همزمان به عنوان ایستگاه و AP عمل کنند. بنابراین یک node در ESP-MESH می تواند با استفاده از رابط softAP خود چندین اتصال پایین دست داشته باشد، در حالی که همزمان با استفاده از رابط STA خود یک اتصال بالادستی واحد دارد. این به طور طبیعی منجر به یک توپولوژی شبکه درختی با سلسله مراتب والدین و کودکان متشکل از چند لایه می شود.

 


برد ESP32


ESP32 نسل پیشرفته ESP8266 است. یکی از تفاوت‌های آن بلوتوث داخلی‌اش می‌باشد. همچنین دارای هسته وایفای ۲,۴ گیگا هرتزی و بلوتوث داخلی تولید شده با تکنولوژی ۴۰ نانومتری شرکت TSMC می‌باشد. این ماژول دارای بهترین پرفورمنس در مصرف انرژی می‌باشد یعنی با کمترین مصرف انرژی بهترین نتیجه را برای ما به همراه دارد. اگر بخواهیم دقیق‌تر به این برد نگاه کنیم باید بگوییم که این یک chip است که پلتفرم NodeMCU در اون پیاده سازی شده که به این نوع چیپ ها System on a chip microcontrollers هم گفته می‌شود.

برد ESP32 در سناریو ESP-Mesh - دیجی اسپارک

 


 برد Wemos ویموس


برد Wemos یکی از پرطرافدار ترین برد هایی است که در زمینه iot مورد استفاده قرار میگیرد، یکی از مزیت های این برد نسبت به برد هایی مانند Node MCU اندازه کوچک آن می باشد تراشه وای فای مورد استفاده در این برد ESP8266 می باشد. از دیگر مزیت های این برد وجود شیلد های مختلفی برای این برد می باشد، که انجام هر پروژه ای را برای کاربر بسیار آسان و لذت بخش می کند، شیلد هایی از جمله شیلد باتری، multi sensor ، DHT22 ، رله ، oled تعداد بسیار زیادی شیلد برای این برد توسعه داده شده که در نتیجه تجربه خوبی از iot برای شما به جا خواهد گذاشت.

 

 


روش کار پروژه


در این پروژه این ارتباط ESP-MESH ساده با یک ESP32 و یک برد Wemos که بر پایه برد ESP8266 است راه‌اندازی خواهیم کرد، و ارتباط بین این دو ماژول را بررسی می‌کنیم. در این پروژه با آپلود یک کد در هر دو برد ESP32 و ESP8266 قادر خواهیم بود، پیام مدنظر را ارسال و دریافت کنیم، که در مقابل ESP-NOW کار ما آسان تر شده و روند پروژه بسیار سریع تر شده. در این پروژه از یک مثال ساده استفاده خواهد شد  و تنها یک متن بین دو برد وای‌فای ما رد و بدل می‌شود.

Get started with ESP-MESH and test a Mesh network scenario

 


وسایل مورد نیاز


برد Nodemcu برپایه ESP8266

برد ESP32

 


نصب و راه‌اندازی کتابخانه


painlessMesh یک شبکه موقت و تک کاره است، به این معنی که کنترل کننده یا node مرکزی یا روتر مورد نیاز نیست. هر سیستمی از ۱ یا چند گره خود به خود، در شبکه ای کاملا کاربردی سازمان می یابد. حداکثر اندازه مش با توجه به مقدار حافظه موجود در انبوهی که می توان به بافر فرعی اختصاص داد، محدود است. برای نصب کتابخانه مطابق مراحل زیر پیش بروید.

  1. این مسیر را دنبال کنید Sketch Include Library > Manage Libraries
  2. کلمه painlessMesh را جستجو کنید.
  3. کتابخانه را نصب کنید.

این کتابخانه به تعدادی موارد پیفرض نیاز دارد که از وابستگی های کتابخانه است. هنگام نصب کتابخانه یک پنجره جدید ظاهر می شود که از شما می خواهد موارد مورد نیاز  را نصب کنید. در این پنجره گزینه “install all” را انتخاب کنید.

 


کد و راه‌اندازی مدار


در این پروژه اقدام به آپلود کدی که در پایین معرفی شده خواهیم کرد، در هر دو برد ESP32 و ESP8266، در واقع در این پروژه نیازی به تغییر مقادیر و آپلود کدی متافوت در برد های مختلف نیست و شما تنها با همین کد قادر خواهیم بود بین یک یا چند برد با ورژن های مختلف ارتباط mesh برقرار کنید. این مورد به شما امکان این را خواهد داد تا بتوانید شبکه وسیع تری بدون نیاز به این فکر که نیاز دارید برای هربرد کدی متفاوت با مقادیر متفاوت آپلود کنید را نداشته باشید. در این کد برای شبکه mesh یک نام و رمز مشخص می‌کنید تا این شبکه امن تر باشد و این مورد باید برای همه node های داخل mesh یکسان باشد.

 

برای شروع کار با ESP-MESH ابتدا مثال پایه را از کتابخانه  آزمایش خواهیم کرد. این مثال یک شبکه مش ایجاد می کند که در آن همه برد ها پیام ها را به سایر برد های درون شبکه ارسال می کنند.

 


جمع بندی


در چند ماه گذشته آموزش هایی با عنوان ESP-NOW منتشر کردم، با تست این نوع ارتباط گیری ESP-MESH می‌توان بگویم که ESP-MESH نسل پیشرفته ESP-NOW است البته هردو مورد عیب هایی دارند که در مقایسه بهم پوشش داده شده‌اند، اما کار با ESP-MESH می‌تواند بسیار جال تر و لذت بخش از مورد قبلی باشد، این نوع ارتباط گیری یعنی شبکه های Mesh در آموزش های آینده گسترش خواهیم داد و سناریو های مختلفی را تست خواهیم کرد.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

CiferTech

فقط 10 نوع آدم در این دنیا وجود داره، اونی که باینری میفهمه و اونی که باینری نمیفهمه! ^-^

~ اینستاگرام: CiferTech

تبادل نظر و رفع عیب با ثبت دیدگاه

۲ دیدگاه

  • سلام
    ممنون بابت مطلب مفیدی که گذاشتین
    ولی من یه مشکلی در پروگرام کردن دارم
    این ارور رو موقع پروگرام کردن بهم میده
    Arduino: 1.8.14 (Windows 10), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200”

    In file included from C:\Users\asakrobo\Documents\Arduino\libraries\Painless_Mesh\src/painlessMesh.h:10:0,

    from C:\Users\asakrobo\Documents\Arduino\libraries\Painless_Mesh\examples\namedMesh\namedMesh.h:3,

    from C:\Users\asakrobo\Documents\Arduino\libraries\Painless_Mesh\examples\namedMesh\namedMesh.ino:7:

    C:\Users\asakrobo\Documents\Arduino\libraries\Painless_Mesh\src/painlessmesh/configuration.hpp:35:25: fatal error: ESPAsyncTCP.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1

    Error compiling for board NodeMCU 1.0 (ESP-12E Module).

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    وقتی هم میخوام کتابخانه ESPAsyncTCP.h رو نصب کنم ارور no protocol میده
    البته کدی که من آپلود میکنم نمونه مثال خود کتابخانه هست و تغییری توی کد نمیدم
    ممنون میشم راهنمایی کنید

    • با سلام، ممنون از توجه شما. با توجه به ارور مشکل فایل های کتابخانه را دارید. پیشنهاد میکنم با سیستم دیگری کد را چک کنید.