ESP32 DevKit V1 Pinout (DOIT) — ขาไหนใช้ได้/ห้ามใช้ + Safe GPIO + I2C SPI UART
หน้านี้สรุปแบบ “หยิบไปใช้ได้ทันที” สำหรับนักศึกษา / Maker มือใหม่ / ช่างไฟที่อยากเริ่มทำระบบอัตโนมัติด้วย ESP32 DevKit V1
หมายเหตุ: “DevKit V1” มีหลายรุ่นย่อย (30/36/38 pin) ตำแหน่งพินบนบอร์ดอาจต่างกัน แต่ หมายเลข GPIO และพฤติกรรมการทำงานเหมือนกัน
สารบัญ
- แผนผังพิน (Pinout) ของ ESP32
- Quick Answer: ขาแนะนำ/ห้ามใช้/ระวังบูต
- รายละเอียดของ GPIO ที่ใช้บ่อยใน ESP32
- เซนเซอร์สัมผัสแบบสัมผัสไฟฟ้า (Capacitive Touch GPIOs)
- ตัวแปลงสัญญาณอนาล็อกเป็นดิจิทัล (ADC)
- ตัวแปลงสัญญาณดิจิทัลเป็นอนาล็อก (DAC)
- GPIO ของ RTC (Real-Time Clock)
- PWM (Pulse Width Modulation) บน ESP32
- I2C บน ESP32
- SPI บน ESP32
- Interrupts
- UART Pins – การสื่อสารแบบอนุกรม
- Strapping Pins
- ตาราง GPIO แบบใช้งานจริง
- ทริคเลือกพินให้ไม่พัง
- คำถามที่พบบ่อยเกี่ยวกับ ESP32 Pinout
แผนผังพิน (Pinout) ของ ESP32
ภาพนี้เป็นแผนผังของ ESP32 DevKit V1 (DOIT) รุ่น 30 GPIO — ใช้อ้างอิง “ตำแหน่งพินบนบอร์ด” และ “หมายเลข GPIO” ก่อนต่อวงจรจริง

