บทความ: ESP32-C6 WiFi6 เริ่มต้นใช้งานฉบับสมบูรณ์สำหรับผู้เริ่มต้น ปี 2026

คู่มือการเริ่มต้นใช้งาน ESP32-C6 ชิป WiFi6 รุ่นล่าสุดจาก Espressif พร้อมทั้งการติดตั้ง ตัวอย่างโค้ด และโปรเจกต์แรกของคุณ รองรับ Thread, Matter และ Zigbee สำหรับ IoT ยุคใหม่

📅 27 มีนาคม 2026 ⏱️ 15 นาที 🎯 ระดับ: เริ่มต้น บทความใหม่! มีนาคม 2026 🆕
ESP32-C6WiFi6ThreadMatterIoT

1. ภาพรวม ESP32-C6

ESP32-C6 คือไมโครคอนโทรลเลอร์รุ่นล่าสุดจาก Espressif ที่มาพร้อมกับการรองรับ WiFi 6 (802.11ax) และเทคโนโลยีไร้สายหลากหลายรูปแบบ รวมถึง Bluetooth 5.3, Zigbee, Thread และ Matter ทำให้เป็นตัวเลือกที่สมบูรณ์แบบสำหรับโปรเจกต์ IoT และ Smart Home ในยุคปัจจุบัน

💡 ทำไมต้อง ESP32-C6?

  • • รองรับ WiFi 6 ที่เร็วกว่าและเสถียรกว่ารุ่นก่อน
  • • ประหยัดพลังงานด้วยเทคโนโลยี RISC-V ที่ทันสมัย
  • • รองรับ Matter สำหรับ Smart Home ที่เชื่อมต่อกับทุกแพลตฟอร์ม
  • • ราคาถูกและหาซื้อง่ายในตลาด

คุณสมบัติหลัก

  • Processor: RISC-V 32-bit แบบ single-core ที่ 160 MHz
  • Memory: 512 KB SRAM, 320 KB ROM
  • Wireless: WiFi 6 (2.4 GHz), BLE 5.3, Zigbee, Thread
  • Interfaces: GPIO, SPI, I2C, UART, I2S, LED PWM
  • Security: รองรับการเข้ารหัสลับระดับสูง
  • Power: โหมดประหยัดแบตเตอรี่หลากหลาย

2. สเปคทางเทคนิค (Technical Specifications)

รายการสเปค
CPU CoreRISC-V 32-bit @ 160 MHz
SRAM512 KB
Flashภายนอก (สูงสุด 16 MB)
WiFi802.11ax (WiFi 6) 2.4 GHz
BluetoothBLE 5.3
IEEE 802.15.4Zigbee, Thread
GPIO22 ขา (GPIO 0-21)
Operating Voltage3.0V - 3.6V
Operating Temp-40°C ถึง +85°C

⚠️ หมายเหตุ: ESP32-C6 ใช้ CPU แบบ RISC-V ไม่ใช่ Xtensa (LX6/LX7) เหมือน ESP32 รุ่นก่อนหน้า ซึ่งอาจต้องใช้ไลบรารีที่ปรับแต่งบางตัว

3. บอร์ด ESP32-C6 ที่แนะนำ (Recommended Boards)

มีบอร์ด ESP32-C6 หลายรุ่นให้เลือก ขึ้นอยู่กับความต้องการและงบประมาณของคุณ:

ESP32-C6-DevKitC-1

บอร์ดพัฒนาหลักจาก Espressif

  • • USB-C integrated
  • • 30 GPIO ผ่าน header
  • • 适合大多数项目
~฿180-250

XIAO ESP32-C6

บอร์ดขนาดเล็กจาก Seeed Studio

  • • ขนาดเล็กมาก (20x17.5mm)
  • • Type-C USB
  • • 适合小型项目
~฿150-200

ESP32-C6-N8

รุ่นพื้นฐาน 8MB Flash

  • • 8 MB Flash
  • • ราคาประหยัด
  • • 适合学习
~฿120-180

Adafruit Feather ESP32-C6

บอร์ดจาก Adafruit

  • • Feather form factor
  • • รองรับชาร์จแบต
  • • 适合便携项目
~฿350-450

4. การติดตั้งและเตรียมการ (Installation & Setup)

4.1 ติดตั้ง Arduino IDE

// ขั้นตอนที่ 1: ติดตั้ง Arduino IDE
// ดาวน์โหลดจาก: https://www.arduino.cc/en/software

