IoTLabs

Nghiên cứu, Sáng tạo và Thử nghiệm

Series: Hướng dẫn lập trình ESP32-S3-DevKitC N16R8 CAM – Từ cơ bản tới ứng dụng thực tế

1) Mục tiêu series

Series này giúp bạn làm chủ board ESP32-S3-DevKitC N16R8 CAM theo lộ trình “từ cơ bản tới ứng dụng thực tế”, cụ thể bạn sẽ:

  • Nhận diện đúng board, hiểu các thành phần (2 USB-C, camera DVP 24-pin, microSD, WS2812).
  • Biết cách kiểm tra board mới mua nhanh – chắc (USB/Flash/PSRAM/nguồn) để tránh “tưởng hỏng”.
  • Đọc pinout theo nhóm chức năng, chọn GPIO an toàn, tránh xung đột camera/SD/USB/boot.
  • Lập trình ổn định với Arduino IDE v2 (và bonus ESP-IDF), nạp code đúng cổng đúng cấu hình.
  • Làm được các ứng dụng thực tế: camera streaming, chụp ảnh lưu microSD, dự án mini hoàn chỉnh, tối ưu chạy lâu.

2) Danh sách bài học

Chặng 1 — Làm quen & kiểm tra board (nền tảng bắt buộc)

Bài 1 — Nhận diện board ESP32-S3-DevKitC N16R8 CAM

  • Giúp bạn nhận biết đúng biến thể CAM (2 USB-C, camera 24-pin, microSD)
  • Phân biệt với DevKitC chuẩn, và hiểu tổng quan “board này làm được gì”.

Bài 2 — Checklist kiểm tra board mới mua (USB/Flash/PSRAM/LED)

  • Checklist 10–15 phút: kiểm tra cổng COM/USB, nạp blink, đọc flash/psram đúng N16R8, test LED cơ bản, các dấu hiệu nguồn yếu.

Bài 2.1 – Phân tích chi tiết pinout theo nhóm chức năng (an toàn vs xung đột)

  • Bài 2.1 được tách riêng để đi rất sâu và rất kỹ vào pinout, giúp bạn hiểu:
  • GPIO nào an toàn để dùng
  • GPIO nào không nên đụng
  • GPIO nào dùng được nhưng cần điều kiện

Bài 03 — COM vs USB (Native/OTG) – Dùng cổng nào, cấu hình nào?

  • Giải thích rõ cổng COM (USB-UART) và cổng USB native/OTG, khi nào dùng cái nào, xử lý lỗi không nhận cổng/không thấy Serial.

Bài 04 — Setup Arduino IDE v2 “đúng chuẩn” (PSRAM/Partition/USB-CDC)

  • Hướng dẫn cấu hình Arduino IDE v2 tối ưu: chọn board, bật PSRAM, partition scheme, USB CDC on boot, tốc độ upload, và mẹo tránh lỗi nạp.

Chặng 2 — Pinout thực chiến (dùng đúng chân, tránh xung đột)

Bài 05 — Đọc pinout theo nhóm chức năng (an toàn vs xung đột)

  • Cách đọc sơ đồ chân theo nhóm: camera pins, SD pins, USB pins, boot/strap pins, GPIO “an toàn” cho I2C/SPI/UART/PWM.

Bài 06 — Nhóm chân Boot/Strapping & các lỗi boot hay gặp

  • Tập trung các chân ảnh hưởng boot (ví dụ GPIO0) và các tình huống làm board không lên/không nạp được khi gắn ngoại vi sai.

Bài 07 — UART/I2C/SPI gợi ý mapping “an toàn” cho dự án

  • Đưa ra bảng GPIO khuyến nghị cho UART/I2C/SPI, kèm ví dụ nối OLED I2C, UART sensor, SPI module mà không đụng camera/SD.

Bài 7.1 – Hướng kết nối với các loại màn hình thông dụng

  • Kết nối đúng – an toàn – ổn định các loại màn hình phổ biến:
  • Dùng mapping GPIO không xung đột với Camera / microSD / Boot
  • Tái sử dụng code

Chặng 3 — Ngoại vi của bản CAM (microSD + camera + LED)

Bài 08 — MicroSD pinout – SD/SD_MMC, format, test đọc/ghi ổn định

  • Hướng dẫn dùng thẻ nhớ: chọn thư viện, format, mount, tạo file, benchmark tốc độ, xử lý lỗi mount fail và xung đột chân.

Bài 09 — Camera DVP 24-pin – phân biệt OV2640/OV5640 & cấu hình cơ bản

  • Giải thích giao tiếp DVP, các tín hiệu quan trọng (XCLK, PCLK, VSYNC…), cách chọn driver camera đúng model và điều kiện cần của PSRAM.

Bài 10 — Demo camera web server – stream ổn định, tối ưu PSRAM/heap

  • Làm demo streaming MJPEG, chỉnh frame size/JPEG quality, mẹo giảm crash, tối ưu heap/psram để chạy ổn định.

Bài 11 — Chụp ảnh lưu microSD – đặt tên file, timestamp, chống full thẻ

  • Xây flow chụp ảnh và lưu file: cấu trúc thư mục, quy ước tên file, giới hạn dung lượng, xoay vòng (circular) khi full.

Bài 12 — WS2812 (GPIO48) – test LED RGB và lưu ý nhiễu/nguồn

  • Test WS2812, các lỗi chớp/loạn màu do nguồn yếu hoặc nhiễu, cách cấp nguồn đúng và giới hạn độ sáng an toàn.

Chặng 4 — Ứng dụng thực tế (mini projects + best practices)

Bài 13 — Dự án 1 – Camera “Nhật ký” (chụp định kỳ + lưu thẻ + xem qua WiFi)

  • Dự án hoàn chỉnh: chụp theo lịch, lưu microSD, mở web xem danh sách ảnh, cấu hình qua WiFi (AP mode) cho người mới.

Bài 14 — Dự án 2 – Camera an ninh mini (snapshot theo sự kiện)

  • Thiết kế snapshot theo trigger (giả lập/ngoại vi), lưu thẻ, log sự kiện, tối ưu để chạy lâu và ít reset.

Bài 15 — Demo dự án 2: “Xiaozhi AI / voice assistant starter checklist”

  • Những yêu cầu tối thiểu: PSRAM, mic/I2S, WiFi ổn định, nguồn đủ dòng.
  • Các bẫy: sụt áp, nóng, reset ngẫu nhiên.

Bài 16 — Tối ưu chạy lâu & ổn định (brownout, watchdog, reset ngẫu nhiên)

  • Chẩn đoán reset: nguồn sụt áp, brownout, watchdog, leak bộ nhớ; checklist fix và best practices khi chạy 24/7.