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

สวัสดีครับนักศึกษาทุกคน ต่อเนื่องจากบทที่แล้วที่เราได้เห็นภาพรวมของระบบ IoT กันไปแล้ว ส่วนประกอบด่านหน้าสุดที่สำคัญที่สุดก็คือ "อุปกรณ์" (Device) หรือ "สมองกลฝังตัว" ที่จะทำหน้าที่รวบรวมข้อมูลและส่งขึ้นอินเทอร์เน็ต
สมัยที่เราเรียนวิชาไมโครคอนโทรลเลอร์เบื้องต้น เราอาจจะคุ้นเคยกับบอร์ด Arduino Uno กันมาบ้าง แต่ในรายวิชา IoT นี้ พระเอกของเราจะเปลี่ยนไปครับ เราจะขยับมาใช้ชิปที่มีประสิทธิภาพสูงกว่าและเกิดมาเพื่อยุค IoT โดยเฉพาะ นั่นคือ ESP32 ครับ
1. ไมโครคอนโทรลเลอร์สำหรับงาน IoT ต่างจากแบบธรรมดาอย่างไร?
ไมโครคอนโทรลเลอร์ทั่วไป (เช่น Arduino รุ่นเก่า) มักจะเก่งเรื่องการควบคุมมอเตอร์ หรือรับค่าเซนเซอร์พื้นฐาน แต่ "สื่อสารกับโลกภายนอกไม่ได้" ถ้าจะให้ต่อเน็ตได้ ก็ต้องซื้อโมดูล WiFi หรือ LAN มาต่อพ่วง ซึ่งยุ่งยากและแพง
แต่สำหรับ IoT Microcontroller ยุคใหม่ จะมีคุณสมบัติเด่นคือ:
Built-in Connectivity: มี WiFi หรือ Bluetooth ฝังมาในชิปเลย
Low Power: กินไฟน้อย สามารถใช้กับแบตเตอรี่ได้นาน
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





