สารบัญ:

ESP8266 และ ESP32 พร้อม WiFiManager: 10 ขั้นตอน
ESP8266 และ ESP32 พร้อม WiFiManager: 10 ขั้นตอน

วีดีโอ: ESP8266 และ ESP32 พร้อม WiFiManager: 10 ขั้นตอน

วีดีโอ: ESP8266 และ ESP32 พร้อม WiFiManager: 10 ขั้นตอน
วีดีโอ: สอนการใช้ WiFiManager กับ ESP8266 (Nodemcu) | WiFiManager with ESP8266 | Arduino#21 | เฮ็ดสิดี 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 อยู่แล้ว ดังนั้นเราจะใช้สิ่งนี้เท่านั้น แทนที่จะใช้ WiFiManager libs สองตัว (อันหนึ่งสำหรับชิปแต่ละประเภท)

ดังที่เราจะได้เห็นในภายหลัง ESP8266WiFi และ ESP8266WebServer เป็นไลบรารี่ที่เราไม่จำเป็นต้องดาวน์โหลด เพราะมันมีอยู่แล้วเมื่อเราติดตั้ง ESP8266 ใน Arduino IDE

ขั้นตอนที่ 5: ฟังก์ชั่น

ฟังก์ชั่น
ฟังก์ชั่น
ฟังก์ชั่น
ฟังก์ชั่น
ฟังก์ชั่น
ฟังก์ชั่น

นี่คือฟังก์ชันบางอย่างที่ WiFiManager มอบให้เรา

1. เชื่อมต่ออัตโนมัติ

ฟังก์ชัน autoConnect มีหน้าที่สร้างจุดเข้าใช้งาน เราสามารถใช้ได้สามวิธี

• autoConnect ("ชื่อเครือข่าย", "รหัสผ่าน"); - สร้างเครือข่ายด้วยชื่อและรหัสผ่านที่กำหนด

• autoConnect ("ชื่อเครือข่าย"); - สร้างเครือข่ายเปิดด้วยชื่อที่กำหนด

• เชื่อมต่ออัตโนมัติ (); - สร้างเครือข่ายแบบเปิดและตั้งชื่อโดยอัตโนมัติโดยใช้ชื่อ 'ESP' + chipID

2. startConfigPortal

ฟังก์ชัน startConfigPortal มีหน้าที่สร้างจุดเข้าใช้งานโดยไม่ต้องพยายามเชื่อมต่อกับเครือข่ายที่บันทึกไว้ก่อนหน้านี้

• startConfigPortal ("ชื่อเครือข่าย", "รหัสผ่าน"); - สร้างเครือข่ายด้วยชื่อและรหัสผ่านที่กำหนด

• startConfigPortal (); - สร้างเครือข่ายแบบเปิดและตั้งชื่อโดยอัตโนมัติโดยใช้ชื่อ 'ESP' + chipID

3.getConfigPortalSSID

ส่งกลับ SSID ของพอร์ทัล (จุดเข้าใช้งาน)

4.getSSID

ส่งคืน SSID ของเครือข่ายที่เชื่อมต่อ

5. รับรหัสผ่าน

ส่งคืนรหัสผ่านของเครือข่ายที่เชื่อมต่อ

6. setDebugOutput

ฟังก์ชัน setDebugOutput ทำหน้าที่พิมพ์ข้อความแก้ไขข้อบกพร่องบนจอภาพแบบอนุกรม ข้อความเหล่านี้ถูกกำหนดไว้แล้วในไลบรารี เมื่อคุณผ่านฟังก์ชันต่างๆ ข้อมูลจะถูกพิมพ์ออกมา

โดยค่าเริ่มต้น ฟังก์ชันนี้ถูกตั้งค่าเป็น TRUE หากคุณต้องการปิดใช้งานข้อความ ให้ตั้งค่าฟังก์ชันเป็น FALSE

7. setMinimumSignalQuality

ฟังก์ชัน setMinimumSignalQuality มีหน้าที่กรองเครือข่ายตามคุณภาพสัญญาณ ตามค่าเริ่มต้น WiFiManager จะไม่แสดงเครือข่ายการลงชื่อเข้าใช้ที่ต่ำกว่า 8%

8. setRemoveDuplicateAPs

ฟังก์ชัน setRemoveDuplicateAPs มีหน้าที่ในการลบรายการที่ซ้ำกันของเครือข่าย

โดยค่าเริ่มต้น จะถูกตั้งค่าเป็น TRUE

9. setAPStaticIPConfig

ฟังก์ชัน setAPStaticIPConfig มีหน้าที่ในการตั้งค่าที่อยู่คงที่เมื่ออยู่ในโหมดจุดเข้าใช้งาน

(IP, เกตเวย์, ซับเน็ต)

10. setSTAStaticIPConfig

ฟังก์ชัน setSTAStaticIPConfig มีหน้าที่ในการตั้งค่าที่อยู่คงที่เมื่ออยู่ในโหมดสถานี

(IP, เกตเวย์, ซับเน็ต)

คุณต้องเพิ่มคำสั่งก่อนเชื่อมต่ออัตโนมัติ!!!