// ขั้นตอนที่ 2: เพิ่ม ESP32 Board Support
// เปิด Arduino IDE → File → Preferences
// ในช่อง "Additional Board Manager URLs" เพิ่ม:
// https://espressif.github.io/arduino-esp32/package_esp32_index.json

// ขั้นตอนที่ 3: ติดตั้ง Board ESP32-C6
// Tools → Board → Boards Manager
// ค้นหา "esp32" และติดตั้ง
// จากนั้นเลือก: Tools → Board → esp32 → ESP32C6 Dev Module

4.2 การเชื่อมต่อบอร์ด

🔌 ขั้นตอนการเชื่อมต่อ:

  1. เสียบ USB-C เข้ากับบอร์ด ESP32-C6
  2. เสียบอีกด้านเข้ากับพอร์ต USB ของคอมพิวเตอร์
  3. รอสักครู่ให้ Driver ติดตั้งอัตโนมัติ (Windows/Mac)
  4. เปิด Arduino IDE และเลือกพอร์ต: Tools → Port → (เลือกพอร์ตที่เจอ)

4.3 ทดสอบการทำงาน

// โค้ดทดสอบแรก: Blink LED บนบอร์ด ESP32-C6

// ขา LED บนบอร์ด ESP32-C6 ส่วนใหญ่อยู่ที่ GPIO 8
const int ledPin = 8;  // LED บนบอร์ด

// ฟังก์ชันตั้งค่าเริ่มต้น
void setup() {
  pinMode(ledPin, OUTPUT);  // ตั้งค่า LED pin เป็น output
  Serial.begin(115200);     // เปิด Serial Monitor สำหรับ debugging
  Serial.println("ESP32-C6 Blink Test Started!");
}

// ฟังก์ชันวนลูปหลัก
void loop() {
  digitalWrite(ledPin, HIGH);  // เปิด LED
  Serial.println("LED ON");
  delay(1000);                 // รอ 1 วินาที

  digitalWrite(ledPin, LOW);   // ปิด LED
  Serial.println("LED OFF");
  delay(1000);                 // รอ 1 วินาที
}

หลังจากอัปโหลดโค้ด ให้เปิด Serial Monitor (Tools → Serial Monitor) ตั้งค่า baud rate เป็น 115200 คุณจะเห็นข้อความ "ESP32-C6 Blink Test Started!" และ LED บนบอร์ดกระพริบ

5. WiFi6 Basics - เริ่มต้นใช้งาน WiFi

WiFi 6 (802.11ax) คือมาตรฐาน WiFi รุ่นล่าสุดที่มีประสิทธิภาพดีกว่ารุ่นก่อนหน้าในหลายด้าน:

  • 🚀 OFDMA: ส่งข้อมูลได้พร้อมกันหลายอุปกรณ์
  • TWT (Target Wake Time): ประหยัดพลังงานดีขึ้น
  • 📶 BSS Coloring: ลดการรบกวนสัญญาณ
  • 🔒 Enhanced Security: ความปลอดภัยที่ดีขึ้น

ตัวอย่างโค้ด: เชื่อมต่อ WiFi

// ตัวอย่างการเชื่อมต่อ ESP32-C6 กับ WiFi

#include <WiFi.h>

// แก้ไข WiFi credentials ของคุณที่นี่
const char* ssid = "YOUR_WIFI_SSID";        // ชื่อ WiFi
const char* password = "YOUR_WIFI_PASSWORD"; // รหัสผ่าน WiFi

// ฟังก์ชันตั้งค่าเริ่มต้น
void setup() {
  Serial.begin(115200);
  delay(1000);

  Serial.println();
  Serial.println("=================================");
  Serial.println("ESP32-C6 WiFi Connection Example");
  Serial.println("=================================");
  Serial.print("Connecting to ");
  Serial.println(ssid);

  // เริ่มการเชื่อมต่อ WiFi
  WiFi.begin(ssid, password);

  // รอให้เชื่อมต่อสำเร็จ
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  // แสดงผลเมื่อเชื่อมต่อสำเร็จ
  Serial.println();
  Serial.println("✅ WiFi Connected!");
  Serial.print("📶 IP Address: ");
  Serial.println(WiFi.localIP());
  Serial.print("📡 Signal Strength (RSSI): ");
  Serial.print(WiFi.RSSI());
  Serial.println(" dBm");
  Serial.print("🌐 Gateway: ");
  Serial.println(WiFi.gatewayIP());
  Serial.print("🔍 DNS: ");
  Serial.println(WiFi.dnsIP());
}

