ESP32 ต่อ WiFi ไม่ติด ได้ IP บ้างไม่ได้บ้าง หรือเปิด Web Server แล้วเข้าไม่เจอใช่ไหม? ถ้าคุณกำลังงงกับอาการพวกนี้ บอกเลยว่าคุณไม่ได้เจอคนเดียวครับ เพราะนี่คือปัญหาคลาสสิกที่คนเริ่มต้นทำ ESP32 มักเจอกันแทบทุกคน
บทความนี้ไม่ได้จะสอนยาวแบบตำรา แต่จะพาคุณไล่ดูว่า อาการที่คุณเจออยู่ตอนนี้น่าจะเกี่ยวกับอะไร ควรเช็กตรงไหนก่อน และควรอ่านบทความไหนต่อในคลัสเตอร์ ESP32 WiFi ของ Deva DIY เพื่อให้ไปต่อได้เร็วที่สุด
ถ้าคุณเพิ่งเริ่มต้นและยังไม่คุ้นกับบอร์ดนี้ แนะนำให้อ่าน ESP32 คืออะไร ใช้ทำอะไรได้บ้าง ก่อน แล้วค่อยกลับมาหน้านี้เพื่อไล่ดูปัญหาเรื่อง WiFi แบบใช้งานจริง
ถ้าคุณเจอปัญหาแบบนี้ ให้เริ่มจากตรงนี้ก่อน
ถ้าคุณยังไม่แน่ใจว่าควรอ่านบทความไหนก่อน ลองดูจากอาการที่เจอได้เลยครับ
- ต่อ WiFi ไม่ติดเลย → ไปอ่าน ESP32 เชื่อมต่อ WiFi ไม่ได้ แก้ยังไง?
- อยากเข้าใจคำสั่ง WiFi พื้นฐานทั้งหมด → ไปอ่าน ESP32 WiFi Library Functions
- อยากให้ ESP32 จำชื่อ WiFi และรหัสผ่าน → ไปอ่าน ESP32 Preferences – บันทึกค่าการตั้งค่าแบบถาวร
- อยากทำหน้าให้ผู้ใช้กรอก WiFi เอง → ไปอ่าน คู่มือสร้าง WiFi Manager ด้วย ESPAsyncWebServer
- อยากทำ Web Server หรือคุมรีเลย์ผ่านเว็บ → ไปอ่าน ควบคุมรีเลย์ผ่าน Web Server ด้วย ESP32
แนวคิดง่าย ๆ คือ หน้านี้เป็นเหมือนแผนที่ครับ ถ้าคุณยังหาต้นตอปัญหาไม่เจอ ให้อ่านหน้านี้ก่อน แล้วค่อยไปหน้าลึกที่ตรงกับงานของคุณ

