تحلیل کتابخانه

تحلیل و بررسی کتابخانه WiFi.h

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

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

 


نصب کتابخانه WiFi.h


هنگام نصب افزونه ESP32 در Arduino IDE، این کتابخانه به طور خودکار نصب می شود. اگر ESP32 را نصب نکرده اید، می توانید مراحل زیر را دنبال کنید. با این حال اگر هنوز روش نصب را نمی‌دانید، مطابق توضیحات ادامه دهید. ابتدا در نرم افزار Arduino IDE به مسیر FilePreferences بروید. لینک زیر را در بخش مشخص شده قرار دهید.

 

  • سپس به مسیر Tools > Board > Boards Manager بروید.
  • در بخش board manager  کلمه ESP32  را سرچ کنید و بر روی install  کلیک کنید.

 


فراخوانی کتابخانه


اولین کاری که برای استفاده از قابلیت های وای‌فای ESP32 باید انجام دهید این است که کتابخانه WiFi.h را در کد خود قرار دهید.
#include <WiFi.h>

 


حالت های مختلف در WiFi.h


در برد های ESP32 این امکان فراهم است تا حالت اجرایی وای‌فای را بصورت نر‌افزاری برای پروژه های مختلف تغییر دهیم. برد ESP32 می تواند به عنوان Wi-Fi Station ،Access Point یا هر دو عمل کند. برای تنظیم حالت Wi-Fi از ()WiFi.mode استفاده کنید و حالت مورد نظر را به عنوان آرگومان تنظیم کنید

WiFi.mode(WIFI_STA) در این حالت تراشه ESP به دیگر نقاط دسترسی متصل می‌شود
WiFi.mode(WIFI_AP) در این حالت نقاط دسترسی می‌توانند به یکدیگر متصل شوند
WiFi.mode(WIFI_STA_AP) در این حالت اکان اتصال دیگر ESP ها به این ESP فراهم می‌شود

 


مستندات عملکرد اعضا


WiFi.begin();
WiFi.begin(ssid);
WiFi.begin(ssid, pass);
WiFi.begin(ssid, keyIndex, key);

 

  • ;()WiFi.disconnect

با فراخوانی این تابع  WiFi را از شبکه فعلی قطع می کنید.

WiFi.disconnect();

 

  • ;()WiFi.config

این تابع به شما امکان می دهد آدرس IP ثابت را پیکربندی کنید و همچنین آدرس های DNS  gateway و subnet را روی WiFi تغییر دهید. برخلاف ;()WiFi.begin که به طور خودکار WiFi را برای استفاده از DHCP پیکربندی می کنید، ;()WiFi.config به شما امکان می دهد به صورت دستی آدرس شبکه را تنظیم کنید.

  • ip: آدرس IP دستگاه (آرایه ۴ بایت)
  • dns: آدرس سرور DNS.
  • gateway: آدرس IP گیت‌وی شبکه.
WiFi.config(ip);
WiFi.config(ip, dns);
WiFi.config(ip, dns, gateway);
WiFi.config(ip, dns, gateway, subnet);

 

  • ;()WiFi.setDNS

این تابع به شما این امکان را می‌دهد تا سرور DNS (Domain Name System) را پیکربندی کنید.

WiFi.setDNS(dns_server1)
WiFi.setDNS(dns_server1, dns_server2)

 

  • ;()WiFi.SSID

این تابع SSID شبکه فعلی را که به آن متصل هستید را دریافت می کند. همچنین با وارد کردن نام اکسس پوینت قادر به مشخص کردن هدف برای دریافت اطلاعات هستیم.

WiFi.SSID();
WiFi.SSID(wifiAccessPoint)

 

  • ;()WiFi.BSSID

با فراخوانی این تابع آدرس MAC روتری را که به آن متصل هستید دریافت می کنید.

WiFi.BSSID(bssid);

 

  • ;()WiFi.RSSI

این تابع قدرت سیگنال متصل به روتر را اندازه می گیرد، پارامتر wifiAccessPoint، مشخص می کند که از چه شبکه ای اطلاعات به دست می آید.

WiFi.RSSI();
WiFi.RSSI(wifiAccessPoint);

 

  • ;()WiFi.encryptionType

این تابع نوع رمزگذاری شبکه فعلی را دریافت می کند.با استفاده از پازامتر wifiAccessPoint، مشخص می کنیم که از چه شبکه ای باید اطلاعات را بدست آوریم.

WiFi.encryptionType();
WiFi.encryptionType(wifiAccessPoint);

 

  • ;()WiFi.scanNetworks

این تابع شبکه های WiFi موجود را اسکن می کند و شماره بدست آمده را برمی گرداند، که میتوانیم این مقادیر در سریال مانیتور یا انواع نمایشگر ها نمایش دهیم.

WiFi.scanNetworks();

 

  • ;()WiFi.status

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

WL_CONNECTED: هنگام اتصال به شبکه WiFi اختصاص داده می شود.
WL_NO_SHIELD: اختصاص داده می شود زمانی که هیچ شبکه WiFi وجود ندارد.
WL_IDLE_STATUS: این وضعیت موقتی است که با فراخوانی ;()WiFi.begin فعال می ماند و تا پایان تعداد تلاشها، در نتیجه WL_CONNECT_FAILED. یا برقراری اتصال فعال می شود، در نتیجه WL_CONNECTED.
WL_NO_SSID_AVAIL: اختصاص داده شده در صورت عدم وجود SSID.
WL_SCAN_COMPLETED: پس از اتمام شبکه های اسکن، نمایش داده می شود.
WL_CONNECT_FAILED: وقتی اتصال برای همه تلاش ها ناموفق باشد، این مقدار برگردانده می شود.
WL_CONNECTION_LOST: وقتی اتصال قطع شود، برگردانده می شود.
WL_DISCONNECTED: هنگام قطع شدن از شبکه اختصاص داده می شود.

WiFi.status();

 

  • ;()WiFi.getSocket
این تابع اولین socket  موجود را دریافت می کند.
WiFi.getSocket();

 

  • ;()WiFi.macAddress
آدرس MAC تراشه WiFi شما را دریافت می کند. و در ادامه می‌توانید این مقدار را نمایش دهید.
WiFi.macAddress(mac);

 


قطعات سازگار با کتابخانه


این کتابخانه با تمام تراشه های سری ESP32 ساخت شرکت espressif همخوانی دارد. نمونه هایی مانند سری تراشه هایی مانند WROOM و WROVER از این موارد هستند.

 


جمع بندی


در این آموزش مجموعه ای از پرکاربردترین و مفیدترین عملکردهای Wi-Fi ESP32 را بررسی کردیم. اگرچه مثالهای زیادی برای استفاده از قابلیتهای Wi-Fi ESP32 وجود دارد، اما اسناد کمی در مورد نحوه استفاده از توابع Wi-Fi با ESP32 با استفاده از Arduino IDE وجود دارد. به همین دلیل تصمیم گرفتیم این راهنما را برای سهولت استفاده از توابع مربوط به Wi-Fi ESP32 در پروژه های شما تهیه کنیم.

 

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

 

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

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

CiferTech

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

۳ دیدگاه