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

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

مدیریت و اتصال همزمان به چند وای فای در 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

 

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

1 نفر

پــــســنــدیـده انـد

توجه

Digi Boy
Digi Boy

به دانش فزای و به یزدان گرای، که او باد جان تو را رهنمای (فردوسی)

دیدگاه ها

6 دیدگاه

  • ایمان
    ۲۶ بهمن ۱۳۹۸

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

    • Sisoog Os
      Sisoog OS
      ۲۷ بهمن ۱۳۹۸

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

  • رضا
    ۲۶ بهمن ۱۳۹۸

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

  • reza
    ۲۴ بهمن ۱۳۹۸

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک