💡 Trong bài học này
🎯 Mục tiêu
Sau bài học này, bạn sẽ:
- Hiểu ESP32 là gì và một số ứng dụng phổ biến.
- Chuẩn bị đầy đủ phần cứng để học tập.
- Cài đặt Arduino IDE.
- Cài đặt Board ESP32.
- Kết nối ESP32 với máy tính.
- Nạp thành công chương trình đầu tiên.
📖 Nội dung bài học
1. ESP32 là gì?
ESP32 là dòng vi điều khiển do Espressif Systems phát triển, tích hợp sẵn WiFi và Bluetooth.
Với hiệu năng cao, giá thành hợp lý và cộng đồng sử dụng rộng lớn, ESP32 là một trong những nền tảng phổ biến nhất để học lập trình nhúng và phát triển các ứng dụng IoT.

Trong khóa học này, các bài thực hành chủ yếu sử dụng ESP32 DevKit V1 (ESP32-WROOM-32).
| Thông số | Thông tin |
|---|---|
| Vi điều khiển | ESP32-WROOM-32 |
| CPU | 32-bit, tối đa 240 MHz |
| Flash | 4 MB |
| SRAM | 520 KB |
| Wi-Fi | 2.4 GHz, 802.11 b/g/n |
| Bluetooth | Bluetooth Classic + BLE |
| GPIO | 30 chân trên phiên bản DevKit V1 30-pin |
| ADC | 12-bit |
| DAC | 2 kênh 8-bit |
| PWM | Hỗ trợ hầu hết trên các GPIO |
| Giao tiếp | UART, I2C, SPI |
| Điện áp logic | 3.3V |
| Điện áp cấp qua USB | 5V |
| Lập trình | Arduino IDE, ESP-IDF, PlatformIO |
Một số ứng dụng của ESP32:

2. Thiết bị cần chuẩn bị
Để học tốt khóa học này, bạn cần chuẩn bị các linh kiện sau:
(bạn có thể tham khảo link mua tại đây)
| Thiết bị | Số lượng | Chức năng |
|---|---|---|
| Board ESP32 DevKit V1 | 2 | Board vi điều khiển chính sử dụng trong khóa học |
| Cáp Micro USB | 2 | Kết nối, cấp nguồn và nạp chương trình |
| Máy tính Windows 64bit | 1 | Cài đặt phần mềm, viết code chương trình |
| Breadboard (Board cắm mạch) | 2 | Dùng đấu nối thiết bị phần cứng mà không cần hàn mạch |
| Dây cắm breadboard đực – đực (M-M) | 20 | Kết nối các linh kiện cắm trên breadboard |
| LED và điện trở 220 Ohm | 10 | Hiển thị trạng thái khi điều khiển thiết bị ở ngõ ra |
| Nút ấn thường hở | 5 | Tạo tín hiệu đầu vào cho ESP32 |
| Biến trở 10 Kohm | 1 | Tạo tín hiệu điện áp đưa vào ESP32 |
| Cảm biến nhiệt độ – độ ẩm DHT11 | 1 | Đo nhiệt độ – độ ẩm môi trường |
| Màn hình oled 0.96 inch | 1 | Hiển thị thông tin hoặc giá trị cảm biến |
| Module relay 5V 2 kênh | 1 | Điều khiển các thiết bị điện AC hoặc DC có công suất lớn |

3. Cài đặt Arduino IDE
Arduino IDE là phần mềm dùng để viết, biên dịch và nạp chương trình cho ESP32.
Truy cập website chính thức của Arduino để tải và cài đặt: https://www.arduino.cc/en/software

Khuyến nghị sử dụng Arduino IDE phiên bản 2.x.

4. Cài đặt Board ESP32
Sau khi cài đặt Arduino IDE, cần cài thêm bộ thư viện (Board Package) để lập trình ESP32.
Thực hiện theo các bước:
Tools
↓
Board
↓
Boards Manager
Nhập từ khóa ESP32, chọn esp32 by Espressif Systems, sau đó nhấn Install.

5. Chọn loại Board
Vào:
Tools
↓
Board
Chọn ESP32 Dev Module hoặc DOIT ESP32 DEVKIT V1 để viết code và nạp chương trình.

6. Kết nối Board và chọn cổng COM
Kết nối ESP32 với máy tính bằng cáp Micro USB.
Sau đó nhấp chuột phải vào biểu tượng WINDOW ⊞ mở:
Device Manager
↓
Ports (COM & LPT)
Xác định cổng COM của ESP32.

Trong Arduino IDE, chọn:
Tools
↓
Port
↓
COMx

Nếu máy tính không nhận ESP32, hãy:
- Kiểm tra lại cáp USB (phải hỗ trợ truyền dữ liệu).
- Thử đổi cổng USB.
- Cài Driver CH340 hoặc CP2102.
7. Nạp chương trình đầu tiên
Trong Arduino IDE, bạn hãy tạo một file chương trình mới (File > New) và lưu với tên HELLO.ino bằng cách chọn menu File > Save As… (chọn thư mục để lưu). Sau đó, bạn copy source code bên dưới vào.
Nhấn Upload để biên dịch và nạp chương trình vào ESP32.

Sau khi Upload thành công, mở Serial Monitor và chọn Baud Rate 115200. Lúc này chúng ta sẽ nhận được chữ “Hello world!” được ESP32 gửi lên máy tính sau mỗi giây.

💻 Source Code
void setup()
{
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop()
{
// put your main code here, to run repeatedly:
Serial.println("Hello World!");
delay(1000);
}C++🔍 Giải thích chương trình
Serial.begin(115200);Khởi tạo giao tiếp Serial với tốc độ 115200 bps.
Serial.println("Hello World!");Hiển thị dòng chữ Hello World! lên Serial Monitor.
delay(1000);Tạm dừng chương trình trong 1000 ms (1 giây) trước khi lặp lại.
⚠ Lỗi thường gặp
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Không xuất hiện cổng COM | Cáp USB chỉ hỗ trợ sạc hoặc thiếu Driver | Đổi cáp, cài Driver CH340/CP2102 |
| Upload thất bại | Chọn sai Board hoặc Port | Kiểm tra lại trong Arduino IDE |
| Máy tính không nhận ESP32 | Thiếu Driver | Cài Driver phù hợp |
| Upload bị treo | Một số board yêu cầu nhấn nút BOOT | Giữ nút BOOT khi bắt đầu Upload |
📝 Bài tập
Thay đổi nội dung hiển thị từ:
Hello World!thành:
Xin chao ESP32!và quan sát kết quả trên Serial Monitor.