void loop() {
  // ตรวจสอบสถานะ WiFi ทุก 10 วินาที
  static unsigned long lastCheck = 0;
  if (millis() - lastCheck > 10000) {
    if (WiFi.status() == WL_CONNECTED) {
      Serial.println("✅ WiFi Still Connected");
    } else {
      Serial.println("❌ WiFi Disconnected! Reconnecting...");
      WiFi.reconnect();
    }
    lastCheck = millis();
  }
  delay(100);
}

💡 ข้อควรระวัง:

  • • อย่าลืมแก้ไข ssid และ password ให้ตรงกับ WiFi ของคุณ
  • • ESP32-C6 รองรับเฉพาะ 2.4 GHz WiFi เท่านั้น (ไม่รองรับ 5 GHz)
  • • หากเชื่อมต่อไม่ได้ ให้ตรวจสอบว่า Router รองรับ 2.4 GHz

6. Thread และ Matter - Smart Home ยุคใหม่

ESP32-C6 มาพร้อมกับการรองรับ Thread และ Matter ซึ่งเป็นเทคโนโลยีที่จะเปลี่ยนแปลง Smart Home อย่างสิ้นเชิง

🧵 Thread Protocol

  • • เครือข่าย mesh ไร้สายที่เสถียร
  • • ประหยัดพลังงานด้วย Low Power
  • • รองรับอุปกรณ์ได้หลายร้อยเครื่อง
  • • ทำงานได้แม้ไม่มี Internet

🏠 Matter Standard

  • • เชื่อมต่อกับทุกแพลตฟอร์ม Smart Home
  • • ง่ายต่อการตั้งค่าและใช้งาน
  • • รองรับ Google, Apple, Amazon
  • • เปิดกว้างและปลอดภัย

ℹ️ หมายเหตุ: การพัฒนา Thread และ Matter ต้องใช้ ESP-IDF SDK และไม่สามารถใช้ Arduino IDE ได้โดยตรง บทความนี้เน้นการเริ่มต้นด้วย Arduino IDE ก่อน

7. โปรเจกต์ที่ 1: WiFi Scanner 📡

โปรเจกต์แรกของเราคือการสร้าง WiFi Scanner เพื่อค้นหาเครือข่าย WiFi ที่อยู่รอบๆ และแสดงความแรงสัญญาณ

// โปรเจกต์ WiFi Scanner สำหรับ ESP32-C6
// ใช้สำหรับค้นหาและแสดงเครือข่าย WiFi ที่อยู่รอบๆ

#include "WiFi.h"

// ฟังก์ชันตั้งค่าเริ่มต้น
void setup() {
  Serial.begin(115200);

  // ตั้งค่า WiFi ให้อยู่โหมด Station
  WiFi.mode(WIFI_STA);

  // ตัดการเชื่อมต่อ WiFi ที่อาจจะเชื่อมต่ออยู่
  WiFi.disconnect();

  delay(100);

  Serial.println();
  Serial.println("======================================");
  Serial.println("ESP32-C6 WiFi Scanner");
  Serial.println("======================================");
  Serial.println("Scanning for networks...");
}

void loop() {
  Serial.println("Scan start...");

  // เริ่มสแกนหาเครือข่าย WiFi
  // WiFi.scanNetworks จะคืนค่าจำนวนเครือข่ายที่พบ
  int n = WiFi.scanNetworks();

  Serial.println("Scan complete");

  if (n == 0) {
    // ไม่พบเครือข่าย
    Serial.println("❌ No networks found");
  } else {
    // พบเครือข่าย
    Serial.print(n);
    Serial.println(" networks found");

    // แสดงรายละเอียดของแต่ละเครือข่าย
    for (int i = 0; i < n; ++i) {
      // แสดงชื่อเครือข่าย (SSID)
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));

      // แสดงความแรงสัญญาณ (RSSI)
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print("dBm");

      // แสดงประเภทการเข้ารหัส
      Serial.print(" - ");
      Serial.print(getEncryptionType(WiFi.encryptionType(i)));

      // แสดงคุณภาพสัญญาณเป็นเปอร์เซ็นต์
      int quality = getSignalQuality(WiFi.RSSI(i));
      Serial.print(" - Quality: ");
      Serial.print(quality);
      Serial.println("%)");

      // รอสักครู่ก่อนแสดงเครือข่ายถัดไป
      delay(10);
    }
  }

  // รอ 5 วินาทีก่อนสแกนใหม่
  Serial.println();
  Serial.println("======================================");
  Serial.println("Waiting 5 seconds before next scan...");
  Serial.println();
  delay(5000);
}

