
1. ภาพรวมบทความ
บทความนี้เป็นคู่มือเริ่มต้นสำหรับผู้ที่ยังไม่เคยใช้ ESP32 ครอบคลุมตั้งแต่ ESP32 คืออะไร สเปก การเปรียบเทียบกับ ESP8266 วิธีเลือกบอร์ด การทำความรู้จักบอร์ด ESP32 DEVKIT DOIT พินเอาต์ ไปจนถึงขั้นตอนติดตั้ง Arduino IDE และอัปโหลดโปรแกรมแรกขึ้นบอร์ด
2. ESP32 คืออะไร
ESP32 คือตระกูลไมโครคอนโทรลเลอร์แบบ System on a Chip (SoC) ราคาประหยัดและกินไฟต่ำ พัฒนาโดย Espressif มี Wi-Fi และ Bluetooth ในตัว และส่วนใหญ่เป็นแบบ dual-core ถือเป็นรุ่นต่อยอดจาก ESP8266


จุดเด่นที่ทำให้นิยม
- Low-cost: เริ่มต้นประมาณ 6 ดอลลาร์สหรัฐ
- Low-power: กินไฟน้อย รองรับโหมดประหยัดพลังงาน เช่น deep sleep
- Wi-Fi: เชื่อมต่อเครือข่ายแบบ station mode หรือสร้างเครือข่ายเองแบบ access point mode เหมาะกับงาน IoT และ Home Automation
- Bluetooth: รองรับทั้ง Bluetooth Classic และ Bluetooth Low Energy (BLE)
- Dual-core: ส่วนใหญ่มีไมโครโปรเซสเซอร์ Xtensa 32-bit LX6 สองตัว (core 0 และ core 1)
- Peripheral หลากหลาย: มี capacitive touch, ADC, DAC, UART, SPI, I2C, PWM และอื่นๆ
- รองรับภาษาที่คุ้นเคย: เขียนโปรแกรมแบบ Arduino (C/C++) ได้ และรองรับ MicroPython
อยากรู้จักตระกูล ESP32 ในภาพกว้างขึ้น อ่านต่อที่ ทำความรู้จัก ESP32: ไมโครคอนโทรลเลอร์ยอดนิยมสำหรับ IoT
3. สเปกของ ESP32
| หัวข้อ | รายละเอียด |
|---|---|
| โมดูล | ESP-WROOM-32 |
| Wi-Fi | ความเร็วข้อมูล 150 Mbps (HT40) |
| Bluetooth | BLE และ Bluetooth Classic |
| ประมวลผล | Tensilica Xtensa Dual-Core 32-bit LX6 ที่ 160 หรือ 240 MHz |
| ROM / SRAM | ROM 448 KB สำหรับบูตและฟังก์ชันหลัก, SRAM 520 KB |
| RTC SRAM | RTC fast 8 KB และ RTC slow 8 KB (ใช้ช่วง deep sleep) |
| eFuse | 1 Kbit (256 บิตใช้โดยระบบ เช่น MAC address, อีก 768 บิตสำหรับผู้ใช้ เช่น Flash Encryption และ Chip-ID) |
| Embedded flash | 0 MiB (D0WDQ6, D0WD, S0WD), 2 MiB (D2WD), 4 MiB (PICO-D4) |
| Low power | ใช้ ADC ได้แม้ใน deep sleep |
| Peripheral | Capacitive touch, ADC, DAC, I2C, UART, SPI, I2S, RMII, PWM (มี DMA) |
| Security | ตัวเร่งฮาร์ดแวร์ AES และ SSL/TLS |
4. ESP32 เทียบกับ ESP8266
ESP32 เพิ่ม CPU อีกหนึ่งคอร์ Wi-Fi เร็วกว่า GPIO มากกว่า รองรับ Bluetooth 4.2 และ BLE มีขาสัมผัส (touch) ที่ปลุกจาก deep sleep ได้ และมี hall effect sensor ในตัว

