สารบัญ:
- ขั้นตอนที่ 1: PINOUT
- ขั้นตอนที่ 2: WiFiManager
- ขั้นตอนที่ 3: มันทำงานอย่างไร
- ขั้นตอนที่ 4: ห้องสมุด
- ขั้นตอนที่ 5: ฟังก์ชั่น
- ขั้นตอนที่ 6: การประกอบ
- ขั้นตอนที่ 7: รหัส
- ขั้นตอนที่ 8: ตั้งค่า
- ขั้นตอนที่ 9: วนซ้ำ
- ขั้นตอนที่ 10: โทรกลับ
วีดีโอ: ESP8266 และ ESP32 พร้อม WiFiManager: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
คุณคุ้นเคยกับ 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. เชื่อมต่ออัตโนมัติ
ฟังก์ชัน 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 }
แนะนำ:
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: 3 ขั้นตอน
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: เป็นโปรเจ็กต์เครื่องรับย่านความถี่ทั้งหมด ใช้ห้องสมุด Arduino Si4734 ห้องสมุดนี้มีตัวอย่างมากกว่า 20 ตัวอย่าง คุณสามารถฟัง FM ด้วย RDS สถานี AM (MW) ในพื้นที่ SW และสถานีวิทยุสมัครเล่น (SSB) เอกสารทั้งหมดที่นี่
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: 5 ขั้นตอน
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: Micropython เป็นการเพิ่มประสิทธิภาพของ python และมีขนาดเล็กของ python ซึ่งหมายถึงการสร้างสำหรับอุปกรณ์ฝังตัวซึ่งมีข้อจำกัดด้านหน่วยความจำและใช้พลังงานต่ำ Micropython สามารถใช้ได้กับคอนโทรลเลอร์หลายตระกูล ซึ่งรวมถึง ESP8266, ESP32, Ardui
PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & โดยทั่วไปแล้ว PWM จะใช้เพื่อสร้างเอาต์พุตแอนะล็อกจาก MCU ใดๆ และเอาต์พุตแอนะล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก
DIY Smart Scale พร้อมนาฬิกาปลุก (พร้อม Wi-Fi, ESP8266, Arduino IDE และ Adafruit.io): 10 ขั้นตอน (พร้อมรูปภาพ)
DIY Smart Scale พร้อมนาฬิกาปลุก (พร้อม Wi-Fi, ESP8266, Arduino IDE และ Adafruit.io): ในโครงการก่อนหน้านี้ ฉันพัฒนาเครื่องชั่งห้องน้ำอัจฉริยะพร้อม Wi-Fi สามารถวัดน้ำหนักของผู้ใช้ แสดงผลในเครื่อง และส่งไปยังระบบคลาวด์ คุณสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งนี้ได้ที่ลิงค์ด้านล่าง:https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
วิทยุ LoRa Ra-01 พร้อม STM32 และ ESP32: 11 ขั้นตอน
Radio LoRa Ra-01 พร้อม STM32 และ ESP32: เนื่องจากหัวข้อนี้เป็นที่นิยมในหมู่ผู้ที่ติดตามโพสต์ของฉัน ฉันจึงตัดสินใจพูดถึง LoRa วันนี้ อย่างไรก็ตาม ฉันจะพูดถึงเรื่องนี้ด้วยองค์ประกอบใหม่: คราวนี้โดยไม่ต้องใช้ ESP32 แต่ใช้ STM32 แทน ฉันอยากจะโพสท่า