جدول المحتويات:

ESP8266 و ESP32 مع WiFiManager: 10 خطوات
ESP8266 و ESP32 مع WiFiManager: 10 خطوات

فيديو: ESP8266 و ESP32 مع WiFiManager: 10 خطوات

فيديو: ESP8266 و ESP32 مع WiFiManager: 10 خطوات
فيديو: ESP8266 Home Automation with AI (ESP8266 - ESP32) | CADIO Home Automation 2024, يوليو
Anonim
Image
Image
بينوت
بينوت

هل أنت معتاد على WiFiManager؟ إنها مكتبة تعمل كمدير اتصال لاسلكي ، ومعها ، لدينا طريقة أسهل لتهيئة كل من نقطة الوصول والمحطة. لقد تلقيت عدة اقتراحات لمناقشة هذا الموضوع ؛ لذلك سوف أقدم لكم اليوم هذه المكتبة ووظائفها. سأقوم أيضًا بتقديم عرض توضيحي لاستخدامه مع كل من ESP32 و ESP8266.

الخطوة 1: PINOUT

بينوت
بينوت

أعرض هنا PINOUT للجهازين اللذين سنستخدمهما:

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

الخطوة 2: WiFiManager

إن WiFiManager ليس أكثر من مكتبة مكتوبة فوق WiFi.h لإدارة الاتصالات اللاسلكية بسهولة. تذكر أنه معها ، لدينا تسهيلات أكبر لتهيئة كل من نقطة الوصول والمحطة. بالنسبة إلى وضع المحطة ، نقوم بالتكوين من خلال بوابة في المتصفح.

بعض الملامح:

• يعتمد على التوصيل التلقائي

• تهيئة بوابة التكوين غير التلقائي

• يعمل بشكل انتقائي في الوضع المزدوج

الخطوة 3: كيف يعمل

كيف تعمل
كيف تعمل
كيف تعمل
كيف تعمل

سيبدأ ESP بوابة تكوين WiFi عند الاتصال وسيحفظ بيانات التكوين في ذاكرة غير متطايرة. بعد ذلك ، ستبدأ بوابة التكوين مرة أخرى فقط إذا تم الضغط على زر في وحدة ESP.

هنا يمكنك التحقق من تدفق التكوين واتباع هذه الخطوة بخطوة:

1. باستخدام أي جهاز يدعم WiFi مع متصفح ، اتصل بنقطة الوصول التي تم إنشاؤها حديثًا وأدخل العنوان 192.168.4.1.

2. على الشاشة ، سيكون لديك خياران للاتصال بشبكة موجودة:

• تكوين WiFi

• تكوين WiFi (بدون مسح ضوئي)

3. اختر إحدى الشبكات وأدخل كلمة المرور (إذا لزم الأمر). ثم احفظ وانتظر حتى يتم إعادة تشغيل ESP.

4. في نهاية التمهيد ، يحاول ESP الاتصال بالشبكة المحفوظة. إذا لم تتمكن من القيام بذلك ، فسوف تقوم بتمكين نقطة الوصول.

الخطوة 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 libs (واحدة لكل نوع من الشرائح).

كما سنرى لاحقًا ، فإن ESP8266WiFi و ESP8266WebServer هي مكتبات لا نحتاج إلى تنزيلها ، لأنها تأتي بالفعل عند تثبيت ESP8266 في Arduino IDE.

الخطوة 5: الوظائف

المهام
المهام
المهام
المهام
المهام
المهام

فيما يلي بعض الوظائف التي يوفرها لنا WiFiManager.

1. الاتصال التلقائي

وظيفة التوصيل التلقائي هي المسؤولة عن إنشاء نقطة وصول. يمكننا استخدامه بثلاث طرق.

• الاتصال التلقائي ("اسم الشبكة" ، "كلمة المرور") ؛ - ينشئ شبكة بالاسم المحدد وكلمة المرور.

• الاتصال التلقائي ("اسم الشبكة") ؛ - ينشئ شبكة مفتوحة بالاسم المحدد.