| ประเด็น | ESP32 | ESP8266 |
|---|---|---|
| ความเร็ว | เร็วกว่า | ช้ากว่า |
| จำนวนคอร์ | Dual-core (ส่วนใหญ่) | Single-core |
| Bluetooth | มี | ไม่มี |
| ช่องอนาล็อก | 18 ช่อง | 1 ช่อง (10-bit) |
| GPIO | มากกว่า หลายฟังก์ชัน | น้อยกว่า |
| ราคาโดยประมาณ | ราว 6–12 ดอลลาร์ | ราว 4–6 ดอลลาร์ |
หมายเหตุ: ราคาขึ้นกับแหล่งซื้อและรุ่น ต้นฉบับมีบทความแยกเรื่อง ESP32 vs ESP8266 – Pros and Cons สำหรับผู้ที่ต้องการเปรียบเทียบเชิงลึก
5. บอร์ดพัฒนา ESP32 (Development Boards)
คำว่า ESP32 อาจหมายถึงตัวชิปเปล่า หรือบอร์ดพัฒนา การใช้ชิปเปล่าไม่สะดวกสำหรับการเรียนรู้และทำต้นแบบ บอร์ดพัฒนาจึงมีวงจรจ่ายไฟ วงจรโปรแกรมชิป ขาต่อภายนอก LED เสาอากาศ และบางรุ่นมีเซนเซอร์ จอแสดงผล หรือกล้อง (เช่น ESP32-CAM) มาให้

วิธีเลือกบอร์ด
- USB-to-UART และวงจร regulator: ช่วยต่อกับคอมพิวเตอร์เพื่ออัปโหลดโค้ดและจ่ายไฟ
- ปุ่ม BOOT และ RESET/EN: ใช้เข้าโหมดแฟลชและรีสตาร์ท บางรุ่นไม่มีปุ่ม BOOT เพราะเข้าโหมดแฟลชอัตโนมัติ
- จำนวนและการจัดวางขา: ต้องมีผัง pinout ของบอร์ดที่ซื้อ ไม่เช่นนั้นอาจใช้งานผิดขา
- ขั้วต่อเสาอากาศ: บางรุ่นมีขั้วต่อเสาอากาศภายนอกเพื่อเพิ่มระยะ Wi-Fi
- ขั้วต่อแบตเตอรี่: บางรุ่นมีขั้วต่อ LiPo สะดวกเมื่อใช้แบตเตอรี่
- ฮาร์ดแวร์เสริม: เช่น OLED, LoRa, SIM800 (GSM/GPRS), ที่ใส่แบต, กล้อง
บอร์ดที่แนะนำสำหรับผู้เริ่มต้น
แนะนำบอร์ดที่มี GPIO ให้ใช้มาก ไม่มีฮาร์ดแวร์เสริม มี voltage regulator และใช้ USB จ่ายไฟ/อัปโหลดโค้ดได้ ผู้เขียนต้นฉบับใช้ ESP32 DEVKIT DOIT เป็นหลัก (มีเวอร์ชัน 30, 36 และ 38 ขา ทำงานคล้ายกัน) บอร์ดอื่นที่ใกล้เคียง เช่น Adafruit ESP32 Feather, Sparkfun ESP32 Thing, NodeMCU-32S และ Wemos LoLin32
6. ESP32 DEVKIT DOIT V1

| คุณสมบัติ | รายละเอียด |
|---|---|
| จำนวนคอร์ | 2 (dual core) |
| Wi-Fi | 2.4 GHz สูงสุด 150 Mbps |
| Bluetooth | BLE และ Bluetooth แบบเดิม |
| สถาปัตยกรรม / ความเร็ว | 32 บิต สูงสุด 240 MHz |
| RAM | 512 KB |
| จำนวนขา | 30, 36 หรือ 38 ขา ตามรุ่น |
| Peripheral | Touch, ADC, DAC, I2C, UART, CAN 2.0, SPI, I2S, RMII, PWM ฯลฯ |
| ปุ่ม | RESET และ BOOT |
| LED | LED สีน้ำเงินต่อกับ GPIO2, LED สีแดงแสดงสถานะจ่ายไฟ |
| USB to UART | CP2102 |

- บอร์ดรุ่นตัวอย่างมี 36 ขา (ข้างละ 18) จำนวน GPIO ที่ใช้ได้ขึ้นกับรุ่น
- ใช้ microUSB เชื่อมต่อคอมพิวเตอร์ ผ่านชิป CP2102 ซึ่งเป็น COM port แบบ serial อีกชิปที่พบบ่อยคือ CH340 จึงต้องตรวจว่าบอร์ดใช้ชิปใดเพื่อติดตั้งไดรเวอร์
- ปุ่ม RESET (อาจเขียนว่า EN) ใช้รีสตาร์ท ปุ่ม BOOT ใช้เข้าโหมดแฟลช
- LED สีน้ำเงินใน GPIO2 ใช้ดีบักเป็นเอาต์พุตที่มองเห็นได้
7. คู่มือ Pinout และ GPIO
ชิป ESP32 มี 48 ขา หลายฟังก์ชัน แต่ไม่ได้เปิดออกมาทุกขาในทุกบอร์ด และบางขาไม่ควรใช้ บอร์ด DEVKIT V1 DOIT เปิด GPIO ให้ใช้ประมาณ 36 ขา

