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.
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ón | SL | Giá ~ | Nguồn đã xác minh | Ghi chú |
|---|---|---|---|---|
| MuseLab nanoESP32-C6 (2 cổng USB-C, CH343P, N16) | 2 | 338k 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 data | 3 | 25k/sợi | — | Khô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) | 1 | 177–220k | htpro.vn, icdayroi.com | Chuyển từ Đợt 2 lên vì tiêu chí GĐ 1 cần nó. |
| Đồng hồ vạn năng | 1 | 240–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-M | 1 | 75k | cùng shop với board | Mạ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ời | 1 | 25k | cùng shop | Có 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/4W | 1 | ~50k | — | Quan trọng nhất: 4.7kΩ và 10kΩ (pull-up I²C), 220Ω (LED). |
| LED 5mm | 10 | ~10k | — | |
| Nút nhấn tactile 4 chân 6×6mm | 10 | ~15k | — | |
| Tụ 100nF gốm ×10, tụ hoá 470µF/16V ×5 | — | ~30k | — | Tụ 470µF nối ngang nguồn cứu anh khỏi brownout khi bật WiFi. |
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-rschạ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.
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õ CH343 và ESP32C6 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:
- Không có J5 nên phải đo dòng bằng cách khác: cấp nguồn qua chân
3V3trên breadboard và mắc ampe kế nối tiếp ở đó. Đọc schematic trước để biết chân3V3nối vào đâu. - 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 đề.
Đừ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).
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ón | SL | Giá ~ | Nguồn | Ghi chú |
|---|---|---|---|---|
| Module BME280 (GY-BME280) | 2 | 150k/cái | dientuduchuy.com | Hà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 combo | 1 | 20–40k | lkcg.vn | Bản dự phòng rẻ. BMP280 vẫn có khối calibration NVM đầy đủ, chỉ thiếu độ ẩm. |
| DS18B20 (1-Wire) | 1 | 18k (module) – 75k (đầu dò chống nước) | nshopvn.com, hshop.vn | Giao 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²C | 1 | 65k | hshop.vn | Board 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ấp | 2 | 15k/cái | dientuduchuy.com | Nhiều module relay 5V không kích được bằng GPIO 3.3V. |
| PIR AM312 Mini | 1 | 40k | nshopvn.com | Chạ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 DC | 1 | ~45–60k | hshop.vn | Khô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ó. |
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ón | Giá ~ | Ghi chú |
|---|---|---|
| ESP32-C6 SuperMini | 125k/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) | 50k | Thay 18650 + TP4056. Xem lý do bên dưới. |
| Module sạc TP5000 | 10–35k | Chuyể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 XC6206 | 1k/con | Chỉ 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 T12 | 320k (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 FR4 | 5k/tấm nhỏ – 50k | Chuyể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ẵn | 9k (77×52×22mm) – vài chục k | In 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.
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
- 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ì.
- 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.
- datasheetBME280 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.
- datasheetESP32-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.
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%.