Bỏ qua tới nội dung
Nhận bảng Notion miễn phí — miễn phí
MyAutoLife

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.

MyAutoLife TeamKiểm duyệt: Hung TranĐăng 27/07/2026
13 phút đọc
Bốn bước làm thiết bị nhà thông minh bằng ESP32 từ chọn board đến hiện trong 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.

Tổng quan 30 giây: chọn board, ESPHome thay code, ba dự án đầu tiên và các chân GPIO cần tránh.

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.

BoardGiá tham khảoHợ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 SuperMini60,000đ đến 100,000đChỗ chật, cảm biến nhỏ gọn, ít chân hơn
ESP32-S3150,000đ đến 250,000đCần USB gốc, màn hình hoặc xử lý nặng hơn
ESP8266 NodeMCU50,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ónGiá tham khảoDùng để
Board ESP32-DevKitC80,000đ đến 150,000đBộ não của mọi dự án
Cảm biến nhiệt ẩm BME28060,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ênh25,000đ đến 50,000đBật tắt đèn, quạt
Dây nối và breadboard30,000đ đến 60,000đCắm thử không cần hàn
Nguồn USB 5V 1A40,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ẻ.

Bốn bước làm thiết bị nhà thông minh bằng ESP32 từ chọn board đến hiện trong Home Assistant

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: 50ms

Dò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_OFF

restore_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ânTrạng tháiGhi chú
GPIO4, 5, 13, 14, 16 đến 19, 21 đến 23, 25 đến 27, 32, 33Dùng thoải máiVào ra bình thường, nên bắt đầu từ nhóm này
GPIO6 đến GPIO11Không được dùngNối với chip flash, cắm vào là board không boot
GPIO34 đến GPIO39Chỉ đọc vàoKhông xuất tín hiệu ra được, không có điện trở kéo bên trong
GPIO0, 2, 12, 15Dùng được nhưng cẩn thậnLà chân strapping, ảnh hưởng lúc board khởi động
GPIO1, GPIO3Tránh nếu cần logLà chân UART dùng cho cửa sổ log qua USB

Bản đồ các nhóm chân GPIO trên ESP32: chân dùng thoải mái, chân chỉ đọc vào, chân strapping và chân không được dùng

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.

AL

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

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.

Bạn quan tâm chủ đề nào?