תוכן עניינים:

ESP8266 ו- ESP32 עם WiFiManager: 10 שלבים
ESP8266 ו- ESP32 עם WiFiManager: 10 שלבים

וִידֵאוֹ: ESP8266 ו- ESP32 עם WiFiManager: 10 שלבים

וִידֵאוֹ: ESP8266 ו- ESP32 עם WiFiManager: 10 שלבים
וִידֵאוֹ: Использование комплекта Wi-Fi Heltec ESP32 OLED 2024, יולי
Anonim
Image
Image
PINOUT
PINOUT

האם אתה מכיר את WiFiManager? זוהי ספרייה המשמשת כמנהלת חיבורים אלחוטיים, ואיתה יש לנו דרך קלה יותר להגדיר נקודת גישה ותחנה. קיבלתי מספר הצעות לדון בנושא זה; אז היום אציג בפניכם את הספרייה הזו ותפקידיה. אני אעשה הדגמה של השימוש בו גם ב- ESP32 וגם ב- ESP8266.

שלב 1: PINOUT

PINOUT
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, אז נשתמש בזה רק במקום שני libb של WiFiManager (אחד לכל סוג שבב).

כפי שנראה מאוחר יותר, ESP8266WiFi ו- ESP8266WebServer הן ספריות שאיננו צריכים להוריד, מכיוון שהן כבר מגיעות כאשר אנו מתקינים את ESP8266 ב- Arduino IDE.

שלב 5: פונקציות

פונקציות
פונקציות
פונקציות
פונקציות
פונקציות
פונקציות

להלן מספר פונקציות ש- WiFiManager מציע לנו.

1. התחברות אוטומטית

הפונקציה 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.

עליך להוסיף את הפקודה לפני חיבור אוטומטי !!!

שלב 6: הרכבה

הַרכָּבָה
הַרכָּבָה

דוגמא

בדוגמה שלנו, ניצור נקודת גישה עם ESP (הקוד ישמש הן ESP8266 והן ESP32). לאחר יצירת ה- AP, ניגש לפורטל באמצעות IP 192.168.4.1 (שהיא ברירת המחדל לגישה אליו). אז בואו לקבל את הרשתות הזמינות, בחר אחת ושמור. משם ה- ESP יפעיל מחדש וינסה להתחבר אליו, ואז הוא יפעל כתחנה ולא יותר כנקודת גישה.

לאחר הכניסה למצב תחנה, תוכל להפוך את ה- ESP לחזור למצב נקודת גישה רק באמצעות הלחצן.

שלב 7: קוד

ספריות

ראשית בואו נגדיר את הספריות שבהן נשתמש.

שים לב שיש לנו פקודות #if defined, #else ו- #endif. הם מותנים לכלול ספריות נחוצות הנוגעות לשבב. חלק זה חשוב ביותר להפעלת אותו קוד הן ב- ESP8266 והן ב- ESP32.

#if מוגדר (ESP8266)

#include // ESP8266 Core WiFi Library #else #include // ESP32 Core WiFi Library #endif

#if מוגדר (ESP8266)

#include // WebServer Local המשמש לשרת את פורטל התצורה

#אַחֵר

#include // שרת DNS מקומי המשמש להפניית כל הבקשות לפורטל התצורה (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include // WebServer Local המשמש לשרת את פורטל התצורה (https://github.com/zhouhan0126/DNSServer---esp32) #include // קביעת תצורה של WiFi (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (מקורי)

שלב 8: התקנה

בהתקנה, אנו מגדירים את WiFiManager שלנו בצורה הפשוטה ביותר. בואו רק להגדיר את השיחות החוזרות וליצור את הרשת.

const int PIN_AP = 2;

הגדרת void () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // declaração do objeto 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 (); // שיחה חוזרת על מנת להמיר את התצורה של AP wifiManager.setAPCallback (configModeCallback); // callback para quando se conecta em uma rede, ou seja, quando pass 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 פורטל 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 ()); // כלא או כתובת IP ל- AP}

מוּמלָץ: