در پروژه های مختلفی انتقال دیتا به بین برد های ESP را تست کردیم، اما در این آموزش قصد طراحی شبکه MESH مش همراه با تبادل داده سنسور های مخلف را تست کنیم، در واقع با استفاده از این نوع ارتباط تمام برد های ESP موجود در شبکه اقدام به تبادل دیتا با یکدیگر خواهند کرد و در صورت وجود دیتا مقادیر در تمام node ها دریافت خواهد شد. همچنین در این پروژه در یکی از node ها که با استفاده از سنسور دما و فشار BMP180 مقادیر محیطی را اندازهگیری میکند، یک نمایشگر Oled نیز قرار دادهایم تا نمایش مقادیر را در لحظه و در Node مبدا آسان تر کنیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
شناخت شبکه ESP-MESH
تفاوت ESP-MESH با زیرساخت های شبکه های Wi-Fi سنتی از این جهت است که برای اتصال node ها نیازی به node مرکزی نیست. در عوض، node ها مجاز به اتصال با node های همسایه هستند. node ها متقابلا مسئول انتقال مجدد یکدیگر هستند. این مورد اجازه می دهد تا یک شبکه ESP-MESH منطقه تحت پوشش بیشتری داشته باشد زیرا node ها هنوز می توانند بدون نیاز به قرار گرفتن در node مرکزی به هم اتصال متصل شوند. به همین ترتیب، ESP-MESH نیز کمتر مستعد بارگیری می شود زیرا تعداد node های مجاز در شبکه دیگر توسط یک node مرکزی محدود نمی شود.
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 هم گفته میشود.
برد Wemos ویموس
برد Wemos یکی از پرطرافدار ترین برد هایی است که در زمینه iot مورد استفاده قرار میگیرد، یکی از مزیت های این برد نسبت به برد هایی مانند Node MCU اندازه کوچک آن می باشد تراشه وای فای مورد استفاده در این برد ESP8266 می باشد. از دیگر مزیت های این برد وجود شیلد های مختلفی برای این برد می باشد، که انجام هر پروژه ای را برای کاربر بسیار آسان و لذت بخش می کند، شیلد هایی از جمله شیلد باتری، multi sensor ، DHT22 ، رله ، oled تعداد بسیار زیادی شیلد برای این برد توسعه داده شده که در نتیجه تجربه خوبی از iot برای شما به جا خواهد گذاشت.
روش کار پروژه
در پروژه طراحی شبکه MESH یکی از node ها اقدام به خواندن مقادیر دما و فشار با استفاده از سنسور BMP180 کرده و در همین بین، مقادیر را از در شبکه Mesh ساخته شده برای دیگر Node که اشتراک گذاری میکند. در ادامه node های دیگر در شبکه Mesh این مقادیر را دریافت کرده و نمایش خواهند داد، همچین این مقادیر در node ارسال کننده توسط نمایشگر Oled نیز نمایش داده میشود. در این این پروژه قادر خواهیم بود node هایی با تعداد بالا با کاربرد مشابه بسازیم در واقع تا ۱۰۰۰ node امکان ساخت وجود دارد که تنها برای هر node باید node number بخصوصی را وارد کنیم.
وسایل مورد نیاز
نصب و راهاندازی کتابخانه
برای طراحی شبکه MESH به کتابخانه painlessMesh که یک شبکه موقت و تک کاره است، نیاز داریم. به این معنی که کنترل کننده یا node مرکزی یا روتر مورد نیاز نیست. هر سیستمی از ۱ یا چند گره خود به خود، در شبکه ای کاملا کاربردی سازمان می یابد. حداکثر اندازه مش با توجه به مقدار حافظه موجود در انبوهی که می توان به بافر فرعی اختصاص داد، محدود است. برای نصب کتابخانه مطابق مراحل زیر پیش بروید. این کتابخانه به تعدادی موارد پیفرض نیاز دارد که از وابستگی های کتابخانه است. هنگام نصب کتابخانه یک پنجره جدید ظاهر می شود که از شما می خواهد موارد مورد نیاز را نصب کنید. در این پنجره گزینه “install all” را انتخاب کنید.
- این مسیر را دنبال کنید Sketch > Include Library > Manage Libraries
- کلمه painlessMesh را جستجو کنید.
- کتابخانه را نصب کنید.
شماتیک و اتصالات
در این پروژه از دو قطعه یعنی نمایشگر Oled و سنسور BMP180 استفاده کردیم، هر دو مورد استفاده شده از رابط i2c استفاده میکنند و که به لطف این رابط قادر خواهیم بود هرو قطعه را توسط تنها دو پین SCL و SDA برد ESP8266 کنترل کنیم. در برد های Wemos و Nodemcu که بر پایه تراشه ESP82666 هستند این دوپین از طریق پین D1 و D2 در دسترس هستند.
- در اولین مراحله اتصالات سنسور BMP180 را با برد Wemos برقرار خواهیم کرد. که پین های SCl و SDA به پایه های D1 و D2 در برد Wemos متصل خواهد شد، همچنین برای تغذیه از ۵v و GND استفاده خواهیم کرد.
- در ادامه اتصالات نمایشگر oled را برقرار خواهیم کرد که مانند سنسور BMP180 به پین های D1 و D2 متصل خواهد شد، زیرا هر ذو از رابط i2c پشتیبانی میکنند.
در نهایت اتصالات به این شکل اتمام میابد، از صحت اتصالات اطمینان حاصل کنید.
کد و راهاندازی مدار
در پروژه طراحی شبکه MESH از دو کد برای node های مختلف استفاده خواهیم کرد که یکی از کد ها اقدام به تحلیل مقادیر سنسور و نمایش در Oled و همچنین در شبکه Mesh وارد میکند، و دیگری تنها این مقادیر را دریافت و پیامی را ارسال خواهد کرد. برای دریافت مقادیر به تنهایی می توانید از کد استفاده شده در پروژه قبلی از سری ESP-MESH استفاده کنید.در ادامه این مورد را در ذهن داشته باشید در صورتی که node های با تعداد بیشتر از یک نود اقدام به تحلیل دیتا میکنند و از نوع شماره دار هستند مانند این پروژه باید در کد های مربوط مقدار node number را در هر کد سفارشی سازی کنید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
جمع بندی
در پروژه طراحی شبکه MESH مقادیر دیتای دما و فشار را از طریق سنسور BMP180 دریافت کردیم و سپس با استفاده از برد های ESP اقدام به راهاندازی یک شبکه مش بین برد های ESP کردیم، که در یک سری از node ها، کد استفاده شده در این پروژه استفاده شد تا به این صورت مقادیر تحلیل شوند، در نمایشگر Oled نمایش داده شوند و در ادامه در شبکه مش ایجاد شده آپلود شوند، و یا یا استفاده از کدی ساده تنها مقادیر مدنظر را دریافت کنیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
بنده اشتراک تهیه کردمولی هنوز نمیتونم کدهای این پروژه و ببینم چرا؟
با سلام
کش مرورگر را یکبار پاک کنید. مشکل برطرف خواهد شد.
سلام مهندس
میشه با استفاده از برد esp32 cam تصویر زنده را ارسال و با استفاده از ماژول esp32 و اتصال یک نمایشگر به esp32 تصویر زنده ارسال شده را توسط نمایشگر دریافت کرد با استفاده از ESP-MESH
با سلام، بله این امکان هست اما نه لزوما با ESP-mesh
سلام
وقت بخیر
من میخوام تعداد ۳۰ عدد از esp8266 استفاده کنم و یک عدد هم بعنوان مرکز روی هر کدام از نودها یک سوئیچ بزارم که به محض فشرده شدن به نود مرکزی ارسال بشه و تو نود مرکزی متوجه بشیم کدام نود سوئیچ رو فشرده ، آیا با این روش امکان پذیر هست؟
می تونید یه راهنمائی کنید؟