ESP32-C6 / Rust

Kế hoạch · mua gì

Danh sách linh kiện

Ba đợt mua, mỗi đợt mở khoá bởi một milestone đã hoàn thành. Kèm lý do chọn từng món và những chỗ hàng giả tràn lan.

Đợt 1~1.1tr — mở ngay
Đợt 2~450k — mở sau GĐ 1
Đợt 3~500k–1.2tr — mở sau khi node chạy 1 tuần
Giá tra8/2026, đối chiếu lại khi mua

Nguyên tắc chi phối trang này: mỗi đợt được mở khoá bởi một milestone đã hoàn thành, không phải bởi hứng thú. Và không để việc thiếu một món chặn cả kế hoạch — nếu một linh kiện "đúng bài" không mua được, hỏi: nó gỡ nút thắt của giai đoạn nào? Nếu giai đoạn đó còn cách vài tháng thì mua sau.

Cột "Nguồn" ghi shop đã xác minh có hàng và có giá công khai — không phải chỗ duy nhất bán.

Đợt 1 — "Chip lên tiếng"

Mua ngay. Đủ để đi hết GĐ 0 → 1.

MónSLGiá ~Nguồn đã xác minhGhi chú
MuseLab nanoESP32-C6 (2 cổng USB-C, CH343P, N16)2338k cả 2 (niêm yết 210k/con)Shopee "Lập Trình Nhúng A-Z"Cả hai board của GĐ 0–5 đều là loại này. Thay luôn cả devkit ở Đợt 2 lẫn module USB-UART rời.
Cáp USB-C có dây data325k/sợiKhông phải cáp sạc. Đây là lỗi số 1 của người mới.
Logic analyzer 8ch 24MHz (clone Saleae)1177–220khtpro.vn, icdayroi.comChuyển từ Đợt 2 lên vì tiêu chí GĐ 1 cần nó.
Đồng hồ vạn năng1240–260kđại lý có địa chỉ vật lýBắt buộc. Dưới 150k là dấu hiệu hàng nhái.
Combo breadboard MB-102 + mạch nguồn + dây M-M175kcùng shop với boardMạch nguồn cắm thẳng vào rail, cho 3.3V/5V độc lập với board ESP.
Breadboard 830 điểm rời125kcùng shopCó 2 tấm thì một tấm để mạch đang chạy, một tấm để thử cái mới.
Kit điện trở 1/4W1~50kQuan trọng nhất: 4.7kΩ và 10kΩ (pull-up I²C), 220Ω (LED).
LED 5mm10~10k
Nút nhấn tactile 4 chân 6×6mm10~15k
Tụ 100nF gốm ×10, tụ hoá 470µF/16V ×5~30kTụ 470µF nối ngang nguồn cứu anh khỏi brownout khi bật WiFi.
Bắt buộc nối chung GND

Mạch nguồn breadboard và board ESP phải nối chung GND. Không nối là lỗi kinh điển làm I²C và UART chạy lung tung mà không báo gì — không có thông báo lỗi, không có đèn đỏ, chỉ có dữ liệu sai.

Vì sao 2 board cùng loại, và vì sao loại này

Cần tối thiểu 2 board vì GĐ 4 (ESP-NOW) về bản chất là hai con chip nói chuyện, và GĐ 5b là gateway cộng node. Không làm được với một board.

Board kiểu DevKitC-1 có hai cổng USB-C, và đó là toàn bộ lý do chọn nó thay vì SuperMini nhỏ hơn:

  • Cổng qua chip USB-UART bridge: log không rớt khi chip deep sleep hay panic. Đây chính là vấn đề mà module USB-UART rời sinh ra để giải quyết, nên mua board này thì bỏ được món đó.
  • Cổng USB native: vào thẳng USB-Serial-JTAG của C6, probe-rs chạy được.
  • Module bọc thiếc do Espressif làm: phần RF nằm trong module kể cả khi PCB là hàng clone. Đây là thứ làm nó thành "board vô tội" để loại trừ lỗi ở GĐ 4–5.

Chọn bản N8 hoặc N16 (8/16MB flash), tránh N4 — GĐ 6 cần 2 slot app cho OTA, 4MB là chật.

Board thực tế nhận được

Không phải ESP32-C6-DevKitC-1 chính hãng, mà là MuseLab nanoESP32-C6 theo cùng bố cục. Thiết kế mã nguồn mở, có schematic công khai Nguồn source · ví dụ wuxx/nanoESP32-C6 — schematic mã nguồn mở Board dùng trong lộ trình này: LED RGB nối GPIO nào, chân 3V3 lấy nguồn từ đâu, LDO là loại gì. Mở trong tab mới · Esc để đóng — thứ bù lại tốt cho việc không phải hàng chính hãng.

Khớp kỳ vọng: có chip bridge CH343P, hai cổng USB-C có silkscreen ghi rõ CH343ESP32C6 cạnh từng cổng, nút BOOT và RST rời, đúng 16MB flash.

Không khớp: vỏ module khắc MAN16 thay vì chuỗi ESP32-C6-WROOM-1 quen thuộc, và không có header J5 đo dòng — đó là chi tiết chỉ bản chính hãng mới có.

Hai hệ quả phải nhớ về sau, cả hai đều rơi vào GĐ 3:

  1. Không có J5 nên phải đo dòng bằng cách khác: cấp nguồn qua chân 3V3 trên breadboard và mắc ampe kế nối tiếp ở đó. Đọc schematic trước để biết chân 3V3 nối vào đâu.
  2. LDO trên board nhiều khả năng là AMS1117 (linh kiện khắc 1117) — dòng tĩnh cỡ 5mA, cộng thêm RGB LED. Số đo deep sleep sẽ rất xấu, và đó không phải lỗi firmware. Mục tiêu GĐ 3 là thấy được xu hướng giữa ba trạng thái, không phải đạt con số datasheet.

Vì sao giữ logic analyzer clone 24MHz thay vì nâng cấp

Con clone này dùng chip Cypress CY7C68013A (FX2), tức là chạy driver fx2lafw — dòng thiết bị được sigrok wiki liệt kê hỗ trợ 100% Nguồn tài liệu chính chủ sigrok wiki — fx2lafw Driver cho họ logic analyzer clone dùng chip Cypress CY7C68013A; danh sách thiết bị hỗ trợ 100%. Đọc thêm tài liệu chính chủ sigrok wiki — PulseView Phần mềm bắt và giải mã waveform; con trỏ đo khoảng thời gian nằm ở đây. Mở trong tab mới · Esc để đóng . Cắm vào là chạy, chỉ cần cài PulseView, không driver ngoài.

Các lựa chọn "xịn hơn" đều thua ở đúng điểm này: một số model 80MHz tài liệu chỉ nhắc ngscopeclient chứ không xác nhận PulseView; các model hỗ trợ sigrok tốt thì không bán chính ngạch ở VN, mua hộ về là tiền triệu.

Giới hạn thật của con 24MHz: I²C 400kHz thì dư sức (khoảng 60 lần oversampling), nhưng SPI chỉ bắt chắc tới khoảng 2–4MHz clock. GĐ 1–4 không đụng SPI tốc độ cao nên chưa phải vấn đề.

Bẫy khi tìm mua

Đừng bị chữ "ARM FPGA" trong tên listing làm lạc hướng — đó là mô tả đối tượng đem đi debug, không phải chip bên trong máy. Con chip bên trong vẫn là CY7C68013A.

Đợt 2 — "Chip đọc được thế giới"

Mở khoá khi: đã hoàn thành GĐ 1 (2 task embassy chạy song song, interrupt và debounce hoạt động).

Hai điều bắt buộc khi đặt đơn

