در سلسله آموزش های شبکه مش در بردهای ESP، قسمت هفتم به تست و بررسی امکانات جانبی مش می پردازیم. در قسمت پیشین یکی از قابلیت های کلیدی و کاربردی در شبکه مش روی بردهای ESP را بررسی کردیم. این قابلیت که مبتنی بر فناوری OTA است، می تواند از راه دور و بدون نیاز به سیم کشی برنامه یک گره حاضر در شبکه را بروز رسانی کند. در این آموزش اما قصد داریم تا به امکانات جانبی و دستورات آن در شبکه مش بپردازیم. در ادامه، با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.
آموزش شبکه مش از آغاز تا کنون
پیش از آن که به ادامه بحث بپردازیم، بد نیست تا نگاهی به صورت اجمالی نگاهی به آموزش های این سلسله آموزش از نخست تا کنون داشته باشیم. در قسمت نخست این سلسله آموزش، به طور کلی به مفهوم شبکه پرداختیم. سپس در ادامه به تعریف شبکه مش و تفاوت آن با شبکه معمول یا همان نقطه دسترسی-ایستگاهی پرداخته شد. در ادامه پس از تعریف مفاهیم پایه شبکه و به طور خاص شبکه مش، مزایا و معایب هر دو نوع شبکه سنتی و مش مورد بررسی قرار گرفت.
پس از آموزش نخست، در آموزش شماره ۲ به نصب کتابخانه مخصوص اجرای شبکه مش پرداختیم. در این کتابخانه توابع و دستورات بسیار کاملی جهت اجرای شبکه مش در سناریو های مختلف تعبیه شده است. در قسمت دوم آموزش به بررسی این کتابخانه و نحوه نصب آن پرداخته شد تا در قسمت های بعد به تست و اجرای سناریو های مختلف بپردازیم.
پس از نصب کتابخانه، نوبت به شروع به برنامه نویسی می رسد. در قسمت سوم سلسله آموزش، شروع به برنامه نویسی و برقراری ارتباط بین گره ها در شبکه نمودیم. ارتباط بین گره ها در شبکه مش نیازمند استفاده از توابع و دستورات خاصی است. در قسمت سوم به شرح کامل این توابع و دستورات به گونه ای پرداختیم که قادر به برقراری ارتباط بین گره ها باشیم.
در ادامه این سلسله آموزش، قسمت چهارم به بررسی یک قابلیت کلیدی و کاربردی در شبکه مش پرداختیم. این قابلیت که اصطلاحا پل(bridge) نام دارد، می تواند برقراری ارتباط را بین دو شبکه مش ایجاد نماید. به عبارت دیگر به کمک این قابلیت می توانید داده ها را بین دو شبکه مجزا از یکدیگر، رد و بدل نمایید. این قابلیت نیز دارای توابع و دستورات منحصر به فردی بوده که در این آموزش به شرح آن پرداخته شده است.
پس از این آموزش، در قسمت پنجم به سراغ یک قابلیت کلیدی دیگر رفتیم. این قابلیت که در خانه های هوشمند بسیار مورد استفاده است، می تواند برقراری ارتباط بین کاربر و شبکه مش را فراهم نماید. در این حالت داده ها از کاربر از طریق مرورگر دریافت می گردد. جهت دریافت داده ها، یک گره از شبکه مش به صورت واسط در حالت سرور قرار می گیرد. این سرور با اجرای یک وب پیج، داده ها را از کاربر دریافت کرده و به شبکه مش ارسال می نماید.
در ادامه سلسله آموزش شبکه مش، قسمت ششم به بررسی قابلیت OTA در بستر شبکه مش پرداختیم. به کمک قابلیت OTA می توانیم بردهای ESP را از راه دور و بدون نیاز به دسترسی فیزیکی، پروگرام کنیم. در این آموزش این قابلیت را در بسیتر شبکه مش مشاهده کردیم؛ به طوریکه یک برنامه از طریق یک برد NODEMCU به برد دیگر منتقل می گردد. بدین ترتیب یک برد به صورت بی سیم می تواند برد دیگر را پروگرام نماید.
پس از آشنایی با این مراحل، نوبت به آموزش قسمت هفتم می رسد. در این قسمت قصد داریم تا به بررسی امکانات و ویژگی های جانبی شبکه مش بپردازیم. این مورد را در قسمت بعدی آموزش مشاهده خواهیم کرد.
بررسی میزان کارایی گره ها در شبکه
در این قسمت به بررسی یک امکان جالب از شبکه مش می رسیم. به کمک این ویژگی می توان میزان کارایی شبکه را مورد بررسی قرار داد. برای این مورد کافیست از کتابخانه plugin که زیر مجموعه کتابخانه painlessmesh محسوب می گردد، یک نمونه تعریف کنیم. این نمونه نیز باید از نوع performance باشد تا به توابع و ویژگی ها این قابلیت دسترسی فراهم گردد. به همین منظور در کدهای برنامه به شیوه زیر عمل می کنیم.
plugin::performance::begin(mesh, 2)
در این حالت، هر گره می تواند به ردگیری میزان کارایی گره های دیگر در شبکه بپردازد. همچنین گره ها می توانند کارایی های مختلف یکدیگر را اندازه گیری نمایند. به عنوان مثال می توانیم تفاوت آنچه که از یک گره انتظار داریم و آنچه که در عمل انجام می دهد را مشاهده نماییم. برای کامل تر شدن بحث، می توانید نمونه برنامه زیر را مشاهده کنید.
#include <painlessMesh.h> //کتابخانه ها مربوط به OTA جهت پروگرام از راه دور و کتابخانه های کارایی #include "painlessmesh/ota.hpp" #include "painlessmesh/protocol.hpp" #include "plugin/performance.hpp" //مشخصات شبکه مش #define MESH_SSID "otatest" #define MESH_PASSWORD "somethingSneaky" #define MESH_PORT 5555 using namespace painlessmesh; //ایجاد شی painlessMesh mesh; void setup() { Serial.begin(115200); mesh.setDebugMsgTypes( ERROR | CONNECTION | DEBUG); // دیباگ و نمایش خطاها mesh.init(MESH_SSID, MESH_PASSWORD, MESH_PORT, WIFI_AP_STA, 6); //اتصال به شبکه مش mesh.initOTA("performance"); plugin::performance::begin(mesh, 2); //اتصال به شبکه مش از نوع کارایی } void loop() { mesh.update(); }
لوازم مورد نیاز
جمع بندی
در سلسله آموزش های شبکه مش بر روی بردهای ESP8266، قسمت هفتم را به بررسی امکانات جانبی شبکه مش اختصاص دادیم. همانطور که از این سلسله آموزش آموختیم؛ شبکه مش یک شبکه ایست که در آن گره ها می توانند به صورت مستقیم با یکدیگر در ارتباط باشند. به عبارت دیگر برخلاف شبکه معمول که داده ها باید حتما از یک روتر عبور کنند، شبکه مش امکان مستقیم تبادل داده بین گره ها را فراهم می کند. در این آموزش به بررسی یکی از قابلیت های کلیدی گره ها در شبکه مش پرداختیم. به کمک این قابلیت می توان میزان کارای گره ها در شبکه را بسنجیم. معیار این سنجش تفاوت بین عملکرد در عمل و آنچه در انتظار بوده، خواهد بود.
چنانچه مطالب ابن آموزش را گنگ یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. تاکنون بیش از هزاران نظر و پاسخ در دیجی اسپارک درج شده است؛ پس نظرات شما ارزشمند بوده و سوالات بی پاسخ نمی مانند.
سلام استاد وقت بخیر
من میخام یک تشخیص فاصله اجتماعی بین دو نفر بسازم که مثلا اگه به محدوده دو متری همدیگه نزدیک شدن هشدار بده و کارای دیگه کنه
که هر نفر یدونه مدار به خودش وصل کرده تا هرکدوم وارد حریم هم شد هشدار بده
حالا برای ساختنش نمیدونم از چه تکنولوژی و راهی استفاده کنم که ارزون باشه نسبت به GPS هم بشه به چند نفر وصل کرد و راحت و سریع هم قابل ساخت باشه؟
ایا با قدرت سینگنال یه ماژول امواجی مثل بلوتوث میشه همچنین کاری رو تو فاصله ۲متری انجام داد یا کلا همچنین قابلیتی رو دارن؟
سلام و متشکرم
بله، از طریق قابلیتی به اسم بیکن این مورد قابل اجرا خواهد بود. از طریق وای فای هم می توان فاصله سنجی را در این متراژ انجام داد.
سلام
ممنون
میشه بیکن رو بیشتر توضیح بدید و بگید با چه ماژولی و چجوری با وایفای میشه این کارو انجام داد؟
سلام و خواهش می کنم
در این رابطه متاسفانه اطلاعی ندارم. در صورتیکه سایر دوستان مسلط هستند درخواست دارم تا اطلاعات خود را به اشتراک بگذارند.
با سلام و وقت بخیر
من میخوام یک مش بین ۴ تا esp8266 ببندم که اینها به esp8266 پنجم داده های دما و رطوبتشان رو ارسال کنند و همین نود به اینترنت هم وصل بشه و داده ی خودش و ۴ نود دیگر رو روی سرورم نمایش بده. در مورد اتصال نود پنجم در کنار اینکه در esp-mesh هست و میخواد آنلاین هم بشه راهنماییم میشه بکنید؟
با سلام
در هر ۵ برد ESP8266، SSID و رمز عبور شبکه مش را یکسان تنظیم کنید.
در هر ۴ نود به غیر از نود پنجم، آدرس IP نود پنجم را به عنوان روتر مش تنظیم کنید.
در نود پنجم، آدرس IP و اطلاعات اتصال به سرور را پیکربندی کنید.
در هر ۴ نود به غیر از نود پنجم، کد را برای خواندن داده از سنسور دما و رطوبت و ارسال آن به نود پنجم از طریق شبکه مش بنویسید.
در نود پنجم، کد را برای دریافت داده از ۴ نود دیگر، ترکیب دادهها و ارسال آنها به سرور بنویسید.