- ขาไฟเลี้ยง: โดยทั่วไปมี 3V3, GND และ VIN ใช้จ่ายไฟให้บอร์ด (ถ้าไม่ใช้ USB) หรือจ่ายไฟให้อุปกรณ์ภายนอก (เมื่อจ่ายไฟทาง USB)
- GPIO: อ้างอิงด้วยหมายเลข GPIO
- การกำหนดฟังก์ชันขา: เลือกได้ในโค้ดว่าขาไหนเป็น UART, I2C หรือ SPI (multiplexing) ถ้าไม่กำหนดจะใช้ค่าเริ่มต้นตามผัง
- ความสม่ำเสมอ: ตำแหน่งขาต่างกันตามบอร์ด แต่ GPIO หมายเลขเดิมมักทำงานเหมือนกัน เช่น GPIO5 คือ VSPI CS0 และ GPIO23 คือ VSPI MOSI
ต้นฉบับมีบทความ ESP32 Pinout Reference – Which GPIO pins should you use? สำหรับผู้ที่ต้องการรายละเอียดของแต่ละขา
8. วิธีเขียนโปรแกรม ESP32
เขียนได้หลายแบบ ได้แก่ Arduino C/C++ (Arduino core for ESP32), Espressif IDF, MicroPython, JavaScript และ LUA ผู้เขียนต้นฉบับเลือก Arduino C/C++ เป็นหลัก และมีบทความ MicroPython แยกต่างหาก ผู้เริ่มต้นควรใช้ Arduino IDE ก่อน เมื่อโปรเจกต์ซับซ้อนขึ้นค่อยพิจารณา VS Code ร่วมกับ PlatformIO
9. ขั้นตอนใช้งาน Arduino IDE กับ ESP32
9.1 ติดตั้ง Arduino IDE
- ดาวน์โหลดจาก arduino.cc ตามระบบปฏิบัติการ: Windows รันตัวติดตั้ง, Mac OS X คัดลอกไฟล์ไปที่โฟลเดอร์ Applications, Linux แตกไฟล์แล้วเปิด arduino-ide
- Arduino IDE 2 ไม่จำเป็นต้องติดตั้ง Java เพิ่มเติม

9.2 ติดตั้งบอร์ด ESP32 ใน Arduino IDE
- ไปที่ File > Preferences (macOS: Arduino IDE > Settings)
- วาง URL ต่อไปนี้ในช่อง Additional Boards Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json(ถ้ามี URL ของ ESP8266 อยู่แล้วให้คั่นด้วยเครื่องหมายจุลภาค) - เปิด Boards Manager ผ่าน Tools > Board > Boards Manager หรือไอคอนด้านซ้าย
- ค้นหา
ESP32แล้วติดตั้ง esp32 by Espressif Systems เวอร์ชัน 3.X - รีสตาร์ท Arduino IDE แล้วตรวจที่ Tools > Board ว่ามีบอร์ด ESP32 ให้เลือก


9.3 ทดสอบและอัปโหลดโค้ดตัวอย่าง
ต่อบอร์ดกับคอมพิวเตอร์ด้วยสาย USB ที่มีสายข้อมูล (data) เพราะสายบางเส้นจากที่ชาร์จหรือพาวเวอร์แบงก์ส่งไฟอย่างเดียว ถ้าเป็น DOIT DEVKIT LED สีแดงจะติดเมื่อมีไฟ จากนั้นทำตามขั้นตอน:
- เลือกบอร์ดและ COM port ที่ Tools > Board หรือเมนู Select other board and port… (ตัวอย่างใช้ DOIT ESP32 DEVKIT V1)
- เปิดตัวอย่าง File > Examples > WiFi (ESP32) > WiFiScan (สแกนหาเครือข่าย Wi-Fi ใกล้เคียง)
- กดปุ่ม Upload รอคอมไพล์และอัปโหลด
- ถ้าขึ้นจุดไข่ปลาจำนวนมากแล้วอัปโหลดล้มเหลว แสดงว่าบอร์ดไม่เข้าโหมดแฟลชอัตโนมัติ ให้กด Upload ใหม่ แล้วเมื่อเห็นจุดปรากฏให้กดปุ่ม BOOT บนบอร์ดค้างไว้สักครู่
- เมื่อสำเร็จจะมีข้อความแจ้งผลการอัปโหลดใน Output
- เปิด Serial Monitor ที่ baud rate 115200
- กดปุ่ม Enable/RESET บนบอร์ด จะเห็นรายชื่อเครือข่าย Wi-Fi ใกล้เคียง
ภาพประกอบด้านล่างแสดงหน้าจอในแต่ละขั้นตอน ตั้งแต่การเลือกบอร์ด เปิดตัวอย่าง WiFiScan อัปโหลด จนถึงดูผลใน Serial Monitor





