توصیه شده, کتابخانه

مدیریت و اتصال همزمان به چند وای فای در ESP8266

مدیریت و اتصال همزمان به چند وای فای در ESP8266

شاید تاکنون در پروژه‌های اینترنت اشیاء NodeMcu و یا ESP8266 خواسته باشید تا چندین مودم وای فای را به برد خود معرفی کنید تا هنگام اتصال دستگاهتان به اینترنت، به‌طور خودکار وای فای موجود را جستجو کرده و هر کدام که در دسترس بود، به آن متصل شود. همچنین در صورتی که یکی از دسترس خارج شد، به دیگری متصل شود. در این آموزش شما یاد می‌گیرید که چگونه چندین نقطه اتصال وای فای (AP) را همراه با رمز عبورشان در برد خود تعریف کنید تا دستگاه به‌صورت خودکار (اتوماتیک) آن ها را مدیریت کرده و به بهترین آن‌ها متصل شود!

با این آموزش از سیسوگ همراه باشید.

 

قبلاً در سیسوگ مقالاتی از جمله نصب ماژول ESP8266 و ESP32 در ویرایشگر آردینو و QT برای میکروکنترلر‌ها منتشر شده است که می‌آموزید چگونه با استفاده از آردوینو برای NodeMcu و ESP8266 برنامه نویسید.  اگر شما مراحل آماده سازی آردوینو خود را انجام داده باشید، در حالت عادی، شما اطلاعات اتصال به یک مودم وای فای مثل نام نقطه اتصال و رمز عبور (اختیاری) را وارد می‌کنید و ESP8266 تلاش می‌کند تا به آن متصل شود:

 

فرض بگیرید برد esp8266 شما ممکن است در چندین محیط مختلف قرار بگیرد. برای این کار، شما باید برنامه‌ای بنویسید که محیط را اسکن کند و در صورت وجود وای فای مورد نظر، به همان متصل شود. یک روش غیر اصولی هم که معمولاً برای ساده‌تر کردن برنامه نویسی استفاده می‌شود، این است که یکی‌یکی اطلاعات اتصال را به ماژول بدهید و منتظر بمانید تا متصل شود و این کار را آن قدر ادامه دهید تا وای فای بالاخره به یکی از آن‌ها متصل شود! اما این روش‌ها ممکن است برای مدیریت اتصال وای فای به اندازه کافی کارآمد نباشند و یا اینکه کد نویسی شما را هم کمی سخت‌تر کند. اما خوشبختانه نیازی به این کارها نیست. برای معرفی چندین نقطه دستیابی (اکسس پوینت – Access point) به یک برد، قبلاً کتابخانه نوشته شده و شما می‌توانید کتابخانه‌های مورد نیاز را به وسیله هدر فایل‌های زیر به برنامه خود اضافه کنید. اگر مراحل آماده سازی آردوینو را انجام داده باشید، این کتابخانه‌ها پیش فرض وجود دارد.

 

کدهای مورد نظر برای مدیریت و اتصال به چندین وای فای در کتابخانه ESP8266WiFiMulti وجود دارد. برای استفاده از متدهای این کتابخانه، ابتدا باید به‌صورت زیر یک نمونه از روی شی‌ء آن بسازید:

 

حال با استفاده از متد addAP، مودم‌های مختلف وای فای را به همراه رمز عبور تعریف می‌کنیم:

ورودی اول تابع، ssid یا نام نقطه اتصال وای فای شما می‌باشد.

ورودی دوم گذرواژه (رمز عبور – password) وای فای مورد نظر می‌باشد. اگر وای فای شما گذرواژه‌ای ندارد، می‌توانید مثل مثال بالا ورودی دوم را وارد نکنید.

 

همچنین درون کتابخانه ESP8266WiFi متدی وجود دارد که با true کردن آن، ماژول در هنگام روشن شدن به طور خودکار به آخرین وای فایی که دفعه قبل متصل شده بوده است، متصل می‌شود.

 

فرآیند متصل شدن و مدیریت esp8266 به وای فای توسط خود ماژول و در پس زمینه در حال انجام است. در این زمان شما همچنان می‌توانید کارهای دیگری را انجام دهید. برای خواندن وضعیت فعلی ماژول و اطمینان از اتصال به اینترنت، از متد run و یا status استفاده می‌کنیم. این متد ها وضعیت فعلی را به شما گزارش می‌دهد. شما می‌توانید برای اطمینان از اتصال به اینترنت، از روش زیر در ابتدای برنامه استفاده کنید.

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

 

درنهایت، برنامه‌ی نمونه زیر با استفاده از کدهایی که در بالا توضیح داده شد، نوشته شده است. کد زیر را می‌توانید در آردوینو وارد کنید:

 

کد بالا را بر روی NodeMcu یا ESP8266 آپلود کرده و از طریق پنجره سریال روند مدیریت و اتصال به وای فای را پیگیری کنید. دقت داشته باشید که سرعت پنجره سریال را بر روی ۱۱۵۲۰۰ تنظیم کرده باشید.

پنجره سریال esp8266 برای دیباگ اتصال به چند وای فای

 

در تصویر بالا، اگر دقت کنید، در میان متن‌های ما در خروجی سریال متن‌های دیگری نیز چاپ شده‌اند که ما دستور چاپ آن‌ها را در برنامه نداده‌ایم. مثل state، pm open, type:2 0 و… این مقادیر، در واقع برای اشکال زدایی (Debugging) مدیریت اتصال وای فای esp8266 بکار می‌روند. اگر در کد آردوینو بالا خط هشتم را به‌صورت کامنت در بیاوریم، دیگر این متن‌ها را در خروجی نخواهیم دید.

مدیریت اتصال به چند مودم وای فای همزمان esp8266

 

تبریک! پروژه شما هم اکنون به یک مدیر وای فای داخلی مجهز شده است. امیدوارم از این آموزش نیز لذت برده باشید.

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

6 دیدگاه در “مدیریت و اتصال همزمان به چند وای فای در ESP8266

  1. Avatar for ایمان ایمان گفت:

    سلام بسیار ممنون به خاطر مطالب خوبتون باید اینطور سایت ها تبلیغات بهتری داشته باشن تا مردم متوجه حضورشون بشن بسیار عالی بود .

    1. Avatar for Sisoog OS Sisoog OS گفت:

      سلام دوست عزیز
      بازنشر و معرفی سایت هایی مثل سایت ما توسط دوستانی مثل تنها سرمایه تبلیغاتی ما هستند

  2. Avatar for رضا رضا گفت:

    سلام . ممنون بابت امورش خوبتون . این کتابخانه برای ESP32 کار نمیکند . برای اون از چه کتابخانه ای و چه کدهایی باید استفاده کنیم

    1. Avatar photo Digi Boy گفت:

      درود بر شما، از نصب بودن کتابخانه اطمینان حاصل کنید، این کتابخانه هم میتونه مفید باشه:
      https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiMulti/WiFiMulti.ino

  3. Avatar for reza reza گفت:

    سلام
    تشکر بابت مقاله آموزنده.

    1. Avatar for Sisoog OS Sisoog OS گفت:

      سلام متشکر

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *