ภาพอินโฟกราฟิกแสดง ESP32 สแกนหา WiFi รอบตัว พร้อมไอคอน Router และข้อความ "ESP32 Scan WiFi" สำหรับบทความสอนใช้งาน

สแกน WiFi ด้วย ESP32 – ค้นหาเครือข่ายรอบตัวง่าย ๆ ในไม่กี่บรรทัด

🔧 Overview: ทำไมต้องสแกน WiFi?


ESP32 สามารถสแกนหาเครือข่าย WiFi รอบตัวได้ในไม่กี่วินาที
ประโยชน์หลัก:

  • ใช้ทำ WiFi Manager เพื่อให้ผู้ใช้เลือกเครือข่ายได้
  • ตรวจสอบสัญญาณ WiFi ในพื้นที่ติดตั้งระบบ
  • ใช้ในการ ดีบักระบบ Smart Farm ว่าเจอ WiFi ไหม

📚 ถ้ายังไม่รู้จัก ESP32 มาก่อน อ่านก่อนที่นี่

ESP32 คืออะไร? – บอร์ดตัวจิ๋ว พลังโคตรเยอะ

📦 อุปกรณ์ที่ใช้

 

  • ESP32 Dev Module (NodeMCU, DOIT, หรือรุ่นอื่น ๆ)
  • สาย USB Type C หรือ MicroUSB
  • โปรแกรม Arduino IDE

 

📲 โค้ด Arduino IDE สำหรับสแกน WiFi

#include "WiFi.h"

void setup() {
  Serial.begin(115200);
  delay(1000);

  Serial.println("กำลังสแกน WiFi...");

  int n = WiFi.scanNetworks(); // สแกนทั้งหมด
  if (n == 0) {
    Serial.println("ไม่พบเครือข่าย");
  } else {
    Serial.printf("พบทั้งหมด %d เครือข่าย:\n", n);
    for (int i = 0; i < n; ++i) {
      Serial.printf("%d: %s (RSSI: %d) %s\n", 
        i + 1,
        WiFi.SSID(i).c_str(), 
        WiFi.RSSI(i),
        (WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? "เปิด" : "มีรหัส"
      );
    }
  }
}

void loop() {
  // ไม่ทำอะไรซ้ำ
}

🧠 อธิบายโค้ด

บรรทัดคำสั่งความหมาย
WiFi.scanNetworks()ค้นหา WiFi รอบตัว 
WiFi.SSID(i)ชื่อ WiFi ที่พบ 
WiFi.RSSI(i)ความแรงสัญญาณ (dBm) 
WiFi.encryptionType(i)ตรวจว่าเป็นแบบเปิดหรือมีรหัส 

📈 ตัวอย่างผลลัพธ์บน Serial Monitor

พบทั้งหมด 3 เครือข่าย:
1: MyHome (RSSI: -55) มีรหัส
2: ESP32Lab (RSSI: -65) เปิด
3: AIS_Fiber (RSSI: -70) มีรหัส

🔗 ใช้ต่อยอดอะไรได้บ้าง?

⚠️ ข้อควรระวัง

  • คำสั่ง scanNetworks() ใช้เวลาประมาณ 3–6 วินาที

  • อย่าเรียกคำสั่งนี้ถี่เกินไปใน loop → ควรกำหนดให้ scan เมื่อกดปุ่มหรือรีเควสต์จากผู้ใช้

📊 Flowchart การทำงาน

[เริ่มต้น]

เปิด Serial Monitor

เรียก WiFi.scanNetworks()

วนลูปแสดงผล SSID + RSSI

จบ

📌 สรุป

  • ESP32 สแกน WiFi ได้ในไม่กี่บรรทัด

  • ใช้ได้กับระบบ WiFi Manager / การดีบัก / ตรวจความแรงสัญญาณ

  • เป็นพื้นฐานสำคัญก่อนจะต่อยอดไปใช้กับระบบฟาร์มอัตโนมัติ

❓FAQ ESP32 Scan WiFi – คำถามที่คนค้นหาบ่อย

Q: ESP32 หา WiFi ไม่เจอ ทำยังไง?
A: ตรวจสอบว่า:

  • ใช้ WiFi 2.4GHz (ESP32 ไม่รองรับ 5GHz)
  • อยู่ในพื้นที่มีสัญญาณชัดเจน
  • Router ไม่ซ่อน SSID (Hidden)

Q: ESP32 สแกน WiFi ได้กี่เครือข่าย?
A: ไม่มีจำกัดแน่นอน ขึ้นอยู่กับจำนวน WiFi รอบตัว และระยะสัญญาณ

Q: ESP32 สแกน WiFi แล้วต่ออัตโนมัติได้ไหม?
A: ได้! ต้องนำ SSID และ password ไปใช้กับ WiFi.begin()
→ ดูวิธีบันทึก WiFi ด้วย Preferences

Q: ESP32 รู้ได้ยังไงว่า WiFi มีรหัสหรือไม่?
A: ใช้ WiFi.encryptionType(i) → ถ้าเป็น WIFI_AUTH_OPEN แปลว่าเปิด

Q: ESP32 ดู SSID ของ WiFi ที่เจอได้ยังไง?
A: ใช้คำสั่ง WiFi.SSID(i) เพื่อดึงชื่อ WiFi ที่พบ

Q: ESP32 สแกน WiFi แล้วแสดงผลบนเว็บได้ไหม?
A: ได้ โดยใช้ ESPAsyncWebServer ร่วมกับ HTML
ดูตัวอย่าง Web Server แสดง WiFi Scan

Q: สแกน WiFi กับ ESP8266 เหมือนกับ ESP32 ไหม?
A: หลักการคล้ายกัน แต่ ESP8266 ต้องใช้ ESP8266WiFi.h แทน WiFi.h

Q: ESP32 ดูความแรง WiFi ยังไง?
A: ใช้ WiFi.RSSI(i) ค่าจะติดลบ เช่น -40 แรงมาก / -90 อ่อนมาก

Q: ESP32 Scan WiFi บ่อย ๆ มีผลเสียไหม?
A: ถ้าสแกนถี่เกินไป (ทุกวินาที) จะกินพลังงานและอาจทำให้ระบบค้าง แนะนำให้มีดีเลย์หรือสแกนตามคำสั่งผู้ใช้

Q: ESP32 มีตัวอย่างโค้ดสแกน WiFi ไหม?
A: มี พร้อมอธิบายครบ → อ่านบทความ: สแกน WiFi ด้วย ESP32

Shopping Cart
Scroll to Top