สวัสดีครับนักศึกษาทุกคน ต่อเนื่องจากบทที่แล้วที่เราได้เห็นภาพรวมของระบบ 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 ชุด
I2SAudio
TouchCapacitive Touch
RTCLow-power, Deep Sleep

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

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


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

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

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

  • GPIO 0–39
  • ทุกขาเป็น Input ได้
  • บางขาเป็น Output ไม่ได้

GPIO 34–39

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

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

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

GPIOหมายเหตุ
GPIO0LOW → 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 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 ก็ทำได้เช่นกัน เรียกว่า “ครบเครื่อง” ครับ