فهرست مطالب:

ESP8266 و ESP32 با WiFiManager: 10 مرحله
ESP8266 و ESP32 با WiFiManager: 10 مرحله

تصویری: ESP8266 و ESP32 با WiFiManager: 10 مرحله

تصویری: ESP8266 و ESP32 با WiFiManager: 10 مرحله
تصویری: Using Heltec ESP32 OLED Wifi Kit 2024, جولای
Anonim
Image
Image
پینوت
پینوت

آیا با WiFiManager آشنا هستید؟ این یک کتابخانه است که به عنوان مدیر اتصال بی سیم عمل می کند ، و با استفاده از آن ، راهی آسان تر برای پیکربندی Access Point و Station داریم. چندین پیشنهاد برای بحث در مورد این موضوع دریافت کرده ام ؛ بنابراین امروز شما را با این کتابخانه و عملکردهای آن آشنا می کنم. من همچنین استفاده از آن را با ESP32 و ESP8266 نشان خواهم داد.

مرحله 1: PINOUT

پینوت
پینوت

در اینجا PINOUT دو دستگاهی را که استفاده می کنیم نشان می دهم:

  • NodeMCU ESP-12E
  • NodeMCU ESP-WROOM-32

مرحله 2: WiFiManager

WiFiManager واقعاً چیزی نیست جز یک کتابخانه که روی WiFi.h برای مدیریت آسان اتصالات بی سیم نوشته شده است. به یاد داشته باشید که با استفاده از آن ، ما امکانات بیشتری برای پیکربندی Access Point و Station داریم. برای حالت ایستگاه ، ما از طریق یک پورتال در مرورگر پیکربندی می کنیم.

برخی از ویژگی ها:

• بستگی به اتصال خودکار دارد

• راه اندازی پورتال پیکربندی غیر خودکار

• بصورت انتخابی در حالت دوگانه عمل می کند

مرحله 3: چگونه کار می کند

چگونه کار می کند
چگونه کار می کند
چگونه کار می کند
چگونه کار می کند

ESP هنگام اتصال یک پورت پیکربندی WiFi را راه اندازی می کند و داده های پیکربندی را در حافظه غیر فرار ذخیره می کند. متعاقباً ، در صورتی که دکمه ای در ماژول ESP فشار داده شود ، پورت پیکربندی دوباره شروع به کار می کند.

در اینجا می توانید جریان پیکربندی را بررسی کرده و مرحله به مرحله این کار را دنبال کنید:

1. با استفاده از هر دستگاه مجهز به WiFi با مرورگر ، به نقطه دسترسی تازه ایجاد شده متصل شوید و آدرس 192.168.4.1 را وارد کنید.

2. روی صفحه دو گزینه برای اتصال به یک شبکه موجود خواهید داشت:

• WiFi را پیکربندی کنید

• پیکربندی WiFi (بدون اسکن)

3. یکی از شبکه ها را انتخاب کرده و رمز عبور (در صورت نیاز) را وارد کنید. سپس ذخیره کرده و منتظر بمانید تا ESP راه اندازی مجدد شود.

4. در پایان بوت ، ESP سعی می کند به شبکه ذخیره شده متصل شود. اگر نمی توانید این کار را انجام دهید ، یک Access Point را فعال می کنید.

مرحله 4: کتابخانه ها

کتابخانه ها
کتابخانه ها

کتابخانه "WifiManager-ESP32" را اضافه کنید.

به https://github.com/zhouhan0126/WIFIMANAGER-ESP32 بروید و کتابخانه را بارگیری کنید.

فایل را از حالت فشرده خارج کرده و در پوشه کتابخانه های Arduino IDE قرار دهید.

C: / پرونده های برنامه (x86) / Arduino / کتابخانه ها

کتابخانه "DNSServer-ESP32" را اضافه کنید.

به پیوند https://github.com/zhouhan0126/DNSServer---esp32 بروید و کتابخانه را بارگیری کنید.

فایل را از حالت فشرده خارج کرده و در پوشه کتابخانه های Arduino IDE قرار دهید.

C: / پرونده های برنامه (x86) / Arduino / کتابخانه ها

کتابخانه "WebServer-ESP32" را اضافه کنید.

به پیوند https://github.com/zhouhan0126/WebServer-esp32 بروید و کتابخانه را بارگیری کنید.

فایل را از حالت فشرده خارج کرده و در پوشه کتابخانه های Arduino IDE قرار دهید.

C: / پرونده های برنامه (x86) / Arduino / کتابخانه ها

توجه داشته باشید:

