Lập trình ESP32 (1/8): Giới thiệu board, cài Arduino IDE & Blink LED
Khóa Arduino ESP32 miễn phí — phần 1: chọn board ESP32-WROOM, cài core esp32 trên Arduino IDE 2.x, nạp Blink, hiểu Serial Monitor. Lộ trình: /blog/hoc-lap-trinh-arduino-esp32-tu-dau
· 3 min read
Khóa lập trình Arduino ESP32 cơ bản — IoT từ Blink đến SmartNode · Phần 1/8▼
Mục lục▼
Khóa lập trình Arduino ESP32 cơ bản — Phần 1/8 (~25 phút)
Case study xuyên suốt: SmartNode — node IoT điều khiển đèn/cảm biến qua WiFi.
Bản đồ: Học Arduino ESP32 từ đâu · Hub: Khóa 8 phần
Tiếp theo: Phần 2 — GPIO & nút bấm
Bạn không cần biết lập trình nhúng. Biết copy-paste và kiên nhẫn nối dây breadboard là đủ để bắt đầu.
Mục lục
- ESP32 là gì?
- Linh kiện tối thiểu
- Cài Arduino IDE 2.x + core esp32
- Blink LED — code đầu tiên
- Serial Monitor
- Bài tập
ESP32 là gì?
ESP32 là vi điều khiển của Espressif: CPU dual-core, WiFi 802.11 b/g/n, Bluetooth, nhiều GPIO, ADC 12-bit, PWM, I2C/SPI/UART. Framework Arduino cho ESP32 giúp bạn dùng digitalWrite, WiFi.begin, WebServer quen thuộc như Arduino Uno — nhưng mạnh hơn nhiều cho IoT.
| Board | Ưu điểm | Ghi chú |
|---|---|---|
| ESP32-WROOM DevKit | Rẻ, ổn định, nhiều tutorial | Khóa dùng board này |
| ESP32-S3 | USB native, AI accel | Hơi khác pinout — học sau |
| ESP8266 | Rẻ hơn, ít GPIO | Không Bluetooth, yếu hơn |
SmartNode trong khóa sẽ: đọc cảm biến → gửi HTTP → phục vụ trang web điều khiển relay.
Linh kiện tối thiểu
- Board ESP32 DevKit + cáp USB
- LED + điện trở 220Ω–330Ω
- Breadboard + dây jumper
- (Từ phần 2) Nút bấm 6×6 mm
Cài Arduino IDE 2.x + core esp32
- Tải Arduino IDE 2 (Windows/macOS/Linux).
- File → Preferences → Additional boards manager URLs — thêm:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
- Tools → Board → Boards Manager → tìm esp32 by Espressif → Install (bản 3.x ổn định).
- Tools → Board → esp32 → ESP32 Dev Module (hoặc DevKit tương ứng).
- Tools → Port → chọn COM/tty của board.
PlatformIO cũng được nếu bạn quen VS Code — chọn board
esp32dev, frameworkarduino.
Blink LED — code đầu tiên
Nối cathode LED (chân ngắn) → GND qua điện trở; anode → GPIO 2 (nhiều DevKit gắn LED onboard ở GPIO2).
#define LED_PIN 2
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
Upload (mũi tên →). LED nhấp nháy 1 Hz = môi trường OK.
Serial Monitor
void setup() {
Serial.begin(115200);
pinMode(2, OUTPUT);
Serial.println("SmartNode boot");
}
void loop() {
Serial.println("tick");
digitalWrite(2, !digitalRead(2));
delay(1000);
}
Tools → Serial Monitor, baud 115200. Dùng Serial để debug suốt khóa — đừng Serial.print trong vòng lặp quá dày khi đã bật WiFi (sẽ học ở phần 5).
Bài tập
- Đổi chu kỳ Blink thành 200 ms ON / 800 ms OFF.
- In ra Serial số lần nhấp nháy (biến
unsigned long). - Thử LED nối GPIO 4 thay vì 2 — sửa
LED_PINvà kiểm tra sơ đồ board (tránh strapping pins: 0, 2, 12, 15 tùy board).
Điều hướng seri: Phần 2 →
Câu hỏi thường gặp
Board ESP32 nào nên mua cho người mới?
ESP32 DevKit V1 (30 chân) hoặc DevKitC với chip ESP32-WROOM-32 — giá rẻ, tài liệu nhiều. Tránh board quá nhỏ (S2/S3 mini) cho đến khi bạn quen GPIO.
Lỗi 'Failed to connect' khi nạp code?
Giữ nút BOOT (hoặc IO0) khi bắt đầu upload, chọn đúng COM port, cài driver CP210x/CH340, thử cáp USB data (không phải cáp sạc-only).
Bài đọc tiếp theo
Lập trình ESP32 (2/8): GPIO digital, nút bấm & chống dội (debounce)
GPIO ESP32: digitalRead/Write, nút bấm pull-up nội, toggle LED, debounce phần mềm — nền tảng đọc cảm biến digital.
Đọc tiếp →Lập trình ESP32 (3/8): PWM — LED fade & điều khiển servo SG90
LEDC PWM trên ESP32, fade LED mượt, thư viện ESP32Servo — điều khiển góc servo 0–180°.
Đọc tiếp →Lập trình ESP32 (4/8): ADC — cảm biến analog & DHT22
Đọc ADC 12-bit, chia áp, biến trở; thư viện DHT — nhiệt độ/độ ẩm cho SmartNode.
Đọc tiếp →Startup của bạn cần tech partner?
Trao đổi miễn phí về MVP, timeline và mô hình chia lợi nhuận phù hợp.