11. setAPCallback

ฟังก์ชัน setAPCallback มีหน้าที่แจ้งให้คุณทราบว่าโหมด AP ได้เริ่มต้นขึ้นแล้ว

พารามิเตอร์เป็นฟังก์ชันที่ต้องสร้างขึ้นเพื่อระบุว่าเป็นการเรียกกลับ

12. setSaveConfigCallback

ฟังก์ชัน setSaveConfigCallback มีหน้าที่แจ้งให้คุณทราบว่ามีการบันทึกการกำหนดค่าใหม่และการเชื่อมต่อเสร็จสมบูรณ์

พารามิเตอร์เป็นฟังก์ชันในการสร้างและระบุว่าเป็น allback

คุณต้องเพิ่มคำสั่งก่อน autoConnect !!!

ขั้นตอนที่ 6: การประกอบ

การประกอบ
การประกอบ

ตัวอย่าง

ในตัวอย่างของเรา เราจะสร้างจุดเข้าใช้งานด้วย ESP (รหัสจะใช้ได้ทั้ง ESP8266 และ ESP32) หลังจากสร้าง AP เราจะเข้าถึงพอร์ทัลผ่าน IP 192.168.4.1 (ซึ่งเป็นค่าเริ่มต้นในการเข้าถึง) มาดูเครือข่ายที่พร้อมใช้งานกัน เลือกหนึ่งเครือข่ายแล้วบันทึก จากนั้น ESP จะรีสตาร์ทและพยายามเชื่อมต่อ จากนั้นจึงทำงานเป็นสถานี ไม่ใช่จุดเข้าใช้งานอีกต่อไป

หลังจากเข้าสู่โหมดสถานี คุณสามารถทำให้ ESP กลับสู่โหมดจุดเข้าใช้งานผ่านปุ่มเท่านั้น

ขั้นตอนที่ 7: รหัส

ห้องสมุด

ขั้นแรก มากำหนดไลบรารีที่เราจะใช้กันก่อน

โปรดทราบว่าเรามีคำสั่ง #if กำหนด #else และ #endif มีเงื่อนไขในการรวมไลบรารีที่จำเป็นที่เกี่ยวข้องกับชิป ส่วนนี้มีความสำคัญอย่างยิ่งในการรันโค้ดเดียวกันทั้งบน ESP8266 และ ESP32

#ถ้ากำหนดไว้ (ESP8266)

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

#ถ้ากำหนดไว้ (ESP8266)

#include //โลคัลเว็บเซิร์ฟเวอร์ที่ใช้เพื่อให้บริการพอร์ทัลคอนฟิกูเรชัน

#อื่น

#include // Local DNS Server ใช้สำหรับเปลี่ยนเส้นทางคำขอทั้งหมดไปยังพอร์ทัลการกำหนดค่า (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include //Local 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;

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); โหมดพิน (PIN_AP, INPUT); //ประกาศ 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 é aapagada.//ใช้ esse comando // wifiManager.resetSettings(); //โทรกลับสำหรับ 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 หรือพอร์ทัล if(!wifiManager.startConfigPortal("ESP_AP", "12345678")){ Serial.println("Falha ao conectar"); ล่าช้า (2000); ESP.รีสตาร์ท(); ล่าช้า (1000); } Serial.println("Conectou ESP_AP!!!"); }

เมื่อคุณกดปุ่ม ESP จะออกจากโหมดสถานีและเปิดจุดเข้าใช้งานและพอร์ทัลของคุณ

จำไว้ว่าเราไม่ได้ใช้คำสั่ง resetSettings () การตั้งค่าจะยังคงถูกบันทึกไว้ในครั้งถัดไปที่บูท ESP

ขั้นตอนที่ 10: โทรกลับ

ฟังก์ชันเรียกกลับซึ่งเชื่อมโยงกับเหตุการณ์ ช่วยให้คุณมีช่วงเวลาของการดำเนินการ ในกรณีของเรา เข้าสู่โหมด AP และโหมด Station จากนั้นเราสามารถดำเนินการตามขั้นตอนที่ต้องการได้ เช่น การดึง SSID จากเครือข่ายที่เชื่อมต่อ เป็นต้น

// โทรกลับ que indica que o ESP entrou ไม่มี modo AP

ถือเป็นโมฆะ configModeCallback (WiFiManager * myWiFiManager) { // Serial.println ("เข้าสู่โหมดการกำหนดค่า"); Serial.println("Entrou no modo de configuração"); Serial.println(WiFi.softAPIP()); // imprime o IP ทำ AP Serial.println(myWiFiManager->getConfigPortalSSID()); // imprime o SSID criado da rede

}

//โทรกลับ que indica que salvamos uma nova rede para se conectar (modo estação)

เป็นโมฆะ saveConfigCallback () { // Serial.println ("ควรบันทึกการกำหนดค่า"); Serial.println("การตั้งค่าคอนฟิกเอาต์ซัลวา"); Serial.println(WiFi.softAPIP()); // imprime o IP ทำ AP }

แนะนำ: