Lab.Vatli365
← Nhà thông minh Xiaozhi

Dự án 84 · Tài liệu lắp ráp

Lắp ráp & nạp firmware
gọn, đủ 5 bước

Lý thuyết ngắn → kết nối → nạp code → kiểm thử → chạy. Tải PDF để in hoặc xem offline khi lắp ráp.

⇩ Tải hướng dẫn PDFdu-an-84-xiaozhi-lap-rap-nap-code.pdf

01 · Lý thuyết ngắn gọn

Một hệ AI phần cứng cần "phanh an toàn"

ESP32-S3 ghi âm qua I²S, gửi WebSocket tới máy chủ VatLi365. Máy chủ nhận dạng lời nói, gọi DeepSeek để hiểu ý định và phát câu trả lời qua loa.

Lệnh đọc trạng thái (đèn đang bật/tắt) thực hiện ngay. Lệnh làm thay đổi phần cứng (bật/tắt đèn) phải đi qua 3 trạng thái pending → confirmed → consumed — AI chỉ được hỏi lại, không được tự bật; người dùng phải xác nhận rõ ràng ở lượt thoại kế tiếp; token dùng một lần, hết hạn sau 30 giây.

02 · Kết nối

Linh kiện & sơ đồ GPIO

Linh kiệnThông số / ghi chúSL
ESP32-S3 DevKitN16R8: 16 MB Flash, 8 MB PSRAM Octal1
INMP441Micro I²S, chân L/R nối GND1
MAX98357ADAC + khuếch đại Class D I²S1
Loa mini4 Ω, 3 W, đường kính 30–40 mm1
OLED SSD13060,96 inch, I²C, 128 × 641
Relay 5 V1 kênh, ưu tiên có cách ly quang1
Nguồn & dây nốiUSB-C 5 V 2–3 A, breadboard, jumper1 bộ
KhốiChân module → ESP32-S3Nguồn
Micro INMP441SCK → GPIO41 · WS → GPIO42 · SD → GPIO2 · L/R → GND · GND → GNDVDD 3,3 V
Loa MAX98357ABCLK → GPIO15 · LRC → GPIO16 · DIN → GPIO7VIN 5 V
OLED SSD1306SDA → GPIO8 · SCL → GPIO9VCC 3,3 V
RelayIN → GPIO4VCC 5 V

Chung GND. Relay mặc định kích mức thấp (RELAY_ACTIVE_LEVEL = 0), OFF khi khởi động — nếu module của bạn kích mức cao, đổi thành 1 trong config.h trước khi build.

03 · Nạp code

Online hoặc offline

⇩ Nạp online (Web Serial)

Nạp trực tiếp từ trình duyệt, không cần cài gì — giống các bài Lab khác.

Đang chờ kiểm thử phần cứng

Sẽ mở ngay tại đây sau khi một board thật build từ mục dưới vượt qua hết phần Kiểm thử.

💻 Nạp offline (ESP-IDF)

Chỉ cần làm lại từ bước 2 nếu đã cài ESP-IDF rồi — không cần cài lại từ đầu mỗi lần.

  1. Cài ESP-IDF 6.0.2 (dl.espressif.com/dl/esp-idf/, một lần duy nhất). Bộ cài mới (EIM) không có shortcut CMD sẵn.
  2. Mở PowerShell mới, dán nguyên khối lệnh này (kích hoạt ESP-IDF → copy source ra đường dẫn không khoảng trắng → build):
& "C:\Espressif\tools\Microsoft.v6.0.2.PowerShell_profile.ps1"

Remove-Item "C:\Users\Dell\xiaozhi-build" -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Path "C:\Users\Dell\xiaozhi-build" -Force | Out-Null
robocopy "D:\Ebook - Antigravity\integrations\xiaozhi\firmware" "C:\Users\Dell\xiaozhi-build\firmware" /E /XD .git build managed_components /NFL /NDL /NJH /NJS

Set-Location "C:\Users\Dell\xiaozhi-build\firmware"
python scripts/build.py vatli365-xiaozhi-smart-home

Đường dẫn project có khoảng trắng (D:\Ebook - Antigravity\...) làm bước link lỗi — khối lệnh trên đã tự copy source ra C:\Users\Dell\xiaozhi-build (không khoảng trắng) trước khi build, không cần sửa gì thêm.

  1. Cắm ESP32-S3 qua USB-C, xem cổng COM ở Device Manager (VD COM6), rồi nạp:
cd "C:\Users\Dell\xiaozhi-build\firmware\build"
python -m esptool --chip esp32s3 -b 460800 -p COM6 write-flash 0x0 merged-binary.bin
  1. Xem log kiểm thử: cd .. rồi idf.py -p COM6 monitor (chạy từ thư mục gốc firmware, không phải build).

⚠️ Board đang chạy MicroPython (bài Lab khác) sẽ bị xoá hoàn toàn khi nạp — dùng riêng một board N16R8 cho dự án này.

04 · Kiểm thử

Sau khi nạp — đúng thứ tự

  • Wi-Fi: lần đầu boot mở hotspot cấu hình — kết nối bằng điện thoại, nhập Wi-Fi thật.
  • OLED hiển thị trạng thái kết nối.
  • OTA + WSS: log serial kết nối được tới ebook.vatli365.vn, không lỗi.
  • Micro & loa: nói được, nghe được câu trả lời.
  • Relay: đèn LED gắn relay phải OFF ngay khi board vừa khởi động.

05 · Chạy

Kiểm thử luồng xác nhận đầy đủ

Chỉ làm sau khi mục Kiểm thử đạt hết. Relay phải giữ nguyên ở mọi tình huống trừ tình huống 1:

Tình huốngCách thử & kết quả mong đợi
1 · Luồng thuận"Bật đèn giúp tôi" → AI hỏi lại → lượt kế tiếp "Đồng ý, bật đi" → relay đổi trạng thái.
2 · Từ chốiLượt kế tiếp nói "Không, đừng bật" → relay giữ nguyên.
3 · Hết hạn 30sIm lặng quá 30 giây rồi mới "đồng ý" → bị từ chối vì token hết hạn.
4 · Cùng lượtNói liền "bật đèn, đồng ý luôn" → phải bị từ chối (chốt an toàn cố ý).
5 · Mất mạngRút Wi-Fi 5 giây sau khi AI hỏi xác nhận → relay không đổi trạng thái.

Bước tiếp theo

Phần cứng ổn định → mở "Nạp code online" ngay tại đây

Quay lại trang sản phẩm →