1. Mục tiêu series
- Board chính: ESP32 DevKit 38 pin (chuẩn phổ biến).
- Module không dây: NRF24L01 / NRF24L01+ (SPI, 2.4GHz).
- Mục tiêu:
- Người học mới biết C/Arduino một chút là có thể theo.
- Cuối series có thể tự thiết kế:
- Bộ điều khiển từ xa không dây.
- Mạng cảm biến: nhiều node cảm biến NRF → 1 ESP32 gateway → MQTT / IoTLabs Cloud.
- Mỗi bài nên có chung format:
- Mục tiêu bài học
- Kiến thức nền cần biết
- Danh sách linh kiện
- Sơ đồ kết nối (ESP32 – NRF – cảm biến nếu có)
- Code mẫu (kèm giải thích từng phần)
- Bài tập mở rộng / Gợi ý project
2. Danh sách bài học
Bài 1 – Làm quen ESP32 & môi trường lập trình
- Giới thiệu nhanh ESP32 38 pin (nguồn, 3V3/5V, GPIO, UART, SPI, I2C).
- Cài đặt Arduino IDE / PlatformIO, chọn board, upload “Blink LED” test.
- Giải thích cách debug qua Serial Monitor.
Bài 2 – GPIO cơ bản: Nhấn nút – bật/tắt LED
- Kết nối 1 LED ngoài + 1 nút nhấn với ESP32.
- Đọc nút nhấn (digitalRead), chống dội (debounce) đơn giản.
- Bài tập: nhấn giữ → đổi trạng thái / chế độ.
Bài 3 – Giới thiệu module NRF24L01 & giao tiếp SPI
- NRF24L01 là gì, nguyên lý cơ bản truyền RF 2.4GHz.
- Giải thích chân NRF: VCC, GND, CE, CSN, SCK, MOSI, MISO, IRQ.
- Mapping chân NRF24L01 ↔ ESP32 38 pin (SPI hardware & SPI software).
- Lưu ý nguồn: dùng module có regulator 3.3V hoặc tách nguồn riêng.
Bài 4 – Cấu hình NRF24L01: Gửi “Hello World” giữa 2 board ESP32
- Setup 2 bộ: ESP32 + NRF (TX) và ESP32 + NRF (RX).
- Sử dụng thư viện RF24 (hoặc tương đương) trên Arduino.
- Gửi chuỗi “Hello World”, quan sát kết quả trên Serial Monitor.
- Gợi ý kiểm tra lỗi: khoảng cách, nguồn, antenna, vị trí module.
Bài 5 – Thiết kế cấu trúc gói tin: gửi số & dữ liệu cảm biến
- Giới thiệu
structtrong C/C++ để đóng gói dữ liệu. - Ví dụ gói tin:
struct SensorPacket { uint8_t nodeId; float temperature; float humidity; uint32_t uptime; }; - Gửi/nhận
structqua NRF24L01. - Lưu ý
sizeof, căn lề (alignment), ép kiểu.
Bài 6 – Mạng cảm biến nhiều node → 1 gateway ESP32
- Thiết kế mô hình:
- N node cảm biến (ESP32 nhỏ / Arduino + NRF)
- 1 gateway ESP32 + NRF nhận dữ liệu.
- Đánh địa chỉ node (nodeId), kênh RF, pipe address.
- In log ra Serial / hiển thị lên OLED.
Bài 7 – Kết hợp cảm biến thực tế (DHT11/DHT22, MQ-2, v.v.)
- Lấy ví dụ 1 node cảm biến:
- ESP + NRF + cảm biến DHT (nhiệt độ/độ ẩm).
- Node gửi dữ liệu định kỳ (5s/lần) về gateway.
- Gateway hiển thị lên OLED hoặc gửi qua Serial.
Bài 8 – ESP32 gateway đẩy dữ liệu lên MQTT / IoTLabs Cloud
- ESP32 dùng WiFi:
- Nhận data từ NRF.
- Đẩy lên MQTT broker (vd:
topic: iotlabs/sensors/node1).
- Gợi ý dashboard: dùng Node-RED / web đơn giản để show dữ liệu.
Bài 9 – Remote điều khiển: ESP32 + NRF điều khiển Relay/LED từ xa
- 1 bộ phát: tay cầm remote với các nút nhấn (UP/DOWN/ON/OFF).
- 1 bộ nhận: ESP32 + NRF điều khiển 1 relay / dải LED.
- Thiết kế giao thức đơn giản:
commandId,deviceId.
Bài 10 – Tổng kết series & gợi ý mở rộng
- Tóm tắt kiến thức đã học:
- ESP32 GPIO, SPI, NRF24L01, struct data, multi-node, gateway.
- Gợi ý mở rộng:
- Robot điều khiển từ xa.
- Hệ thống giám sát môi trường trong nhà.
- Kết hợp thêm LoRa / WiFi / Bluetooth.



Leave a Reply