ตารางเช็กอาการเบื้องต้นของ ESP32 WiFi
| อาการ | สาเหตุที่เป็นไปได้ | ควรเช็กก่อน |
|---|---|---|
| หา WiFi ไม่เจอ | ใช้ 5GHz, SSID ซ่อน, สัญญาณอ่อน | ลองสแกนเครือข่ายด้วย WiFi.scanNetworks() |
| ต่อ WiFi ไม่สำเร็จ | SSID หรือรหัสผ่านผิด | เช็ก WiFi.status() และลองพิมพ์ค่าออก Serial Monitor |
| ต่อได้แต่เปิดหน้าเว็บไม่เจอ | IP เปลี่ยน, คนละวงเน็ต, router แจก IP ใหม่ | ดู WiFi.localIP() ทุกครั้งหลังเชื่อมต่อสำเร็จ |
| ใช้งานไปสักพักแล้วหลุด | สัญญาณอ่อน, router แกว่ง, โค้ดบล็อกนานเกินไป | ดู RSSI และหลีกเลี่ยง delay() ยาว |
| ใช้ hotspot มือถือแล้วต่อไม่ได้ | มือถือปล่อย 5GHz หรือเปิดโหมดประหยัดพลังงาน | ตั้ง hotspot เป็น 2.4GHz และปิด Data Saver |
คำถามที่พบบ่อยเกี่ยวกับ ESP32 WiFi
ESP32 เชื่อมต่อ WiFi ยังไง?
พื้นฐานที่สุดคือใช้ WiFi.begin(ssid, password) แล้ววนเช็กสถานะด้วย WiFi.status() จนขึ้น WL_CONNECTED แต่ในการใช้งานจริงไม่ควรรอแบบไม่มีที่สิ้นสุด ควรใส่ timeout ด้วย เพื่อป้องกันบอร์ดค้างถ้าใส่ชื่อ WiFi หรือรหัสผ่านผิด
ทำไม ESP32 เชื่อม WiFi ไม่ติด?
สาเหตุที่เจอบ่อยมากคือ ใส่ SSID/Password ผิด, ใช้ WiFi 5GHz, สัญญาณอ่อน หรือ router มีปัญหาเรื่องแจก IP หากคุณเจออาการนี้ตรง ๆ แนะนำให้อ่านต่อที่บทความ ESP32 เชื่อมต่อ WiFi ไม่ได้ แก้ยังไง?
ESP32 รองรับ 5GHz ไหม?
ไม่รองรับครับ ถ้าคุณใช้ WiFi บ้านหรือ hotspot มือถือ ต้องแน่ใจก่อนว่าเครือข่ายที่ปล่อยเป็น 2.4GHz ไม่อย่างนั้น ESP32 จะมองไม่เห็นหรือเชื่อมต่อไม่ได้
เชื่อม WiFi แล้ว จะดู IP ได้ยังไง?
หลังเชื่อมต่อสำเร็จ ให้ใช้ WiFi.localIP() เพื่อดู IP Address ที่ router แจกให้ ESP32 ค่านี้สำคัญมาก เพราะถ้าคุณจะเปิดหน้า Web Server หรือเรียก API จาก ESP32 คุณต้องรู้ IP ตัวนี้ก่อน
ใช้ hotspot จากมือถือแชร์ให้ ESP32 ได้ไหม?
ได้ครับ แต่มีเงื่อนไขว่า hotspot ควรเปิดแบบ 2.4GHz และบางรุ่นต้องปิดโหมดประหยัดพลังงานหรือ Data Saver ด้วย ไม่อย่างนั้นมือถืออาจจำกัดการปล่อยเน็ตจน ESP32 เชื่อมต่อไม่เสถียร
ทำไมบางทีเชื่อมต่อแล้วไม่รับ IP?
อาการนี้เจอได้ถ้า router แจก IP ไม่สำเร็จ, DHCP มีปัญหา, หรืออุปกรณ์ในวงเน็ตเยอะเกินไป เบื้องต้นให้ลองรีบูต ESP32, รีสตาร์ท router และพิมพ์ค่า WiFi.localIP() ตรวจสอบทุกครั้ง ถ้าต้องการ IP คงที่ค่อยพิจารณาใช้ static IP
ESP32 ทำ Access Point (AP) ได้ไหม?
ได้ครับ โดยใช้ WiFi.softAP(ssid, password) แล้ว ESP32 จะปล่อย WiFi ของตัวเองออกมา เหมาะกับงานตั้งค่าเริ่มต้น เช่น ให้ผู้ใช้ต่อเข้าไปกรอกชื่อ WiFi บ้านก่อนใช้งานจริง
WebServer กับ ESPAsyncWebServer ต่างกันยังไง?
WebServer ใช้งานง่าย เหมาะกับงานพื้นฐาน ส่วน ESPAsyncWebServer เหมาะกับงานที่ต้องการความลื่นขึ้น ไม่บล็อก และต่อยอดไป WebSocket หรือ real-time ได้ดีกว่า ถ้าคุณจะทำหน้า config, dashboard หรือหน้า web control ที่ดูดีขึ้น มักจะไปทาง Async มากกว่า
จะทำยังไงให้ ESP32 จำ WiFi ได้?
วิธีที่นิยมคือเก็บค่า SSID และรหัสผ่านลงใน Preferences แล้วอ่านกลับมาใช้ใหม่ตอนบูตครั้งถัดไป วิธีนี้เหมาะมากกับโปรเจกต์ที่ไม่อยากแก้โค้ดใหม่ทุกครั้งเวลาเปลี่ยน WiFi
อยากส่งค่าจาก ESP32 ไปเว็บหรือแอปแบบสด ๆ ควรใช้วิธีไหนดี?
ถ้าต้องการแบบ real-time จริง ๆ เช่น ส่งค่า sensor ทุก 1–2 วินาที หรืออัปเดตสถานะอุปกรณ์ทันที มักใช้ WebSocket เพราะฝั่ง client ไม่ต้องรีเฟรชหน้าเองตลอด แต่ถ้าเป็นการส่งค่าเป็นครั้ง ๆ หรือเรียก endpoint ธรรมดา HTTP GET/POST ก็ยังใช้ได้ดี
ลำดับเช็ก 5 ขั้น ถ้า ESP32 ต่อ WiFi ไม่ได้
- เช็กก่อนว่าเครือข่ายเป็น 2.4GHz ไม่ใช่ 5GHz
- ตรวจสอบ SSID และรหัสผ่าน ว่าพิมพ์ถูกจริงหรือไม่
- ลองสแกน WiFi รอบตัวก่อน เพื่อดูว่า ESP32 มองเห็นเครือข่ายนี้หรือเปล่า
- ใส่ timeout ตอนเชื่อมต่อ อย่าปล่อยให้ while loop รอไปเรื่อย ๆ
- พิมพ์ WiFi.status() และ WiFi.localIP() ออก Serial Monitor เพื่อดูว่าติดตรงเชื่อมหรือไม่รับ IP
หลายคนพลาดตรงที่รีบไปแก้โค้ดลึก ๆ ทั้งที่ต้นเหตุจริงเป็นแค่ hotspot ปล่อย 5GHz หรือพิมพ์รหัสผ่านผิดครับ เพราะฉะนั้นเริ่มจาก 5 ขั้นนี้ก่อน จะช่วยประหยัดเวลาได้เยอะมาก
โค้ดตัวอย่างสั้นสำหรับเช็กการเชื่อมต่อ WiFi
ถ้าคุณอยากเช็กเร็ว ๆ ว่า ESP32 ต่อ WiFi ได้หรือยัง ลองโค้ดนี้ก่อนครับ
#include <WiFi.h>
const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASSWORD";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi...");
unsigned long startAttemptTime = millis();
const unsigned long timeoutMs = 10000;
while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < timeoutMs) {
delay(300);
Serial.print(".");
}
Serial.println();
if (WiFi.status() == WL_CONNECTED) {
Serial.println("WiFi connected");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
} else {
Serial.println("Connect failed");
}
}
void loop() {
}
อ่านต่อบทความไหน ถ้าคุณจะทำโปรเจกต์จริง
- ESP32 WiFi Library Functions – ถ้าคุณอยากเข้าใจภาพรวมคำสั่ง WiFi
- ESP32 เชื่อมต่อ WiFi ไม่ได้ แก้ยังไง? – ถ้าคุณเจออาการต่อไม่ติดหรือไม่รับ IP
- ESP32 Preferences – บันทึกค่าการตั้งค่าแบบถาวร – ถ้าคุณอยากให้บอร์ดจำ WiFi
- คู่มือสร้าง WiFi Manager ด้วย ESPAsyncWebServer – ถ้าคุณอยากให้ผู้ใช้กรอก WiFi เอง
- ควบคุมรีเลย์ผ่าน Web Server ด้วย ESP32 – ถ้าคุณอยากคุมอุปกรณ์ผ่านหน้าเว็บ
สรุป
ESP32 WiFi ไม่ได้ยากเกินไปครับ แต่ปัญหาที่เจอบ่อยมักเป็นเรื่องเดิม ๆ เช่น ใช้ 5GHz, รหัสผ่านผิด, ไม่รู้ IP, hotspot มือถือไม่เหมาะ หรือโค้ดรอเชื่อมต่อแบบไม่มี timeout
ถ้าคุณยังไม่รู้ว่าปัญหาตัวเองอยู่ตรงไหน ให้ใช้หน้านี้เป็นจุดเริ่มต้นก่อน แล้วค่อยไล่อ่านหน้าลึกที่ตรงกับงานของคุณ แบบนี้จะเร็วกว่าและไม่หลงในคลัสเตอร์บทความครับ