کتابخانه WiFiManager-ESP32 در حال حاضر دارای تنظیماتی است که با ESP8266 کار می کند ، بنابراین ما فقط از آن به جای دو فای WiFiManager (یکی برای هر نوع تراشه) استفاده می کنیم.

همانطور که بعداً خواهیم دید ، ESP8266WiFi و ESP8266WebServer کتابخانه هایی هستند که نیازی به بارگیری آنها نداریم ، زیرا وقتی ما ESP8266 را در Arduino IDE نصب می کنیم ، قبلاً آمده اند.

مرحله 5: توابع

کارکرد
کارکرد
کارکرد
کارکرد
کارکرد
کارکرد

در اینجا برخی از عملکردهایی است که WiFiManager به ما ارائه می دهد.

1. autoConnect

عملکرد autoConnect وظیفه ایجاد نقطه دسترسی را بر عهده دارد. ما می توانیم از آن به سه روش استفاده کنیم.

• autoConnect ("نام شبکه" ، "رمز عبور") ؛ - شبکه ای با نام و رمز عبور تعریف شده ایجاد می کند.

• autoConnect ("نام شبکه") ؛ - ایجاد یک شبکه باز با نام تعریف شده

• اتصال خودکار ()؛ - ایجاد یک شبکه باز و خودکار با نام "ESP" + chipID.

2. startConfigPortal

تابع startConfigPortal مسئول ایجاد نقطه دسترسی بدون تلاش برای اتصال به شبکه ذخیره شده قبلی است.

• startConfigPortal ("نام شبکه" ، "رمز عبور") ؛ - شبکه ای با نام و رمز عبور تعریف شده ایجاد می کند.

• startConfigPortal ()؛ - ایجاد یک شبکه باز و خودکار با نام "ESP" + chipID.

3. getConfigPortalSSID

SSID پورتال را برمی گرداند (نقطه دسترسی)

4. getSSID

با این کار SSID شبکه ای که به آن متصل شده است برمی گردد.

5. getPassword

با این کار رمز شبکه ای که به آن متصل شده است برمی گردد.

6. setDebugOutput

عملکرد setDebugOutput وظیفه چاپ پیام های اشکال زدایی در مانیتور سریال را بر عهده دارد. این پیامها قبلاً در کتابخانه تعریف شده اند. با مرور توابع ، داده ها چاپ می شوند.

به طور پیش فرض ، این عملکرد روی TRUE تنظیم شده است. اگر می خواهید پیام ها را غیرفعال کنید ، کافی است عملکرد را روی FALSE تنظیم کنید.

7. setMinimumSignalQuality

تابع setMinimumSignalQuality وظیفه فیلتر کردن شبکه ها بر اساس کیفیت سیگنال را بر عهده دارد. به طور پیش فرض ، WiFiManager شبکه های ورود به سیستم زیر 8 را نشان نمی دهد.

8. setRemoveDuplicateAPs

عملکرد setRemoveDuplicateAPs مسئول حذف موارد تکراری شبکه است.

به طور پیش فرض روی TRUE تنظیم شده است.

9. setAPStaticIPConfig

عملکرد setAPStaticIPConfig وظیفه تنظیم تنظیمات آدرس استاتیک را در حالت نقطه دسترسی دارد.

(IP ، GATEWAY ، SUBNET)

10. setSTAStaticIPConfig

عملکرد setSTAStaticIPConfig وظیفه تنظیم تنظیمات آدرس استاتیک را در حالت ایستگاه بر عهده دارد.

(IP ، GATEWAY ، SUBNET)

قبل از اتصال خودکار باید دستور را اضافه کنید !!!

11. setAPCallback

عملکرد setAPCallback وظیفه دارد به شما اطلاع دهد که حالت AP شروع به کار کرده است.

پارامتر تابعی است که باید برای نشان دادن آن به عنوان یک فراخوانی ایجاد شود.

12. setSaveConfigCallback

عملکرد setSaveConfigCallback وظیفه اطلاع رسانی به شما را بر عهده دارد که پیکربندی جدیدی ذخیره شده است و اتصال با موفقیت انجام شده است.

پارامتر یک تابع برای ایجاد است و این را به عنوان allback نشان می دهد.

قبل از اتصال خودکار باید دستور را اضافه کنید !!!

مرحله ششم: مونتاژ

مونتاژ
مونتاژ

مثال

