ทำไมต้องเป็น ESP32?

ทำไมต้องเป็น ESP32?

สวัสดีครับนักศึกษาทุกคน ต่อเนื่องจากบทที่แล้วที่เราได้เห็นภาพรวมของระบบ IoT กันไปแล้ว ส่วนประกอบด่านหน้าสุดที่สำคัญที่สุดก็คือ "อุปกรณ์" (Device) หรือ "สมองกลฝังตัว" ที่จะทำหน้าที่รวบรวมข้อมูลและส่งขึ้นอินเทอร์เน็ต

สมัยที่เราเรียนวิชาไมโครคอนโทรลเลอร์เบื้องต้น เราอาจจะคุ้นเคยกับบอร์ด Arduino Uno กันมาบ้าง แต่ในรายวิชา IoT นี้ พระเอกของเราจะเปลี่ยนไปครับ เราจะขยับมาใช้ชิปที่มีประสิทธิภาพสูงกว่าและเกิดมาเพื่อยุค IoT โดยเฉพาะ นั่นคือ ESP32 ครับ


1. ไมโครคอนโทรลเลอร์สำหรับงาน IoT ต่างจากแบบธรรมดาอย่างไร?

ไมโครคอนโทรลเลอร์ทั่วไป (เช่น Arduino รุ่นเก่า) มักจะเก่งเรื่องการควบคุมมอเตอร์ หรือรับค่าเซนเซอร์พื้นฐาน แต่ "สื่อสารกับโลกภายนอกไม่ได้" ถ้าจะให้ต่อเน็ตได้ ก็ต้องซื้อโมดูล WiFi หรือ LAN มาต่อพ่วง ซึ่งยุ่งยากและแพง

แต่สำหรับ IoT Microcontroller ยุคใหม่ จะมีคุณสมบัติเด่นคือ:

  1. Built-in Connectivity: มี WiFi หรือ Bluetooth ฝังมาในชิปเลย

  2. Low Power: กินไฟน้อย สามารถใช้กับแบตเตอรี่ได้นาน

  3. High Performance: ประมวลผลเร็ว รองรับการเข้ารหัสข้อมูล (Encryption) เพื่อความปลอดภัย


2. ทำความรู้จักกับ ESP32

ESP32 ผลิตโดยบริษัท Espressif Systems เป็นชิปที่ได้รับความนิยมสูงสุดในโลก IoT ณ ขณะนี้ ด้วยเหตุผลหลักๆ คือ "ถูก ดี และ แรง" ครับ

สเปกเด่นที่ควรรู้ (สำหรับช่างเทคนิค):

  • CPU: แบบ Dual Core (2 แกนสมอง) ความเร็วสูงถึง 240 MHz (เทียบกับ Arduino Uno ที่วิ่งแค่ 16 MHz)

  • Connectivity: รองรับทั้ง WiFi (2.4 GHz) และ Bluetooth (Classic & BLE) ในตัวเดียว

  • Memory: Flash Memory (สำหรับเก็บโปรแกรม) มักจะให้มา 4MB ซึ่งเยอะมากสำหรับงานฝังตัว

  • IO Ports: มีขาใช้งานเยอะ ทั้ง Digital, Analog (ADC), DAC, I2C, SPI, UART


สถาปัตยกรรม (Architecture) ของ ESP32

🔧 CPU

  • Xtensa LX6 Dual-Core

    • Core 0 (PRO_CPU) → งานระบบ / Wi-Fi

    • Core 1 (APP_CPU) → งานแอปของเรา

  • ความเร็วสูงสุด 240 MHz

ถ้าใช้ Arduino → เราแทบไม่ต้องสนใจ Core
ถ้าใช้ ESP-IDF → แยก task ข้าม core ได้


🧠 หน่วยความจำ

ภายในชิป

  • ROM ~448 KB (bootloader)

  • SRAM ~520 KB

ภายนอก

  • Flash 4MB / 8MB (บนโมดูล WROOM)

  • PSRAM (เฉพาะบางรุ่น เช่น WROVER)


📡 ระบบสื่อสาร

  • Wi-Fi 802.11 b/g/n

  • Bluetooth 4.2

    • Classic

    • BLE


⏱ Peripheral ภายใน

ESP32 ถือว่า “โหด” มากเมื่อเทียบ MCU ทั่วไป

หมวดรายละเอียดGPIO~34 ขาADC12-bit, 18 ช่องDAC2 ช่องPWMสูงสุด 16 ช่องUART3 ชุดSPI4 ชุดI2C2 ชุดI2SAudioTouchCapacitive TouchRTCLow-power, Deep Sleep


3️⃣ ผังตำแหน่งขา (Pinout) ESP32 Dev Board

⚠️ หมายเหตุ: ตำแหน่งขาอาจต่างกันเล็กน้อยตามผู้ผลิตบอร์ด


🔌 กลุ่มขาไฟเลี้ยง (Power Pins)

ขาหน้าที่VIN5V (จาก USB / External)3V33.3V OutputGNDGround


⚡ GPIO ทั่วไป (Digital I/O)

  • GPIO 0–39

  • ทุกขาเป็น Input ได้

  • บางขาเป็น Output ไม่ได้

GPIO 34–39

  • Input only

  • นิยมใช้กับ Sensor / ADC


🔁 ขา Boot สำคัญ (ห้ามพลาด)

ขาพวกนี้มีผลตอนเปิดเครื่อง

