สวัสดีครับนักศึกษาทุกคน ต่อเนื่องจากบทที่แล้วที่เราได้เห็นภาพรวมของระบบ 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 ขา |
| ADC | 12-bit, 18 ช่อง |
| DAC | 2 ช่อง |
| PWM | สูงสุด 16 ช่อง |
| UART | 3 ชุด |
| SPI | 4 ชุด |
| I2C | 2 ชุด |
| I2S | Audio |
| Touch | Capacitive Touch |
| RTC | Low-power, Deep Sleep |
3️⃣ ผังตำแหน่งขา (Pinout) ESP32 Dev Board
⚠️ หมายเหตุ: ตำแหน่งขาอาจต่างกันเล็กน้อยตามผู้ผลิตบอร์ด
🔌 กลุ่มขาไฟเลี้ยง (Power Pins)
| ขา | หน้าที่ |
|---|---|
| VIN | 5V (จาก USB / External) |
| 3V3 | 3.3V Output |
| GND | Ground |
⚡ GPIO ทั่วไป (Digital I/O)
- GPIO 0–39
- ทุกขาเป็น Input ได้
- บางขาเป็น Output ไม่ได้
❌ GPIO 34–39
- Input only
- นิยมใช้กับ Sensor / ADC
🔁 ขา Boot สำคัญ (ห้ามพลาด)
ขาพวกนี้มีผลตอนเปิดเครื่อง
| GPIO | หมายเหตุ |
|---|---|
| GPIO0 | LOW → Flash mode |
| GPIO2 | ต้อง HIGH ตอนบูต |
| GPIO12 | ระวังแรงดัน Flash |
| GPIO15 | มีผลกับ 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
ขาที่ “ควรใช้” กับ “ควรเลี่ยง”
✅ ขาแนะนำ
4, 5, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33
❌ ขาที่ควรระวัง
0, 2, 12, 15, 34–39
📌 ผัง 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 MHz | 80 – 240 MHz |
| การเชื่อมต่อไร้สาย | ไม่มี (ต้องต่อเพิ่ม) | WiFi + Bluetooth |
| แรงดันไฟทำงาน (Logic) | 5V | 3.3V (ข้อควรระวัง!) |
| ราคาโดยประมาณ | 200 – 300 บาท | 150 – 250 บาท |
ข้อควรระวังสำคัญ!
อุปกรณ์เซนเซอร์หลายตัวทำงานที่ไฟ 5V แต่ ESP32 ทำงานที่ไฟ 3.3V ดังนั้นการต่อวงจรบางอย่างต้องระวังอย่าป้อนไฟ 5V เข้าขา GPIO ของ ESP32 โดยตรง เพราะอาจทำให้บอร์ดเสียหายได้ครับ
4. บอร์ด ESP32 รุ่นต่างๆ ในท้องตลาด
ในห้องเรียนหรือในตลาดบ้านหม้อ/ออนไลน์ เราจะเจอบอร์ด ESP32 หลายหน้าตา แต่ที่นิยมใช้ในการเรียนการสอนมี 2 ทรงหลักๆ คือ:
- ESP32 DevKit V1: บอร์ดทรงยาว ขาเยอะ เสียบลง Protoboard ได้ง่าย (รุ่นที่เราจะใช้เป็นหลัก)
- NodeMCU-32S: คล้ายกับตัวบน แต่การเรียงขาอาจต่างกันเล็กน้อย
ไม่ว่าจะทรงไหน หัวใจหลักคือชิปตัวเดียวกันครับ เขียนโปรแกรมเหมือนกันได้เลย
5. สรุปท้ายบท
การเลือกใช้ ESP32 ในวิชานี้ จะช่วยให้นักศึกษาสามารถสร้างโปรเจกต์ IoT ที่ครบวงจรได้ในบอร์ดเดียว ไม่ต้องต่อสายพะรุงพะรัง และด้วยความแรงของมัน ยังรองรับการเขียนโปรแกรมที่ซับซ้อนขึ้นในอนาคตได้อีกด้วย
ภารกิจต่อไป:
เมื่อเรามีฮาร์ดแวร์แล้ว สิ่งที่ขาดไม่ได้คือ “เครื่องมือสำหรับสั่งงานมัน” ในบทความหน้า เราจะมาติดตั้งซอฟต์แวร์ Arduino IDE และเตรียมเครื่องคอมพิวเตอร์ของเราให้พร้อมสำหรับการเขียนโปรแกรมลงบอร์ด ESP32 กันครับ
เกร็ดความรู้ (Tips):
- IoT ไม่ใช่แค่เรื่องของ WiFi: แม้ ESP32 จะเด่นเรื่อง WiFi แต่โปรเจกต์ IoT บางอย่างอาจใช้ Bluetooth ส่งค่าเข้ามือถือโดยตรงก็ได้ ซึ่ง ESP32 ก็ทำได้เช่นกัน เรียกว่า “ครบเครื่อง” ครับ