Quick Answer: ถ้าจะเริ่มต่อวงจรวันนี้ ใช้ขาไหน?
✅ GPIO ที่ “แนะนำ” (เริ่มต้นง่าย โอกาสเจอบั๊กน้อย)
เหมาะกับงานทั่วไป: คุมรีเลย์, อ่านสวิตช์, ต่อเซนเซอร์ I2C, ทำ PWM, ฯลฯ
🚫 GPIO ที่ “ห้ามใช้” (ชนกับ Flash)
ขากลุ่มนี้มักผูกกับ SPI Flash บนบอร์ด ถ้าเอาไปต่อใช้งานอาจบูตไม่ขึ้น/ค้าง
⚠️ Input-only (ใช้เป็นอินพุตได้อย่างเดียว)
ใช้กับงานอ่านเซนเซอร์/อ่านสวิตช์ได้ดี แต่ สั่งออก (OUTPUT) ไม่ได้
I2C / SPI / UART ใช้ขาไหน (พร้อมก็อปไปใช้)
I2C (เจอบ่อยสุด)
- SDA = GPIO21
- SCL = GPIO22
I2C ของ ESP32 “เปลี่ยนขาได้” แต่ค่าเริ่มต้น 21/22 ใช้แล้วไม่ปวดหัว
UART (Serial)
- UART0: TX=GPIO1, RX=GPIO3 (มักใช้กับ USB-Serial เพื่ออัปโหลด/ดู Serial Monitor)
- ถ้าจะต่ออุปกรณ์ภายนอก แนะนำไปใช้ UART1/2 และกำหนดขาเอง
ถ้าเอา GPIO1/3 ไปต่อโมดูลอื่น บางทีอัปโหลดจะรวน หรือ Serial Monitor อ่านมั่ว
รายละเอียดของ GPIO ที่ใช้บ่อยใน ESP32
สรุป “กลุ่มขา” ที่เจอบ่อยในงานจริง (Smart Farm / Smart Home / งานรีเลย์/เซนเซอร์)
ขาแนะนำ (เริ่มต้นง่าย)
- GPIO4 / 5 – Digital I/O ทั่วไป, คุมรีเลย์, อ่านสวิตช์
- GPIO18 / 19 / 23 – เหมาะกับงานเร็ว (SPI / Output)
- GPIO21 / 22 – คู่ยอดนิยมสำหรับ I2C (SDA/SCL)
- GPIO25 / 26 – มี DAC (เหมาะงาน analog out)
- GPIO32 / 33 – ยืดหยุ่น (ADC1 + PWM + ใช้ง่าย)
ขาที่ควรหลีกเลี่ยง/ระวัง
- GPIO6–11 – มักชนกับ SPI Flash บนบอร์ด (ห้ามใช้)
- GPIO34–39 – Input-only ใช้ออกไม่ได้
- GPIO0 / 2 / 12 / 15 – Strapping pins (ระวังตอนบูต)
- GPIO1 / 3 – UART0 (ชนกับ Serial/Upload ได้)
เซนเซอร์สัมผัสแบบสัมผัสไฟฟ้า (Capacitive Touch GPIOs)
ESP32 มี Touch Sensor ในตัว เหมาะทำปุ่มสัมผัส/สวิตช์แตะ/งาน UI ง่าย ๆ โดยไม่ต้องใช้โมดูลเพิ่ม
กลุ่ม Touch (ชื่อในโค้ดมักเรียก T0–T9):
- T0 = GPIO4
- T1 = GPIO0
- T2 = GPIO2
- T3 = GPIO15
- T4 = GPIO13
- T5 = GPIO12
- T6 = GPIO14
- T7 = GPIO27
- T8 = GPIO33
- T9 = GPIO32
ตัวแปลงสัญญาณอนาล็อกเป็นดิจิทัล (ADC)
ถ้าคุณอ่านค่าเซนเซอร์อนาล็อก (เช่น soil moisture, LDR, pot) ให้รู้ว่า ESP32 มี ADC 2 ชุด และมีข้อจำกัดเมื่อเปิด Wi‑Fi
ADC1 (แนะนำ)
- GPIO32–39
- ข้อดี: ใช้งานร่วมกับ Wi‑Fi ได้ “เสถียรกว่า”
ADC2 (มีข้อจำกัด)
- GPIO0,2,4,12–15,25–27
- ข้อควรระวัง: บางกรณีอ่าน ADC2 พร้อม Wi‑Fi อาจเพี้ยน/อ่านไม่ได้
คำแนะนำ DevaDIY: ถ้าคุณทำโปรเจกต์ที่ “เปิด Wi‑Fi ตลอด” ให้พยายามใช้ ADC1 (GPIO32–39) เป็นหลัก
ตัวแปลงสัญญาณดิจิทัลเป็นอนาล็อก (DAC)
- GPIO25 = DAC1
- GPIO26 = DAC2
ใช้ทำ analog out แบบง่าย ๆ เช่น สร้างแรงดันควบคุม, ทดสอบวงจร, สร้างสัญญาณ waveform (งานพื้นฐาน)
GPIO ของ RTC (Real‑Time Clock / Deep Sleep)
ขาใน RTC domain สามารถใช้เป็น “ปลุกจาก Deep Sleep” ได้ เหมาะกับงานประหยัดพลังงาน (ใช้แบต/โซลาร์)
- GPIO0,2,4,12–15,25–27,32–39
ตัวอย่าง use case: เซนเซอร์ PIR ปลุกบอร์ด, ปุ่มกดปลุก, อ่านเซนเซอร์เป็นรอบ ๆ แล้วกลับไป sleep
PWM (Pulse Width Modulation) บน ESP32
ESP32 ใช้ระบบ LEDC PWM ทำให้เลือกความถี่/ความละเอียดได้ดี เหมาะกับ LED dimming และควบคุมมอเตอร์/พัดลม
- ใช้ได้กับ GPIO ส่วนใหญ่ (ยกเว้นกลุ่ม Input-only 34–39)
- งานยอดฮิต: คุมความสว่าง LED, คุมสปีดพัดลม, ทำ buzzer/tone
📘 ดูตัวอย่างการใช้งาน ควบคุมความสว่าง LED ด้วย Arduino IDE
I2C บน ESP32
ค่าเริ่มต้นที่นิยมที่สุด: SDA = GPIO21, SCL = GPIO22
- ใช้กับ OLED, BME280, DS3231, LCD I2C และเซนเซอร์อีกเยอะมาก
- I2C “ย้ายขาได้” (Wire.begin(SDA, SCL)) แต่มือใหม่เริ่ม 21/22 จะง่ายสุด
SPI บน ESP32
ด้านล่างคือ mapping ที่เจอบ่อยใน ESP32 DevKit V1 (DOIT) สำหรับ VSPI/HSPI
VSPI (ค่าที่นิยม)
- SCK = GPIO18
- MISO = GPIO19
- MOSI = GPIO23
- CS = GPIO5
HSPI (ค่าที่นิยม)
- SCK = GPIO14
- MISO = GPIO12
- MOSI = GPIO13
- CS = GPIO15
ข้อควรระวัง: อย่าสับสนกับ GPIO6–11 (ขา Flash) เพราะมักทำให้บอร์ดค้าง/บูตไม่ขึ้น
Interrupts
ใช้ “จับเหตุการณ์ทันที” เช่น ปุ่มกด, encoder, pulse sensor (ตอบสนองไวกว่า polling)
- GPIO ส่วนใหญ่รองรับ interrupt
- กลุ่ม Input-only 34–39 ก็ใช้ interrupt ได้ (แต่สั่ง output ไม่ได้)
UART Pins – การสื่อสารแบบอนุกรม
- UART0: TX = GPIO1, RX = GPIO3 (ใช้กับ USB‑Serial สำหรับ Upload/Serial Monitor)
- UART1 / UART2: ย้ายขาได้ เหมาะต่ออุปกรณ์ภายนอก เช่น GPS, RS485, โมดูลอื่น ๆ
ถ้าจะต่ออุปกรณ์ภายนอกจริงจัง แนะนำ หลีกเลี่ยงการใช้ GPIO1/3 เพื่อไม่ให้ชนกับการอัปโหลด/ดีบัก
📘 ดูตัวอย่างการส่งข้อมูลระหว่าง ESP32 ผ่าน UART
Strapping Pins
ขากลุ่มนี้มีผลต่อโหมดบูต/แรงดันตอนเริ่มเปิดเครื่อง
- GPIO0
- GPIO2
- GPIO12
- GPIO15
อาการยอดฮิต: ต่อวงจรแล้วบูตไม่ขึ้น / อัปโหลดไม่ได้ / ค้างตอนเปิดเครื่อง → ให้เช็คขากลุ่มนี้ก่อนเสมอ
ตาราง GPIO แบบใช้งานจริง (มือใหม่ดูแล้วเลือกได้เลย)
| GPIO | แนะนำ? | เหมาะกับงาน | ข้อควรระวัง |
|---|---|---|---|
| 4,5 | Safe | Digital I/O, PWM, คุมรีเลย์ | โดยรวมใช้ได้สบาย |
| 18,19,21,22,23 | Safe | SPI/I2C, Digital I/O, งานทั่วไป | 21/22 นิยมทำ I2C |
| 25,26,27 | Safe | Digital I/O, PWM, (บางรุ่นใช้ DAC ที่ 25/26) | เหมาะงานเอาต์พุต |
| 32,33 | Safe | Digital I/O, ADC (บางงานนิยมใช้) | ดีสำหรับงานอ่านค่า/ควบคุม |
| 34–39 | Input-only | อ่านสวิตช์, อ่านเซนเซอร์ (Analog) | สั่ง OUTPUT ไม่ได้ |
| 0,2,12,15 | Strapping | ใช้ได้ แต่ต้องออกแบบวงจรให้ไม่รบกวนตอนบูต | ดึง HIGH/LOW ผิด = บูตพัง/อัปโหลดไม่ได้ |
| 6–11 | Avoid | ไม่แนะนำให้เอาไปต่อใช้งาน | ชน SPI Flash บนบอร์ด |
| 1,3 | ระวัง | UART0 (Serial Monitor / Upload) | ต่ออุปกรณ์อื่นอาจทำให้อัปโหลดรวน |
ทริคเลือกพินให้ไม่พัง (รุ่นพี่เตือนก่อน)
- เริ่มจาก Safe GPIO ก่อน แล้วค่อยขยับไปขาที่ต้องระวัง (Strapping / UART0)
- อย่าใช้ 6–11 ถ้าเป็น DevKit V1 ทั่วไป เพราะมักชน Flash
- ขา 34–39 เอาไว้ “อ่านอย่างเดียว” อย่าหวังเอาไปคุมรีเลย์
- ถ้าโปรเจกต์คุณมี Wi-Fi ตลอดเวลา แล้วใช้ Analog เยอะ ๆ ให้เลือกขาและวงจรดี ๆ (จะช่วยลดอาการอ่านเพี้ยน)
อ่านต่อ (บทความที่เกี่ยวข้อง)
FAQ: คำถามยอดฮิต ESP32 DevKit V1 Pinout
DevKit V1 30-pin กับ 38-pin ต่างกันยังไง?
ตำแหน่งพินบนบอร์ดอาจต่างกันตามผู้ผลิต แต่ “หมายเลข GPIO” และการทำงานเหมือนกัน เวลาอ้างอิงให้ดูที่เลข GPIO เป็นหลัก
ทำไมต่อวงจรแล้ว ESP32 อัปโหลดโปรแกรมไม่ได้?
สาเหตุยอดฮิตคือไปใช้ Strapping pins (0/2/12/15) แล้ววงจรดึงไฟผิดตอนบูต หรือเอา UART0 (GPIO1/3) ไปใช้ร่วมกับอุปกรณ์ภายนอก
I2C ของ ESP32 ต้องเป็น 21/22 เท่านั้นไหม?
ไม่จำเป็น ESP32 เปลี่ยนขา I2C ได้ แต่ 21/22 เป็นค่ามาตรฐานที่คนใช้เยอะ มือใหม่เริ่มจากคู่นี้ก่อนจะง่ายสุด
GPIO ไหนเหมาะกับงานคุมรีเลย์/ปั๊มน้ำ/พัดลม?
ใช้กลุ่ม Safe GPIO เช่น 4,5,18,19,21,22,23,25,26,27,32,33 ได้เลย เลี่ยง 6–11 และระวัง 0,2,12,15
GPIO 34–39 ใช้คุมรีเลย์ได้ไหม?
ไม่ได้ครับ กลุ่มนี้เป็น Input-only ใช้สำหรับ “อ่านค่า” อย่างเดียว