در مثال ما ، ما یک نقطه دسترسی با ESP ایجاد می کنیم (کد هم ESP8266 و هم ESP32 را ارائه می دهد). پس از ایجاد AP ، ما از طریق IP 192.168.4.1 (که پیش فرض برای دسترسی به آن است) به پورتال دسترسی خواهیم داشت. بنابراین بیایید شبکه های موجود را دریافت کنیم ، یکی را انتخاب کرده و ذخیره کنیم. از آنجا ، ESP راه اندازی مجدد می شود و سعی می کند به آن متصل شود ، و سپس به عنوان ایستگاه کار می کند و دیگر به عنوان نقطه دسترسی کار نمی کند.

پس از ورود به حالت ایستگاه ، می توانید ESP را فقط از طریق دکمه به حالت Access Point بازگردانید.

مرحله 7: کد

کتابخانه ها

ابتدا اجازه دهید کتابخانه هایی را که استفاده می کنیم تعریف کنیم.

توجه داشته باشید که ما دستورات #if تعریف ، #else و #endif داریم. آنها مشروط به شامل کتابخانه های لازم مربوط به تراشه هستند. این قسمت برای اجرای یک کد در هر دو ESP8266 و ESP32 بسیار مهم است.

اگر تعریف شده باشد (ESP8266)

#شامل // کتابخانه اصلی WiFi ESP8266 #دیگر #شامل // کتابخانه اصلی WiFi ESP32 #endif

اگر تعریف شده باشد (ESP8266)

#include // WebServer محلی برای سرویس دهی به پورتال پیکربندی استفاده می شود

#دیگر

#include // سرور DNS محلی برای هدایت همه درخواست ها به پورت پیکربندی استفاده می شود (https://github.com/zhouhan0126/DNSServer---esp32)

#اندیف

#include // WebServer محلی برای سرویس دهی به پورتال پیکربندی (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (اصلی)

مرحله 8: راه اندازی

در راه اندازی ، ما WiFiManager خود را به ساده ترین روش پیکربندی می کنیم. بیایید فقط تماس های تلفنی را تعریف کرده و شبکه را ایجاد کنیم.

const int PIN_AP = 2؛

void setup () {Serial.begin (9600)؛ pinMode (PIN_AP ، INPUT) ؛ // اعلام objeto wifiManager WiFiManager wifiManager؛

// useizando esse comando، as configurações são apagadas da memória // caso tiver salvo alguma rede para conectar automatamente، ela é apagada. // wifiManager.resetSettings ()؛ // callback para quando entra em modo de configuração AP wifiManager.setAPCallback (configModeCallback) ؛ // callback for quando se conecta em uma rede، ou seja، quando passa a trabalhar em modo estação wifiManager.setSaveConfigCallback (saveConfigCallback)؛ // cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect ("ESP_AP" ، "12345678") ؛ }

مرحله 9: حلقه کنید

در حلقه ، پین دکمه را می خوانیم تا ببینیم آیا فشار داده شده است یا نه ، و سپس متد را برای فعال کردن مجدد حالت APP فراخوانی می کنیم.

حلقه خالی () {

WiFiManager wifiManager ؛ // se o botão foi pressionado if (digitalRead (PIN_AP) == HIGH) {Serial.println ("resetar")؛ // tenta abrir o portal if (! wifiManager.startConfigPortal ("ESP_AP"، "12345678")) {Serial.println ("Falha ao conectar")؛ تاخیر (2000) ؛ ESP.restart ()؛ تاخیر (1000) ؛ } Serial.println ("Conectou ESP_AP !!!")؛ }

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

به یاد داشته باشید که ما از دستور resetSettings () استفاده نمی کنیم. تنظیمات هنوز برای دفعات بعدی که ESP بوت می شود ذخیره می شود.

مرحله 10: تماس های تلفنی

توابع تماس ، که با رویدادها مرتبط هستند ، به شما کمک می کند تا لحظه دقیق عملیات را داشته باشید ، در مورد ما ، وارد حالت AP و حالت ایستگاه شوید. سپس می توانیم روال موردنظر را پیاده سازی کنیم ، برای مثال بازیابی SSID از شبکه متصل.

// callback que indica que o ESP entrou no modo AP

void configModeCallback (WiFiManager *myWiFiManager) {// Serial.println ("وارد حالت پیکربندی") ؛ Serial.println ("Entrou no modo de configuração")؛ Serial.println (WiFi.softAPIP ()) ؛ // imprime o IP do AP Serial.println (myWiFiManager-> getConfigPortalSSID ()) ؛ // imprime o SSID criado da rede

}

// callback que indica que salvamos uma nova rede para se conectar (modo estação)

void saveConfigCallback () {// Serial.println ("باید پیکربندی ذخیره شود")؛ Serial.println ("Configuração salva") ؛ Serial.println (WiFi.softAPIP ()) ؛ // imprime o IP do AP}

توصیه شده: