Hướng dẫn tự làm chatbot AI Xiaozhi trên ESP32-S3 — phần cứng, ESP-IDF và nạp firmware
Tự làm loa chatbot AI Xiaozhi trên ESP32-S3: linh kiện cần có, cài ESP-IDF 5.4.2, clone xiaozhi-esp32, menuconfig màn hình & wake word, build flash và cấu hình Wi-Fi. Có ảnh từng bước.
Bài viết biên soạn lại từ hướng dẫn DevIoT, bổ sung liên kết tài liệu Loa AI và tối ưu SEO.
Xiaozhi chatbot AI là gì?
Xiaozhi là dự án chatbot AI mã nguồn mở chạy trên chip ESP32, hỗ trợ đánh thức bằng giọng nói, nhận diện tiếng Việt, gọi mô hình ngôn ngữ lớn (LLM) và phát âm thanh trả lời. Bạn có thể tự lắp một chiếc loa thông minh Xiaozhi từ linh kiện rời — chi phí thấp hơn mua sẵn và dễ tùy biến màn hình, wake word hay board phần cứng.
Bài viết này hướng dẫn tự làm chatbot AI Xiaozhi trên ESP32-S3 theo quy trình: chuẩn bị phần cứng → cài ESP-IDF → clone xiaozhi-esp32 → cấu hình menuconfig → build, nạp firmware và cấu hình Wi-Fi.
Chuẩn bị phần cứng
Để tự làm một bộ Xiaozhi DIY cơ bản, bạn cần các linh kiện sau:
- ESP32-S3 — khuyến nghị bản có PSRAM, đủ mạnh cho ASR và giao diện màn hình
- Mic I2S — thu âm giọng nói (INMP441 hoặc tương đương)
- Loa mini + module khuếch đại âm thanh (MAX98357A hoặc PAM8403)
- Màn hình — tròn hoặc vuông, SPI/RGB tùy board bạn chọn trong firmware
- Dây Dupont, breadboard, nguồn 5V ổn định, cáp USB để nạp chương trình
Nếu muốn lắp nhanh hơn, xem thêm danh sách phần cứng DIY Xiaozhi ESP32-S3 và hướng dẫn đấu dây breadboard trên Loa AI.
Cài đặt môi trường lập trình trên Windows
Trước khi biên dịch firmware, cài các công cụ sau:
- Visual Studio Code — tải VS Code để mở và sửa mã nguồn
- ESP-IDF — dùng bộ cài Espressif, khuyến nghị phiên bản 5.4.2: ESP-IDF Installer
- Git for Windows (tùy chọn) — nếu clone repo thay vì tải ZIP: git-scm.com
Khi cài ESP-IDF, nên đặt thư mục trên ổ D: (tránh đường dẫn quá dài trên ổ C). Sau khi cài xong, trên Desktop sẽ có shortcut ESP-IDF PowerShell — đây là terminal dùng để build và nạp code.
Video hướng dẫn cài ESP-IDF trên Windows (tham khảo): YouTube — cài ESP-IDF.
Tải mã nguồn xiaozhi-esp32
Có hai cách lấy code:
- Vào github.com/78/xiaozhi-esp32 → Code → Download ZIP, giải nén vào cùng thư mục với ESP-IDF (ví dụ
D:\esp32\xiaozhi-esp32) - Hoặc mở ESP-IDF PowerShell,
cdvào thư mục làm việc rồi chạy:
git clone https://github.com/78/xiaozhi-esp32.git
Mở project trong VS Code: File → Open Folder → chọn thư mục xiaozhi-esp32.
Chọn chip và cấu hình menuconfig
Trong ESP-IDF PowerShell, vào thư mục code:
cd D:\esp32\xiaozhi-esp32
idf.py set-target esp32s3
Lệnh set-target báo cho ESP-IDF biết bạn dùng ESP32-S3. Firmware cũng hỗ trợ ESP32, ESP32-C3 — đổi target tương ứng nếu board khác.
Tiếp theo mở giao diện cấu hình:
idf.py menuconfig
Trong menu, bạn cần chỉnh hai nhóm chính:
- Loại màn hình — tick đúng driver màn bạn đang dùng (danh sách rất dài, chọn đúng model SPI/LCD/RGB)
- Wake word — chọn từ khóa đánh thức, ví dụ Hi, Lily (dễ gọi, nhạy)
Xong thì nhấn ESC → Save để lưu cấu hình.
Chỉ dùng Wi-Fi (bỏ 4G)
Mặc định một số board hỗ trợ cả 4G và Wi-Fi. Nếu bạn không gắn module 4G, cần ép firmware chỉ kết nối Wi-Fi bằng cách sửa file dual_network_board.cc — thêm dòng khởi tạo chế độ Wi-Fi-only theo hướng dẫn trong repo (xem ảnh minh họa bên dưới).
Build và nạp firmware xuống board
Biên dịch toàn bộ project:
idf.py build
Xác định cổng COM của board (Device Manager trên Windows), rồi nạp và mở log:
idf.py -p COM12 flash monitor
Thay COM12 bằng cổng thực tế. Nếu chỉ muốn nạp bản phát hành có sẵn mà không build, dùng Flash Tool web / ESP-Launchpad.
Ghép nối phần cứng
Với custom board tự chế, sửa chân GPIO trong mã nguồn board cho khớp sơ đồ của bạn, rồi idf.py build flash lại. Tham khảo sơ đồ đấu dây phổ biến trên mạng — mic I2S, loa qua module amp, màn hình SPI — và nối theo đúng chân đã khai báo trong firmware.
Cấu hình Wi-Fi và kích hoạt thiết bị
Sau khi nạp firmware thành công, thiết bị vào chế độ cấu hình Wi-Fi (thường phát hotspot hoặc hiện mã QR). Kết nối điện thoại, nhập mật khẩu Wi-Fi nhà bạn, rồi đăng ký thiết bị lên server Xiaozhi.
Hướng dẫn chi tiết từng bước:
- Cấu hình Wi-Fi và thêm thiết bị Xiaozhi
- Nạp firmware & Wi-Fi (Xmini-C3) — quy trình tương tự nhiều board nhỏ
- Firmware tiếng Việt tại loaai.me/flash nếu dùng sản phẩm Loa AI
Mẹo và lỗi thường gặp
- Build lỗi thiếu target — chạy lại
idf.py set-target esp32s3vàidf.py fullcleannếu đổi chip - Không nghe wake word — kiểm tra mic I2S, chọn đúng wake word trong menuconfig; xem thêm đổi wake word / âm thanh P3
- Màn hình trắng — chọn sai driver trong menuconfig hoặc đấu nhầm chân SPI
- Chỉ có 4G, không vào Wi-Fi — sửa
dual_network_board.ccnhư mục trên
Tóm tắt
Tự làm chatbot AI Xiaozhi trên ESP32-S3 gồm: chuẩn bị ESP32-S3 + mic + loa + màn hình → cài ESP-IDF 5.4.2 → clone xiaozhi-esp32 → menuconfig (màn hình + wake word) → build → flash → đấu dây → cấu hình Wi-Fi. Toàn bộ mã nguồn mở trên GitHub; bạn có thể mở rộng qua MCP endpoint hoặc mua Loa AI đã hoàn thiện sẵn firmware tiếng Việt.