GPIOหมายเหตุGPIO0LOW → Flash modeGPIO2ต้อง HIGH ตอนบูตGPIO12ระวังแรงดัน FlashGPIO15มีผลกับ boot

ถ้าใช้มั่ว → บอร์ดไม่ติด 😅


📊 ADC / DAC

ADC

  • ADC1 → GPIO 32–39 (ปลอดภัย ใช้พร้อม Wi-Fi ได้)

  • ADC2 → GPIO 0,2,4,12–15 (❌ ใช้พร้อม Wi-Fi ไม่ได้)

DAC

  • GPIO25 → DAC1

  • GPIO26 → DAC2


🔄 UART / I2C / SPI (ขาแนะนำ)

UART

  • UART0 → GPIO1 (TX), GPIO3 (RX) → ใช้กับ USB

  • UART2 → GPIO16,17 (นิยม)

I2C (เปลี่ยนขาได้)

  • SDA → GPIO21

  • SCL → GPIO22

SPI (VSPI)

  • MOSI → GPIO23

  • MISO → GPIO19

  • SCK → GPIO18

  • CS → GPIO5


ขาที่ “ควรใช้” กับ “ควรเลี่ยง”

✅ ขาแนะนำ

typescript
4, 5, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33

❌ ขาที่ควรระวัง

typescript
0, 2, 12, 15, 3439

📌 ผัง Pinout ESP32 Dev Board (ภาพรวม GPIO + ฟังก์ชัน)

📌 หมายเหตุสำคัญในการใช้ภาพ pinout

🔹 บอร์ด Dev Kit ต่างยี่ห้อ อาจแตกต่างกันเล็กน้อย (เส้น silkscreen บน PCB) — แต่เลข GPIO บนชิปเองเหมือนกัน
🔹 ถ้าระบุ GPIO ไม่ตรงกับตำแหน่งที่ PCB เขียนไว้ ให้ตรวจสอบชื่อขา (เช่น D2 → GPIO2) ก่อนใช้งาน
🔹 ขาที่เป็น ADC / DAC / Input Only ต้องเช็คก่อนใช้งานจริง เช่น GPIO34-39 เป็น Input เท่านั้น


3. เปรียบเทียบมวยคู่เอก: Arduino Uno vs ESP32

เพื่อให้เห็นภาพชัดเจน ลองดูตารางเปรียบเทียบนี้ครับ:

คุณสมบัติArduino Uno (R3)ESP32 (DevKit V1)หน่วยประมวลผลATmega328P (8-bit)Xtensa® LX6 (32-bit)ความเร็ว (Clock Speed)16 MHz80 - 240 MHzการเชื่อมต่อไร้สายไม่มี (ต้องต่อเพิ่ม)WiFi + Bluetoothแรงดันไฟทำงาน (Logic)5V3.3V (ข้อควรระวัง!)ราคาโดยประมาณ200 - 300 บาท150 - 250 บาท

ข้อควรระวังสำคัญ!

อุปกรณ์เซนเซอร์หลายตัวทำงานที่ไฟ 5V แต่ ESP32 ทำงานที่ไฟ 3.3V ดังนั้นการต่อวงจรบางอย่างต้องระวังอย่าป้อนไฟ 5V เข้าขา GPIO ของ ESP32 โดยตรง เพราะอาจทำให้บอร์ดเสียหายได้ครับ


4. บอร์ด ESP32 รุ่นต่างๆ ในท้องตลาด

ในห้องเรียนหรือในตลาดบ้านหม้อ/ออนไลน์ เราจะเจอบอร์ด ESP32 หลายหน้าตา แต่ที่นิยมใช้ในการเรียนการสอนมี 2 ทรงหลักๆ คือ:

  1. ESP32 DevKit V1: บอร์ดทรงยาว ขาเยอะ เสียบลง Protoboard ได้ง่าย (รุ่นที่เราจะใช้เป็นหลัก)

  2. NodeMCU-32S: คล้ายกับตัวบน แต่การเรียงขาอาจต่างกันเล็กน้อย

ไม่ว่าจะทรงไหน หัวใจหลักคือชิปตัวเดียวกันครับ เขียนโปรแกรมเหมือนกันได้เลย


5. สรุปท้ายบท

การเลือกใช้ ESP32 ในวิชานี้ จะช่วยให้นักศึกษาสามารถสร้างโปรเจกต์ IoT ที่ครบวงจรได้ในบอร์ดเดียว ไม่ต้องต่อสายพะรุงพะรัง และด้วยความแรงของมัน ยังรองรับการเขียนโปรแกรมที่ซับซ้อนขึ้นในอนาคตได้อีกด้วย

ภารกิจต่อไป:

เมื่อเรามีฮาร์ดแวร์แล้ว สิ่งที่ขาดไม่ได้คือ "เครื่องมือสำหรับสั่งงานมัน" ในบทความหน้า เราจะมาติดตั้งซอฟต์แวร์ Arduino IDE และเตรียมเครื่องคอมพิวเตอร์ของเราให้พร้อมสำหรับการเขียนโปรแกรมลงบอร์ด ESP32 กันครับ


เกร็ดความรู้ (Tips):

  • IoT ไม่ใช่แค่เรื่องของ WiFi: แม้ ESP32 จะเด่นเรื่อง WiFi แต่โปรเจกต์ IoT บางอย่างอาจใช้ Bluetooth ส่งค่าเข้ามือถือโดยตรงก็ได้ ซึ่ง ESP32 ก็ทำได้เช่นกัน เรียกว่า "ครบเครื่อง" ครับ