1. Mọi module phải là loại "đã hàn chân". Mỏ hàn nằm ở Đợt 3 — nếu module về mà chân header còn rời trong túi thì không cắm được vào breadboard và cả Đợt 2 đứng hình. Rủi ro cao nhất ở GY-BME280 và OLED SSD1306.

2. Mua kèm dây dupont M-F và F-F (40 sợi mỗi loại). Đợt 1 mới chỉ có M-M.

MónSLGiá ~NguồnGhi chú
Module BME280 (GY-BME280)2150k/cáidientuduchuy.comHàng giả BMP280 dán nhãn BME280 tràn lan. Quy tắc thực dụng: né mọi listing dưới 60k. Mua loại ghi rõ 3.3V.
Module AHT20 + BMP280 combo120–40klkcg.vnBản dự phòng rẻ. BMP280 vẫn có khối calibration NVM đầy đủ, chỉ thiếu độ ẩm.
DS18B20 (1-Wire)118k (module) – 75k (đầu dò chống nước)nshopvn.com, hshop.vnGiao thức khác hẳn I²C — timing-critical trên một dây. Cũng là nhiệt kế đối chiếu cho BME280.
OLED SSD1306 0.96" I²C165khshop.vnBoard bán ở VN thường mang chip SSD1315 — tương thích tập lệnh SSD1306 nên crate chạy được, biết trước để đỡ hoang mang.
Module 1 relay 3.3VDC opto cách ly, kích mức thấp215k/cáidientuduchuy.comNhiều module relay 5V không kích được bằng GPIO 3.3V.
PIR AM312 Mini140knshopvn.comChạy 2.7–12V nên cắm thẳng rail 3.3V được; HC-SR501 cần ≥3.8V, phải kéo nguồn riêng.
Adapter DC 9V/1A + jack DC1~45–60khshop.vnKhông phải 5V. Mạch nguồn MB-102 nhận 6.5–12V ở jack DC — cắm 5V là không đủ cho hai LDO trên nó.
Đã cân nhắc và loại

SHT30 / SHT40 — chính xác hơn BME280 nhưng mất giá trị học tập: chúng trả về số đã bù sẵn, không có khối calibration NVM lẫn công thức bù để cài đặt. Mà việc cài đặt công thức bù chính là bài học trung tâm của GĐ 2 Nguồn datasheet BME280 Datasheet (Bosch Sensortec) Riêng phần công thức bù — chú ý có hai phiên bản, số nguyên 32-bit và số thực, trộn lẫn là sai. Mở trong tab mới · Esc để đóng .

BME680 — thêm thuật toán IAQ độc quyền, vượt nhu cầu. DHT22 — không phải I²C, lệch mục tiêu học, mà lại đắt hơn. Nhiệt kế tham chiếu rời — bỏ, đối chiếu chéo BME280 với DS18B20 là đủ: hai cảm biến khác hãng cùng cho một số thì tin được.

Đợt 3 — "Thiết bị thật"

Mở khoá khi: đã có node publish MQTT lên Home Assistant, chạy liên tục ít nhất một tuần không reset.

MónGiá ~Ghi chú
ESP32-C6 SuperMini125k/conĐây mới là chỗ cần board nhỏ: thiết bị gắn tường chạy pin, nơi kích thước và dòng tiêu thụ mới quan trọng.
Pin 14500 LiFePO4 3.2V (~650mAh)50kThay 18650 + TP4056. Xem lý do bên dưới.
Module sạc TP500010–35kChuyển được giữa Li-ion 4.2V và LiFePO4 3.6V bằng pad MODE trên board.
Đế pin 14500 (cỡ AA)~10–15k
LDO thay AMS1117 — HT7333 hoặc XC62061k/conChỉ cần nếu dùng Li-ion thường. Dùng LiFePO4 thì không cần LDO nào cả.
Mỏ hàn trạm T12320k (trạm) – 730k (combo có nguồn)Chỉ mua khi đã chắc mình còn ở lại với môn này.
Thiếc 0.8mm lõi nhựa thông, flux, hút thiếc, wick~150k
Perfboard FR45k/tấm nhỏ – 50kChuyển mạch từ breadboard sang cố định. PCB đặt thật để dành cho bản cuối.
Vỏ hộp nhựa ABS có sẵn9k (77×52×22mm) – vài chục kIn 3D chỉ đáng khi cần hình dạng đặc thù để gắn tường hoặc khoét lỗ cảm biến.
(tuỳ chọn) Dongle Zigbee thương mại~400–650kĐể so sánh hệ tự làm với hệ thương mại.

Vì sao đổi 18650 + TP4056 sang LiFePO4 14500 + TP5000

Combo 18650 cộng TP4056 là kinh điển nhưng sai bài cho mục tiêu "chạy pin trên 1 tháng".

Pin Li-ion 4.2V phải hạ xuống 3.3V qua LDO, mà LDO rẻ (AMS1117) tự ăn khoảng 5mA — lớn hơn dòng deep sleep của chính con chip. Tiết kiệm điện trong firmware bao nhiêu cũng vô nghĩa khi mạch nguồn ăn nhiều hơn thế.

LiFePO4 nạp đầy khoảng 3.6V, danh định 3.2V, và đường xả rất phẳng quanh 3.2–3.3V trong phần lớn dung lượng — nằm gọn trong dải hoạt động của ESP32 Nguồn datasheet ESP32-C6 Datasheet (Espressif) Mục Electrical Characteristics cho V_OH/drive strength, và mục strapping pin quyết định chân nào được dùng. Mở trong tab mới · Esc để đóng . Nên cấp thẳng vào chân 3V3, bỏ hẳn LDO. Không LDO nào có dòng tĩnh bằng 0.

Ba lưu ý khi làm:

  • Lúc vừa sạc xong điện áp chạm ~3.6V, đúng mép trên dải cho phép — đo trước khi cắm.
  • LiFePO4 xả kiệt xuống 2.5V, dưới mức chip cần, nên phần đuôi dung lượng coi như mất.
  • 18650 LiFePO4 gần như không bán lẻ ở VN, chỉ tìm được cỡ 14500 (cỡ AA). Dung lượng nhỏ hơn nhiều, nhưng với node deep sleep thì vẫn thừa cho mục tiêu 1 tháng.
Hai lựa chọn nghe hợp lý nhưng hỏng đúng lúc cần

IC power-bank tích hợp sạc + boost (kiểu IP5306): các IC này tự ngắt ngõ ra khi dòng tải quá thấp — đúng lúc chip đang deep sleep. Thiết bị chết im lặng, và triệu chứng trông y hệt firmware treo.

Pin LiSOCl2 ER14505 (bán ở VN dưới tên "pin nuôi nguồn PLC"): đơn giản nhất về mạch, nhưng trở kháng nội cao, không chịu nổi xung dòng lúc bật WiFi nếu không có tụ đệm lớn.

Chưa mua ở giai đoạn này

Oscilloscope, ESP32-S3, camera module, màn hình TFT, máy in 3D, bench power supply, debug probe rời (C6 đã có USB-JTAG tích hợp nên probe-rs dùng thẳng), logic analyzer cao cấp.

Nút thắt của người mới là không nhìn thấy chuyện gì đang xảy ra trên dây — và một logic analyzer 180k giải quyết đúng chuyện đó.

Giá tra tháng 8/2026. Thị trường linh kiện đổi nhanh; đối chiếu lại trước khi đặt, và ưu tiên shop có địa chỉ vật lý cho dụng cụ đo.

Đọc trước hoặc trong phiên

Tra khi cần, không đọc tuyến tính

  • tài liệu chính chủsigrok wiki — fx2lafw

    Driver cho họ logic analyzer clone dùng chip Cypress CY7C68013A; danh sách thiết bị hỗ trợ 100%.