// ฟังก์ชันแปลงประเภทการเข้ารหัสเป็น text
String getEncryptionType(wifi_auth_mode_t encryptionType) {
  switch (encryptionType) {
    case WIFI_AUTH_OPEN:
      return "Open";
    case WIFI_AUTH_WEP:
      return "WEP";
    case WIFI_AUTH_WPA_PSK:
      return "WPA";
    case WIFI_AUTH_WPA2_PSK:
      return "WPA2";
    case WIFI_AUTH_WPA_WPA2_PSK:
      return "WPA+WPA2";
    case WIFI_AUTH_WPA2_ENTERPRISE:
      return "WPA2-EAP";
    case WIFI_AUTH_WPA3_PSK:
      return "WPA3";
    case WIFI_AUTH_WPA2_WPA3_PSK:
      return "WPA2+WPA3";
    default:
      return "Unknown";
  }
}

// ฟังก์ชันคำนวณคุณภาพสัญญาณเป็นเปอร์เซ็นต์
int getSignalQuality(int rssi) {
  // RSSI ปกติอยู่ระหว่าง -30 (ดีมาก) ถึง -90 (แย่)
  // แปลงเป็น scale 0-100%
  int quality = 0;

  if (rssi <= -100) {
    quality = 0;
  } else if (rssi >= -50) {
    quality = 100;
  } else {
    quality = 2 * (rssi + 100);
  }

  return quality;
}

🎯 สิ่งที่จะได้เรียนรู้:

  • • การใช้ WiFi.scanNetworks() ในการค้นหาเครือข่าย
  • • การอ่านค่า RSSI และการแปลงเป็นคุณภาพสัญญาณ
  • • การระบุประเภทการเข้ารหัสของแต่ละเครือข่าย
  • • การใช้ Serial Monitor ในการ debug

8. โปรเจกต์ที่ 2: Web Server LED Control 💡

โปรเจกต์นี้สร้าง Web Server บน ESP32-C6 เพื่อควบคุม LED ผ่านเว็บเบราว์เซอร์

// โปรเจกต์ Web Server ควบคุม LED ผ่านเว็บ
// ESP32-C6 Web Server LED Control

#include <WiFi.h>
#include <WebServer.h>

// WiFi Credentials
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

// ขา LED
const int ledPin = 8;

// สร้าง Web Server ที่ port 80
WebServer server(80);

// สถานะ LED
bool ledState = false;

// HTML สำหรับหน้าเว็บ
String getHTML() {
  String html = "<!DOCTYPE html>";
  html += "<html>";
  html += "<head>";
  html += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">";
  html += "<title>ESP32-C6 LED Control</title>";
  html += "<style>";
  html += "body { font-family: Arial; margin: 40px; text-align: center; }";
  html += "h1 { color: #333; }";
  html += ".btn { padding: 15px 30px; font-size: 20px; margin: 10px; cursor: pointer; border: none; border-radius: 5px; }";
  html += ".on { background-color: #4CAF50; color: white; }";
  html += ".off { background-color: #f44336; color: white; }";
  html += ".status { font-size: 24px; margin: 20px; }";
  html += "</style>";
  html += "</head>";
  html += "<body>";
  html += "<h1>ESP32-C6 LED Control</h1>";
  html += "<div class=\"status\">";
  html += "LED Status: ";
  html += (ledState ? "<strong>ON</strong>" : "<strong>OFF</strong>");
  html += "</div>";
  html += "<button class=\"btn on\" onclick=\"location.href='/ledon'\">Turn ON</button>";
  html += "<button class=\"btn off\" onclick=\"location.href='/ledoff'\">Turn OFF</button>";
  html += "</body>";
  html += "</html>";
  return html;
}