9.4 ติดตั้งไดรเวอร์ USB
ถ้าไม่เห็น COM port ใน Arduino IDE มักต้องติดตั้งไดรเวอร์ USB-to-UART ซึ่งบอร์ดส่วนใหญ่ใช้ชิป CP210x หรือ CH340 ต้นฉบับมีลิงก์ไปยังบทเรียนติดตั้งไดรเวอร์ CP210x และคู่มือ ESP32 Troubleshooting Guide สำหรับปัญหาอัปโหลดโค้ด
เมื่อติดตั้งไดรเวอร์เสร็จแล้ว ให้ถอดและเสียบสาย USB ใหม่ จากนั้นตรวจที่เมนู Tools > Port ว่าพบ COM port ของบอร์ดหรือไม่ ถ้ายังไม่พบ ให้ลองเปลี่ยนสาย USB เป็นแบบที่มีสายข้อมูล หรือลองเปลี่ยนพอร์ต USB ของคอมพิวเตอร์
9.5 ตัวอย่างโค้ดและการอัปเดต core
หลังเลือกบอร์ด ESP32 แล้ว เข้า File > Examples จะพบตัวอย่างในหมวด ESP32 หลายรายการ ควรอัปเดต ESP32 core เป็นระยะ โดย Arduino IDE 2 จะแจ้งเตือนเป็น pop-up เมื่อมีเวอร์ชันใหม่
10. สรุปและแหล่งเรียนรู้ต่อ
ผู้อ่านจะได้เรียนรู้ว่า ESP32 คืออะไร วิธีเลือกบอร์ดพัฒนา และวิธีอัปโหลดโค้ดด้วย Arduino IDE ต้นฉบับแนะนำให้ศึกษาต่อ ได้แก่ ESP32 Digital Inputs and Digital Outputs (Arduino IDE), ESP32 Web Server Tutorial, ESP32 Pinout Reference ตลอดจน eBook “Learn ESP32 with Arduino IDE” ของเว็บไซต์ต้นฉบับ
สำหรับพื้นฐานการเขียนโค้ด อ่านต่อที่ เริ่มต้นเขียนโค้ด Arduino สำหรับมือใหม่
11. ข้อสังเกตเชิงปฏิบัติ
- เลือกบอร์ดที่มี pinout ชัดเจนและตรวจชิป USB (CP2102 หรือ CH340) ก่อนซื้อ เพื่อเตรียมไดรเวอร์
- สาย USB ต้องเป็นแบบมีสายข้อมูล เป็นสาเหตุอัปโหลดไม่ได้ที่พบบ่อย
- หากอัปโหลดไม่ผ่าน ให้ใช้ปุ่ม BOOT ช่วย
- บทความต้นฉบับเขียนตามเวอร์ชัน Arduino IDE 2 และ ESP32 core 3.X ขั้นตอนอาจเปลี่ยนตามเวอร์ชันในอนาคต
แหล่งที่มาและเครดิต
เนื้อหาในบทความนี้สรุปและเรียบเรียงเป็นภาษาไทยจากบทความของ Random Nerd Tutorials ขอขอบคุณผู้จัดทำต้นฉบับที่เผยแพร่ความรู้ให้ชุมชนผู้ใช้ ESP32 ผู้ที่ต้องการรายละเอียดครบถ้วน ภาพประกอบต้นฉบับ และตัวอย่างโค้ดล่าสุด โปรดอ่านฉบับภาษาอังกฤษที่เว็บไซต์ต้นทาง
- Random Nerd Tutorials — Getting Started with the ESP32 Development Board
- Espressif — Arduino-ESP32 Documentation
- Arduino — ดาวน์โหลด Arduino IDE





Leave a Reply