
Series Này Dành Cho Ai?
Bạn mới cầm board ESP32 lần đầu, chưa biết bắt đầu từ đâu? Series Lập Trình ESP32 Cơ Bản đi từ số 0: cài Arduino IDE, chạy sketch đầu tiên, rồi lần lượt ghép thêm cảm biến, màn hình, module truyền thông cho tới khi đủ khả năng tự làm một project IoT hoàn chỉnh.
19 bài học được sắp theo lộ trình tăng dần độ khó, chia thành 4 giai đoạn:
- Nền tảng (Bài 1–5): làm quen ESP32, WiFi, GPIO, cảm biến DHT11, Web Server đầu tiên
- Điều khiển & hiển thị realtime (Bài 6–10): LED RGB, Relay, WebSocket, Servo
- Cảm biến & màn hình (Bài 11–15): biến trở, HC-SR04, DHT11 nâng cao, TFT, OLED
- Kết nối nâng cao (Bài 16–19): SIM 4G, phát nhạc MP3, cảm biến khí gas, MQTT
Yêu cầu: Biết lập trình C/C++ cơ bản (biến, vòng lặp, hàm) là đủ — mỗi bài đều có sơ đồ kết nối và code mẫu chạy được ngay, không cần kinh nghiệm ESP32 từ trước.
Phần Cứng Gợi Ý
| Linh Kiện | Dùng Trong Bài | Vai Trò |
|---|---|---|
| Board ESP32 DevKit (bất kỳ) | Toàn bộ | Vi điều khiển chính, có WiFi/Bluetooth |
| Cảm biến DHT11 | 4, 13 | Đo nhiệt độ, độ ẩm |
| Dải LED WS2812B | 6 | LED RGB địa chỉ hoá, hiệu ứng ánh sáng |
| Module Relay | 7 | Đóng/ngắt thiết bị điện áp lớn hơn |
| Cảm biến ánh sáng LDR, biến trở | 9, 11 | Tín hiệu analog cơ bản |
| Servo SG90 | 10 | Điều khiển góc quay qua PWM |
| Cảm biến siêu âm HC-SR04 | 12 | Đo khoảng cách |
| Màn hình TFT SPI / OLED SSD1306 | 14, 15, 18 | Hiển thị dữ liệu trực quan |
| Module SIM 4G A7680C | 16 | Kết nối di động, gọi điện |
| Module DFPlayer Mini | 17 | Phát file MP3 từ thẻ nhớ |
| Cảm biến khí gas MQ-2 | 18 | Cảnh báo khí gas/khói |
Không cần mua đủ một lần — mỗi bài chỉ cần thêm đúng linh kiện của bài đó, có thể mua dần theo tiến độ học.
Danh Sách Bài Học
| # | Tên Bài | Chủ Đề Chính |
|---|---|---|
| 1 | ESP32 là gì? Hướng dẫn bắt đầu với ESP32 cho người mới | Cài Arduino IDE, chọn board, chạy sketch đầu tiên |
| 2 | Kết nối WiFi và kiểm tra Internet với ESP32 | WiFi.begin, kiểm tra kết nối, in địa chỉ IP |
| 3 | Đọc nút nhấn và điều khiển LED với ESP32 | digitalRead/digitalWrite, chống dội phím (debounce) |
| 4 | Đọc nhiệt độ & độ ẩm với cảm biến DHT11 | Giao tiếp cảm biến DHT11, xử lý lỗi đọc dữ liệu |
| 5 | ESP32 Web Server – Điều khiển LED qua trình duyệt | WebServer cơ bản, HTML điều khiển từ điện thoại/PC |
| 6 | Điều khiển LED RGB | Dải LED WS2812B, hiệu ứng đổi màu, chạy sáng, cầu vồng |
| 7 | Điều khiển Relay qua Web Server | Đóng/ngắt thiết bị điện qua relay, giao diện Web |
| 8 | WebSocket – Điều khiển LED realtime từ trình duyệt | Kết nối 2 chiều WebSocket, cập nhật trạng thái tức thời |
| 9 | Đọc cảm biến ánh sáng (LDR) và hiển thị realtime qua WebSocket | Cảm biến analog LDR, đẩy dữ liệu realtime |
| 10 | Điều khiển Servo SG90 qua Web Server | PWM điều khiển servo, thanh trượt trên giao diện Web |
| 11 | Đọc các loại biến trở (Potentiometer / Analog Sensor) | Đọc ADC, quy đổi giá trị cảm biến analog |
| 12 | Đọc cảm biến khoảng cách HC-SR04 | Cảm biến siêu âm, đo khoảng cách theo thời gian thực |
| 13 | ESP32 – Đọc cảm biến nhiệt độ, độ ẩm DHT11 và hiển thị dữ liệu realtime qua WebSocket | Kết hợp DHT11 + WebSocket, dashboard realtime |
| 14 | Hiển thị màn hình TFT (SPI) | Giao tiếp SPI, vẽ chữ/hình trên TFT (ILI9341, ST7735, ST7789) |
| 15 | Màn hình OLED SSD1306 (I2C) | Giao tiếp I2C, hiển thị văn bản trên OLED 128×64 |
| 16 | Module SIM 4G A7680C – Gọi điện thoại, in thông tin SIM/Module, trạng thái 4G | AT command, thông tin SIM/thiết bị, gọi điện qua 4G |
| 17 | Phát nhạc MP3 với module DFPlayer Mini | Giao tiếp UART, điều khiển phát nhạc qua thư viện DFPlayer |
| 18 | Đọc cảm biến khí gas MQ-2 và hiển thị lên màn hình OLED | Cảm biến khí gas MQ-2, hiển thị cảnh báo trên OLED |
| 19 | Kết nối MQTT, Publish dữ liệu cảm biến & Subscribe điều khiển thiết bị | MQTT broker, publish telemetry, subscribe lệnh điều khiển |
Cách Học Series Này
Học tuần tự theo thứ tự bài, đừng bỏ qua các bài nền tảng (1–5) dù có kinh nghiệm lập trình khác — cách viết Web Server và WebSocket ở các bài này được tái sử dụng ở gần như mọi bài sau. Mỗi bài đều tự chạy độc lập với code mẫu đầy đủ, có thể vừa đọc vừa gõ lại trên board thật để nhớ lâu hơn.