// ฟังก์ชันตั้งค่าเริ่มต้น
void setup() {
  Serial.begin(115200);

  // ตั้งค่า LED pin
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);

  // เชื่อมต่อ WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println();
  Serial.println("✅ WiFi Connected!");
  Serial.print("📶 IP Address: ");
  Serial.println(WiFi.localIP());

  // ตั้งค่า routes สำหรับ Web Server
  server.on("/", []() {
    server.send(200, "text/html", getHTML());
  });

  server.on("/ledon", []() {
    digitalWrite(ledPin, HIGH);
    ledState = true;
    Serial.println("🟢 LED turned ON");
    server.send(200, "text/html", getHTML());
  });

  server.on("/ledoff", []() {
    digitalWrite(ledPin, LOW);
    ledState = false;
    Serial.println("🔴 LED turned OFF");
    server.send(200, "text/html", getHTML());
  });

  // เริ่ม Web Server
  server.begin();
  Serial.println("🌐 Web Server started!");
  Serial.print("👉 Open http://");
  Serial.print(WiFi.localIP());
  Serial.println(" in your browser");
}

void loop() {
  // รองรับ requests จาก client
  server.handleClient();
}

📱 วิธีใช้งาน:

  1. อัปโหลดโค้ดไปยัง ESP32-C6
  2. เปิด Serial Monitor เพื่อดู IP Address
  3. เปิดเว็บเบราว์เซอร์และเข้าไปที่ IP นั้น (เช่น http://192.168.1.100)
  4. คลิกปุ่ม "Turn ON" หรือ "Turn OFF" เพื่อควบคุม LED

9. การแก้ปัญหาที่พบบ่อย (Troubleshooting)

❌ ปัญหา: อัปโหลดโค้ดไม่ได้

สาเหตุ: Driver ไม่ถูกต้อง หรือเลือกบอร์ดผิด

วิธีแก้: ตรวจสอบให้แน่ใจว่าเลือก Tools → Board → ESP32C6 Dev Module และพอร์ตถูกต้อง

❌ ปัญหา: เชื่อมต่อ WiFi ไม่ได้

สาเหตุ: รหัสผ่านผิด หรือ Router ไม่รองรับ 2.4 GHz

วิธีแก้: ตรวจสอบรหัสผ่าน และแน่ใจว่า Router รองรับ 2.4 GHz WiFi

❌ ปัญหา: Serial Monitor แสดงผลเป็นภาษาขยะ

สาเหตุ: Baud rate ไม่ตรงกัน

วิธีแก้: ตั้งค่า Baud rate ใน Serial Monitor เป็น 115200

❌ ปัญหา: Web Server เข้าไม่ได้

สาเหตุ: อุปกรณ์อยู่คนละเครือข่าย หรือ Firewall บล็อก

วิธีแก้: ให้มือถือ/คอมพิวเตอร์อยู่ในเครือข่าย WiFi เดียวกับ ESP32-C6

10. ถัดไป... (Next Steps)

ยินดีด้วย! คุณได้เริ่มต้นใช้งาน ESP32-C6 เรียบร้อยแล้ว ต่อไปนี้คือสิ่งที่คุณสามารถเรียนรู้เพิ่มเติม:

📚 บทความที่เกี่ยวข้อง

🚀 โปรเจกต์ที่ท้าทาย

  • • สร้าง Smart Switch ควบคุมไฟผ่านมือถือ
  • • ทำ Weather Station ส่งข้อมูลผ่าน MQTT
  • • สร้าง Thread Border Router ด้วย ESP32-C6
  • • ทำ IoT Sensor Node ประหยัดแบต

🎓 แหล่งเรียนรู้เพิ่มเติม

💡 สรุปสิ่งที่เรียนรู้

  • ✅ รู้จัก ESP32-C6 และคุณสมบัติของมัน
  • ✅ ติดตั้งและตั้งค่า Arduino IDE สำหรับ ESP32-C6
  • ✅ เขียนโค้ดควบคุม LED พื้นฐาน
  • ✅ เชื่อมต่อ ESP32-C6 กับ WiFi
  • ✅ สร้าง WiFi Scanner เพื่อค้นหาเครือข่าย
  • ✅ สร้าง Web Server ควบคุม LED ผ่านเว็บ
  • ✅ แก้ปัญหาที่พบบ่อยในการใช้งาน
  • ✅ เข้าใจเทคโนโลยี Thread และ Matter

© 2026 CynoIoT Platform. All rights reserved.

บทความนี้เป็นส่วนหนึ่งของ CynoIoT Learning Platform