• الاتصال التلقائي () ؛ - يُنشئ شبكة مفتوحة ومُسماة تلقائيًا باسم "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 ، شبكة فرعية)

10. setSTAStaticIPConfig

وظيفة setSTAStaticIPConfig مسؤولة عن ضبط إعدادات العنوان الثابت عندما تكون في وضع المحطة.

(IP ، GATEWAY ، شبكة فرعية)

يجب عليك إضافة الأمر قبل التوصيل التلقائي !!!

11. تعيين APCallback

وظيفة setAPCallback هي المسؤولة عن إعلامك ببدء وضع AP.

المعلمة هي وظيفة يجب إنشاؤها للإشارة إليها على أنها رد اتصال ؛

12. setSaveConfigCallback

وظيفة setSaveConfigCallback هي المسؤولة عن إعلامك بأنه تم حفظ تكوين جديد وأن الاتصال قد اكتمل بنجاح.

المعلمة هي وظيفة لإنشاء وتشير إلى هذا باعتباره allback.

يجب عليك إضافة الأمر قبل التوصيل التلقائي !!!

الخطوة 6: التجميع

المجسم
المجسم

مثال

في مثالنا ، سننشئ نقطة وصول باستخدام ESP (سيخدم الرمز كلاً من ESP8266 و ESP32). بعد إنشاء نقطة الوصول ، سنصل إلى البوابة عبر IP 192.168.4.1 (وهو الإعداد الافتراضي للوصول إليه). لذلك دعنا نحصل على الشبكات المتاحة ، اختر واحدة واحفظها. من هناك ، سيتم إعادة تشغيل ESP ومحاولة الاتصال به ، وبعد ذلك سيعمل كمحطة ولم يعد كنقطة وصول.

بعد الدخول إلى وضع المحطة ، يمكنك إعادة ESP إلى وضع نقطة الوصول فقط من خلال الزر.

الخطوة 7: الكود

مكتبات

أولاً ، دعنا نحدد المكتبات التي سنستخدمها.

لاحظ أن لدينا أوامر #if و # else و #endif. وهي مشروطة بتضمين المكتبات الضرورية المتعلقة بالشريحة. هذا الجزء مهم للغاية لتشغيل نفس الكود على كل من ESP8266 و ESP32.

#if تعريف (ESP8266)

# تضمين // ESP8266 مكتبة WiFi الأساسية # آخر # تضمين // مكتبة WiFi الأساسية ESP32 #endif

#if تعريف (ESP8266)

#include // Local WebServer المستخدم لخدمة بوابة التكوين

#آخر

# تضمين // خادم DNS المحلي المستخدم لإعادة توجيه جميع الطلبات إلى بوابة التكوين (https://github.com/zhouhan0126/DNSServer---esp32)

#إنهاء إذا

# تضمين // خادم الويب المحلي المستخدم لخدمة بوابة التكوين (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 ؛

إعداد باطل () {Serial.begin (9600) ؛ pinMode (PIN_AP ، INPUT) ؛ // أعلن عن استخدام wifiManager WiFiManager wifiManager ؛

// utilizando esse comando، as configurações são apagadas da memória // caso tiver salvo alguma rede para conectar automaticamente، ela é apagada. // wifiManager.resetSettings () ، // callback para quando entra em modo de configuração AP wifiManager.setAPCallback (configModeCallback) ؛ // callback para 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: التكرار

في الحلقة ، سنقرأ دبوس الزر لنرى ما إذا كان قد تم الضغط عليه ، ثم سنقوم باستدعاء الطريقة لإعادة تمكين وضع AP.

حلقة فارغة() {

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 من الشبكة المتصلة ، على سبيل المثال.

// رد الاتصال que indica que o ESP entrou no modo AP

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)

باطل saveConfigCallback () {// Serial.println ("should save config") ؛ Serial.println ("Configuração salva") ؛ Serial.println (WiFi.softAPIP ()) ؛ // Imprime o IP do AP}

موصى به: