Nhà thông minh với ESP32: tự làm cảm biến và công tắc từ 100k
Hướng dẫn làm thiết bị nhà thông minh bằng ESP32 và ESPHome: chọn board, nạp firmware không cần code, ba dự án đầu tiên và cách ghép vào Home Assistant.
Một cảm biến nhiệt ẩm gửi dữ liệu về Home Assistant mỗi phút, không qua server hãng nào, giá vật liệu khoảng 150,000đ. Đó là điểm hấp dẫn của ESP32: bạn tự làm đúng thiết bị mình cần thay vì tìm mua món gần giống. Và với ESPHome, phần khó nhất không còn là viết code mà là chọn đúng board rồi cắm đúng chân. Bài này đi từ mua gì đến lúc thiết bị hiện lên trong Home Assistant.
Vì sao tự làm bằng ESP32
ESP32 là một chip vi điều khiển có sẵn Wi-Fi và Bluetooth, giá vài chục nghìn đồng. Gắn thêm một cảm biến là bạn có thiết bị nhà thông minh hoàn chỉnh.
Ba lý do khiến người dùng Home Assistant hay chuyển sang tự làm. Thứ nhất là làm được đúng thứ không bán sẵn: cảm biến mực nước bể ngầm, đếm số lần mở cửa tủ lạnh, đo điện của riêng một ổ cắm. Thứ hai là dữ liệu chạy cục bộ, không qua server hãng, không phụ thuộc app có còn được cập nhật. Thứ ba là chi phí khi cần nhiều: sáu cảm biến nhiệt ẩm tự làm hết khoảng 900,000đ, mua sẵn thì gấp đôi.
Điều nên nói thẳng: tự làm mất thời gian. Cảm biến đầu tiên có thể tốn một buổi tối, gồm cả lúc loay hoay vì cắm sai chân. Từ cái thứ hai trở đi chỉ mất mười lăm phút. Nếu bạn chỉ cần một hai thiết bị phổ thông, mua sẵn nhanh hơn, và danh sách món đáng mua nằm trong bài thiết bị nhà thông minh giá rẻ.
Chọn board nào
Chợ board ESP32 rất rối vì cùng một chip có hàng chục biến thể. Bốn lựa chọn thực tế tại Việt Nam.
| Board | Giá tham khảo | Hợp với |
|---|---|---|
| ESP32-DevKitC (WROOM-32) | 80,000đ đến 150,000đ | Mặc định cho người mới, nhiều chân, tài liệu nhiều nhất |
| ESP32-C3 SuperMini | 60,000đ đến 100,000đ | Chỗ chật, cảm biến nhỏ gọn, ít chân hơn |
| ESP32-S3 | 150,000đ đến 250,000đ | Cần USB gốc, màn hình hoặc xử lý nặng hơn |
| ESP8266 NodeMCU | 50,000đ đến 90,000đ | Chỉ khi đã có sẵn, không nên mua mới |
Chọn ESP32-DevKitC nếu chưa biết chọn gì. Nó có nhiều chân để cắm thử, chịu được cắm sai vài lần, và mọi hướng dẫn trên mạng đều viết cho nó nên khi gặp lỗi bạn tìm được câu trả lời ngay.
Mua board ở đâu và cần cẩn thận gì
Board bán trên các sàn và cửa hàng linh kiện đều là hàng cùng nguồn. Hai thứ đáng để ý: chọn loại có ghi rõ tên chip (ESP32-WROOM-32, ESP32-C3) chứ không chỉ ghi "ESP32", và mua cáp USB dữ liệu chứ không phải cáp chỉ sạc. Cáp chỉ sạc là nguyên nhân số một của lỗi "máy tính không thấy board".
Cần mua gì để bắt đầu
Một bộ khởi đầu đủ làm được cả ba dự án trong bài, tổng khoảng 300,000đ.
| Món | Giá tham khảo | Dùng để |
|---|---|---|
| Board ESP32-DevKitC | 80,000đ đến 150,000đ | Bộ não của mọi dự án |
| Cảm biến nhiệt ẩm BME280 | 60,000đ đến 90,000đ | Đo nhiệt độ, độ ẩm, áp suất |
| Công tắc từ (reed switch) | 10,000đ đến 25,000đ | Cảm biến cửa, cửa sổ, tủ |
| Module relay 1 kênh | 25,000đ đến 50,000đ | Bật tắt đèn, quạt |
| Dây nối và breadboard | 30,000đ đến 60,000đ | Cắm thử không cần hàn |
| Nguồn USB 5V 1A | 40,000đ đến 80,000đ | Cấp điện khi chạy thật |
Chọn BME280 thay vì DHT22 nếu được: đắt hơn khoảng 20,000đ nhưng đo chính xác hơn rõ và nói chuyện qua I2C nên chỉ cần hai chân dữ liệu cho nhiều cảm biến. Bạn cũng cần một máy chạy Home Assistant, vì đó là nơi thiết bị ESP32 hiện lên và chạy automation; chưa rõ nền tảng này là gì thì đọc Home Assistant là gì trước, còn muốn cài luôn thì bài cài đặt Home Assistant đi từng bước, và Raspberry Pi 5 là phần cứng phổ biến nhất cho việc đó.
ESPHome: thứ thay hẳn việc viết code
Trước đây làm thiết bị ESP32 nghĩa là viết C++ trong Arduino IDE, tự xử lý kết nối Wi-Fi, tự gửi dữ liệu qua MQTT. ESPHome bỏ toàn bộ phần đó.
Bạn mô tả thiết bị bằng một file YAML: tên nó là gì, board loại nào, Wi-Fi nào, chân nào nối với cảm biến gì. ESPHome biên dịch ra firmware, nạp vào board, và tự đăng ký với Home Assistant. Không có vòng lặp, không có hàm, không có thư viện phải tìm.
Cài ESPHome dễ nhất qua add-on trong Home Assistant OS: vào Settings, Add-ons, Add-on Store, tìm ESPHome Device Builder, bấm Install rồi Start. Nếu bạn chạy Home Assistant bằng Docker thì dựng thêm một container ESPHome, cách tổ chức nhiều dịch vụ kiểu này có trong bài home server giá rẻ.
Nạp firmware lần đầu
Lần đầu phải nạp qua cáp USB, từ lần thứ hai trở đi nạp được qua Wi-Fi.
Nếu máy tính không thấy board: đổi cáp trước đã, đây là nguyên nhân phổ biến nhất. Sau đó thử giữ nút BOOT trên board khi bắt đầu nạp rồi nhả sau vài giây. Trên Windows có thể cần driver CP2102 hoặc CH340 tùy chip USB của board.
Dự án đầu tiên: cảm biến nhiệt ẩm
Đây là dự án nên làm trước vì nó không dính tới điện lưới và cho kết quả thấy ngay trên biểu đồ.
Nối BME280 vào ESP32 theo bốn dây: VCC vào 3V3, GND vào GND, SDA vào GPIO21, SCL vào GPIO22. Rồi dán khối này vào file YAML của thiết bị:
i2c:
sda: GPIO21
scl: GPIO22
sensor:
- platform: bme280_i2c
address: 0x76
update_interval: 60s
temperature:
name: "Nhiệt độ phòng ngủ"
humidity:
name: "Độ ẩm phòng ngủ"
pressure:
name: "Áp suất phòng ngủ"Bấm Install, chọn Wireless nếu board đã online. Sau khoảng một phút, ba thực thể mới xuất hiện trong Home Assistant kèm biểu đồ lịch sử. Nếu log báo không tìm thấy cảm biến, thử đổi address thành 0x77; hai địa chỉ này tùy lô hàng và đó là lỗi hay gặp nhất với BME280.
Dự án thứ hai: cảm biến cửa
Công tắc từ là cảm biến rẻ nhất và hữu dụng bậc nhất: gắn ở cửa chính để biết ai về, ở cửa sổ để nhắc đóng khi bật điều hòa, ở tủ thuốc để đếm lần mở.
Nối một chân của công tắc từ vào GPIO4, chân còn lại vào GND. Không cần điện trở vì ESP32 có sẵn điện trở kéo lên bên trong.
binary_sensor:
- platform: gpio
name: "Cửa chính"
device_class: door
pin:
number: GPIO4
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 50ms
- delayed_off: 50msDòng device_class: door là chi tiết nhỏ nhưng đáng có: nó khiến Home Assistant hiển thị đúng chữ Mở và Đóng thay vì On và Off, và cho phép các automation mẫu nhận diện đúng loại thiết bị. Khối filters chống rung tiếp điểm, nếu thiếu bạn sẽ thấy cảm biến báo mở đóng liên tục mỗi lần đóng cửa mạnh.
Có cảm biến cửa rồi thì kho kịch bản mở ra khá rộng, từ đèn hành lang tự bật tới thông báo khi vắng nhà, tham khảo bài 10 automation Home Assistant đáng làm.
Dự án thứ ba: công tắc relay
Đây là dự án đầu tiên chạm tới điện, nên đọc hết phần cảnh báo trước khi cắm.
switch:
- platform: gpio
name: "Quạt phòng làm việc"
pin: GPIO5
restore_mode: RESTORE_DEFAULT_OFFrestore_mode quyết định thiết bị làm gì sau khi mất điện rồi có điện lại. RESTORE_DEFAULT_OFF là mặc định an toàn: khôi phục trạng thái cũ nếu biết, còn không thì tắt. Với thiết bị sinh nhiệt như đèn sưởi hoặc ấm nước, luôn dùng ALWAYS_OFF.
Điện 220V: giới hạn nên tự đặt
Module relay đóng cắt được 220V, nhưng đấu điện lưới là việc có rủi ro thật. Ba nguyên tắc: ngắt cầu dao trước khi đấu, đặt board và relay trong hộp cách điện kín, và không tự làm với thiết bị công suất lớn như bình nóng lạnh, bơm nước, điều hòa. Với các thứ đó hãy mua thiết bị có chứng nhận điện, ví dụ công tắc Sonoff loại gắn sau mặt ổ, an toàn hơn nhiều so với hàng tự đấu.
Chân GPIO nào dùng được
Đây là chỗ người mới mất nhiều thời gian nhất, vì board có 30 chân nhưng không phải chân nào cũng dùng tự do được.
| Nhóm chân | Trạng thái | Ghi chú |
|---|---|---|
| GPIO4, 5, 13, 14, 16 đến 19, 21 đến 23, 25 đến 27, 32, 33 | Dùng thoải mái | Vào ra bình thường, nên bắt đầu từ nhóm này |
| GPIO6 đến GPIO11 | Không được dùng | Nối với chip flash, cắm vào là board không boot |
| GPIO34 đến GPIO39 | Chỉ đọc vào | Không xuất tín hiệu ra được, không có điện trở kéo bên trong |
| GPIO0, 2, 12, 15 | Dùng được nhưng cẩn thận | Là chân strapping, ảnh hưởng lúc board khởi động |
| GPIO1, GPIO3 | Tránh nếu cần log | Là chân UART dùng cho cửa sổ log qua USB |
Quy tắc thực dụng: cắm cảm biến vào GPIO4, 5, 13 đến 33 trước, chỉ đụng tới các chân đặc biệt khi hết chân. Nếu board nạp xong mà cứ khởi động lại liên tục, gần như luôn là do cắm vào một chân trong hai nhóm cấm ở trên.
Ba lỗi hay gặp
Board khởi động lại liên tục sau khi cắm cảm biến. Thường là brownout, tức là sụt điện vì cảm biến ăn nhiều hơn cổng USB máy tính cấp được, hoặc do cắm vào chân flash. Thử nguồn USB 5V riêng trước, rồi kiểm tra lại chân.
Cảm biến báo số vô lý hoặc nhảy loạn. Kiểm tra chân nguồn: nhiều module chạy 3.3V, cắm vào 5V là sai số lớn hoặc chết linh kiện. Với cảm biến I2C, dây dài quá 30cm cũng gây nhiễu, hãy rút ngắn dây trước khi nghi cảm biến hỏng.
Thiết bị rớt Wi-Fi ở góc nhà. ESP32 chỉ bắt băng tần 2.4GHz và độ nhạy kém hơn điện thoại rõ rệt. Cách xử lý theo thứ tự: dựng board đứng và tránh áp sát tường bê tông, đặt Wi-Fi ở kênh cố định thay vì tự động, và nếu vẫn rớt thì thiết bị ở vị trí đó nên dùng Zigbee, xem bài Zigbee2MQTT là gì để hiểu vì sao mạng lưới bám tốt hơn ở góc xa.
ESP32 hay Zigbee cho thiết bị tự làm
Hai đường DIY phổ biến, và chọn sai làm bạn tốn thời gian vô ích.
Kết luận thực dụng: ESP32 cho mọi thứ có nguồn cắm tường và cần logic riêng. Cảm biến chạy pin đặt rải khắp nhà thì Zigbee đúng hơn, vì pin bền hàng năm và mạng lưới tự chuyển tiếp; đường vào rẻ nhất cho nhánh đó là một USB dongle cắm vào máy Home Assistant, hoặc một hub Aqara M2 nếu bạn muốn hệ chạy được cả khi chưa dựng Home Assistant. Nhiều hệ ổn định nhất là hệ dùng cả hai, và bức tranh chọn hệ sinh thái tổng thể nằm trong bài smart home Việt Nam 2026.
Muốn xem giá module và board đang chạy trước khi đặt, bạn có thể lướt gian thiết bị điều khiển thông minh trên Tiki để đối chiếu với cửa hàng linh kiện.
Kết luận
Làm nhà thông minh bằng ESP32 năm 2026 không còn là việc của người biết lập trình: ESPHome đã biến nó thành hai mươi dòng mô tả và một lần cắm cáp. Bộ khởi đầu 300,000đ đủ cho ba thiết bị thật, và cái thứ hai sẽ nhanh hơn cái đầu rất nhiều. Giữ ESP32 cho cảm biến và thiết bị có nguồn cắm tường, để Zigbee lo cảm biến chạy pin, và đừng tự đấu điện với thiết bị công suất lớn. Khi đã có vài cảm biến tự làm, bước tiếp theo là ghép chúng thành kịch bản, cách dựng nằm trong bài tự động hóa nhà thông minh.
Câu hỏi thường gặp
Làm thiết bị ESP32 có cần biết lập trình không?
Không. ESPHome mô tả thiết bị bằng file YAML khoảng 20 dòng rồi tự sinh firmware. Bạn khai báo chân cắm và loại cảm biến, không viết vòng lặp hay hàm nào. Biết code chỉ giúp khi cần logic lạ.
ESP32 rẻ hơn mua thiết bị sẵn bao nhiêu?
Một cảm biến nhiệt ẩm tự làm hết khoảng 150,000đ so với 300,000đ đến 400,000đ mua sẵn. Chênh lệch nhỏ ở một món, nhưng lớn khi cần sáu bảy cảm biến, và bạn kiểm soát hoàn toàn dữ liệu.
Nên chọn ESP32 hay ESP8266?
ESP32 cho dự án mới. Nó có nhiều chân, hai lõi, Bluetooth và ADC tốt hơn, mà giá chỉ chênh vài chục nghìn. ESP8266 chỉ nên dùng khi bạn đã có board sẵn trong hộp đồ.
Thiết bị ESP32 có chạy khi mất Internet không?
Có, miễn Wi-Fi trong nhà và Home Assistant còn chạy. Kết nối ESPHome là cục bộ, không qua server hãng nào. Mất Internet thì automation trong nhà vẫn hoạt động bình thường.
ESP32 có chạy pin được không?
Được nhưng không tốt. Ở chế độ thường, ESP32 giữ Wi-Fi liên tục nên pin AA hết trong vài ngày. Deep sleep kéo lên vài tháng nhưng cảm biến chỉ báo theo chu kỳ, không báo tức thì. Cần cảm biến pin báo ngay thì Zigbee đúng hơn.
Khi nào KHÔNG nên tự làm bằng ESP32?
Khi thiết bị dính tới an toàn tính mạng hoặc điện 220V mà bạn chưa nắm chắc, ví dụ khóa cửa, bình nóng lạnh, bơm nước. Mua thiết bị có chứng nhận điện và giữ ESP32 cho cảm biến, đèn, quạt.
MyAutoLife Team
Đội ngũ MyAutoLife tự kiểm chứng mọi sản phẩm trước khi đánh giá. Dữ liệu, giá và quan điểm dựa trên trải nghiệm thực tế tại Việt Nam.
Kiểm duyệt chuyên môn: Hung Tran
Bài viết liên quan
Robot hút bụi lau nhà giá rẻ: chọn máy nào dưới 8 triệu?
So sánh robot hút bụi lau nhà giá rẻ tại Việt Nam 2026: mức giá đáng mua, điều hướng LiDAR hay cảm biến, mẫu nên chọn dưới 8 triệu và chi phí vật tư mỗi năm.
Nhà thông minh HomeKit tại Việt Nam: hướng dẫn setup từ số 0
Hướng dẫn setup nhà thông minh HomeKit tại Việt Nam: chọn home hub Apple TV hay HomePod mini, thiết bị mua được, giới hạn Siri tiếng Việt và chi phí thực tế.
Tự động hóa nhà thông minh: framework cho người mới bắt đầu
Tự động hóa nhà thông minh cho người mới: trigger, condition, action, ví dụ theo từng phòng, chọn app hãng hay Home Assistant và 3 automation nên làm đầu tiên.
Nhận bản tin MyAutoLife
Mỗi tuần 1 email: AI tools đáng dùng + mẹo smart home. Không spam, hủy bất kỳ lúc nào.