กลับไปบทความทั้งหมด
เริ่มต้นใช้งาน ESP32 สำหรับมือใหม่
IoT

เริ่มต้นใช้งาน ESP32 สำหรับมือใหม่

Vasin S.15 มกราคม 25683 min
#esp32#iot#beginner

ESP32 คืออะไร?

ESP32 คือไมโครคอนโทรลเลอร์ที่พัฒนาโดยบริษัท Espressif Systems จากประเทศจีน ซึ่งได้รับความนิยมอย่างมากในวงการ IoT (Internet of Things) เนื่องจากมีคุณสมบัติที่โดดเด่นหลายด้าน ไม่ว่าจะเป็นการมี Wi-Fi และ Bluetooth ในตัว ราคาถูก และมีประสิทธิภาพสูง

ในปัจจุบัน ESP32 ถูกนำไปใช้งานในโปรเจคหลากหลายประเภท ตั้งแต่สถานีตรวจวัดสิ่งแวดล้อม บ้านอัจฉริยะ (Smart Home) ไปจนถึงระบบควบคุมอุตสาหกรรมขนาดเล็ก

ทำไม ESP32 ถึงนิยมมาก?

มีเหตุผลหลายประการที่ทำให้ ESP32 ได้รับความนิยมอย่างแพร่หลาย:

1. ราคาถูกแต่ฟีเจอร์เยอะ ESP32 มีราคาเริ่มต้นเพียง 100-200 บาท แต่มาพร้อมกับ Wi-Fi 802.11 b/g/n, Bluetooth 4.2 และ BLE ในตัว ซึ่งหากเป็นบอร์ดอื่นจะต้องซื้อโมดูลเสริมเพิ่ม

2. ประมวลผลเร็ว ESP32 ใช้ CPU Xtensa dual-core 32-bit ความเร็ว 240 MHz พร้อม RAM 520 KB ซึ่งเร็วกว่า Arduino UNO หลายเท่า

3. GPIO ครบครัน มี GPIO ถึง 34 ขา รองรับ ADC (12-bit), DAC, SPI, I2C, UART, PWM และอื่นๆ อีกมากมาย

4. Community ใหญ่ มีชุมชนนักพัฒนาขนาดใหญ่ทำให้หา Tutorial, Library และความช่วยเหลือได้ง่าย

ติดตั้ง Arduino IDE สำหรับ ESP32

ขั้นตอนที่ 1: ดาวน์โหลด Arduino IDE

ดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดจากเว็บไซต์ทางการ arduino.cc เลือก OS ที่คุณใช้งาน (Windows/macOS/Linux)

ขั้นตอนที่ 2: เพิ่ม ESP32 Board Package

  1. เปิด Arduino IDE แล้วไปที่ File → Preferences
  2. ในช่อง "Additional boards manager URLs" ใส่:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  1. กด OK

ขั้นตอนที่ 3: ติดตั้ง ESP32 Board

  1. ไปที่ Tools → Board → Boards Manager
  2. ค้นหา "esp32"
  3. ติดตั้ง "esp32 by Espressif Systems"

ขั้นตอนที่ 4: เลือก Board และ Port

  1. เสียบสาย USB เชื่อมต่อ ESP32 กับคอมพิวเตอร์
  2. ไปที่ Tools → Board → ESP32 Arduino → ESP32 Dev Module
  3. ไปที่ Tools → Port แล้วเลือก COM port ที่ถูกต้อง

เมื่อติดตั้งทุกอย่างเรียบร้อยแล้ว มาเขียนโปรแกรมแรกกัน โปรแกรม LED Blink เป็นโปรแกรมพื้นฐานที่ทำให้ LED กะพริบ

// กำหนด pin ที่ต่อ LED
const int LED_PIN = 2;  // GPIO 2 มี LED ในตัวบน ESP32 Dev Kit

void setup() {
  // ตั้งค่า pin เป็น output
  pinMode(LED_PIN, OUTPUT);
  
  // เปิด Serial Monitor
  Serial.begin(115200);
  Serial.println("ESP32 เริ่มทำงาน!");
}

void loop() {
  // เปิด LED
  digitalWrite(LED_PIN, HIGH);
  Serial.println("LED เปิด");
  delay(1000);  // รอ 1 วินาที
  
  // ปิด LED
  digitalWrite(LED_PIN, LOW);
  Serial.println("LED ปิด");
  delay(1000);  // รอ 1 วินาที
}

GPIO 2 ของ ESP32 Dev Kit มี LED สีน้ำเงินอยู่ในตัว ไม่ต้องต่อ LED เพิ่ม สามารถทดสอบโค้ดได้ทันที

อัพโหลดโปรแกรม

  1. กดปุ่ม Upload (ลูกศรชี้ขวา) ใน Arduino IDE
  2. รอจนกว่าจะเห็น "Connecting..." ในหน้าต่าง Output
  3. ถ้าการ upload ไม่สำเร็จ ให้กดปุ่ม BOOT บนบอร์ด ESP32 ค้างไว้ขณะที่ขึ้น "Connecting..."
  4. เมื่อ upload สำเร็จ LED จะเริ่มกะพริบ

ทดสอบ Wi-Fi

หลังจาก LED Blink แล้ว มาลองเชื่อมต่อ Wi-Fi กัน

#include <WiFi.h>

const char* ssid = "ชื่อ_WiFi_ของคุณ";
const char* password = "รหัส_WiFi_ของคุณ";

void setup() {
  Serial.begin(115200);
  
  // เชื่อมต่อ Wi-Fi
  WiFi.begin(ssid, password);
  Serial.print("กำลังเชื่อมต่อ Wi-Fi");
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
  Serial.println("\nเชื่อมต่อสำเร็จ!");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // โค้ดหลักของคุณ
}

เก็บ Wi-Fi credentials ไว้ในไฟล์แยกต่างหากหรือใช้ตัวแปร environment เพื่อความปลอดภัย ไม่ควร hardcode รหัสผ่านไว้ในโค้ด

สรุป

ESP32 เป็นตัวเลือกที่ดีเยี่ยมสำหรับผู้เริ่มต้นทำโปรเจค IoT เพราะราคาถูก มีฟีเจอร์ครบ และมีชุมชนนักพัฒนาขนาดใหญ่ที่พร้อมช่วยเหลือ

ในบทความต่อไป เราจะมาเรียนรู้การใช้ MQTT เพื่อสื่อสารระหว่าง ESP32 กับ Server ซึ่งเป็นพื้นฐานสำคัญของระบบ Smart Home และ IoT ทั่วไป

ถ้าบทความนี้มีประโยชน์ แชร์ให้เพื่อนๆ ด้วยนะ

บทความที่เกี่ยวข้อง