Thiết bị nhắc mở cửa sổ khi phòng bí khí
Ghi chú làm một hộp đo CO2 nhỏ đặt trên bàn, dùng ESP32 và SCD40/SCD41 để nhắc mở cửa sổ khi phòng bí quá lâu.
Chia sẻ

Nếu bạn thử ý tưởng này, mình khuyên bắt đầu bằng một lời nhắc dễ hiểu rồi mới nghĩ tới dashboard hay automation phức tạp.
Có những lúc ngồi trong phòng làm việc một hồi mới thấy đầu hơi nặng, người lừ đừ, rồi mở cửa sổ ra thì dễ chịu hẳn. Cảm giác "phòng bí" thường đến chậm nên mình hay bỏ qua, nhất là khi đang tập trung làm việc hoặc ở trong phòng kín bật điều hòa.
Ghi chú này dành cho một hộp đo CO2 nhỏ đặt gần bàn làm việc hoặc phòng ngủ. Khi CO2 tăng cao đủ lâu, nó nhắc mình mở cửa sổ vài phút. Mình chưa muốn kéo nó sang điều khiển quạt hay HVAC; ở bản đầu, một lời nhắc đúng lúc đã là phần có giá trị nhất.
Vì sao nên đo CO2?
CO2 không phải là toàn bộ câu chuyện về chất lượng không khí, nhưng nó là tín hiệu khá tốt cho việc phòng có đang thiếu thông gió so với số người trong phòng hay không. CDC cũng lưu ý CO2 monitor có thể cung cấp thông tin về thông gió, nhưng không nên xem một con số CO2 duy nhất là thước đo tuyệt đối cho mọi không gian.
Vì vậy, mình sẽ dùng CO2 như một lời nhắc thực dụng:
| Mức CO2 | Cách hiểu trong phòng nhỏ |
|---|---|
| Dưới 800 ppm | Phòng thường đang khá ổn |
| 800-1000 ppm | Bắt đầu để ý, nhất là nếu đang làm việc lâu |
| 1000-1500 ppm | Nên mở cửa hoặc tăng thông gió |
| Trên 1500 ppm | Nhắc mạnh hơn, đặc biệt với phòng ngủ/phòng làm việc kín |
Các ngưỡng này không phải là chuẩn y tế. Chúng chỉ là điểm bắt đầu để thiết bị nhắc mình hành động.
Phần cứng đề xuất
Bản MVP có thể gồm:
- ESP32-C3 hoặc ESP32-S3.
- Cảm biến CO2 SCD40 hoặc SCD41 qua I2C.
- OLED nhỏ, LED RGB hoặc LED amber.
- Nút tắt nhắc trong 30-60 phút nếu đang họp hoặc ngoài trời đang bụi.
- USB-C power nếu đặt cố định trên bàn; pin chỉ nên dùng nếu chấp nhận đo thưa hơn.
- Vỏ in 3D có khe thoáng, không đặt cảm biến sát chip ESP32.
Mình sẽ tránh các cảm biến "eCO2" chỉ suy luận từ VOC cho bài này. Chúng rẻ và tiện, nhưng nếu mục tiêu là nhắc mở cửa sổ vì phòng bí, đo CO2 thật bằng SCD40/SCD41 đáng tin cậy hơn.

Bản đầu tiên nên đo CO2 thật bằng cảm biến SCD4x, thay vì chỉ đo VOC rồi suy luận phòng bí.
Logic nhắc mở cửa
Thiết bị không nên kêu ngay khi CO2 vừa nhảy lên. Mình thích logic có độ trễ:
Nếu CO2 > 1000 ppm trong 10 phút:
Bật LED amber và gửi notification nhẹ
Nếu CO2 > 1500 ppm trong 5 phút:
Bật cảnh báo rõ hơn
Nếu CO2 giảm dưới 850 ppm:
Tắt cảnh báo
Nếu người dùng bấm snooze:
Tạm im 30 phút, nhưng vẫn ghi dữ liệu
Điểm nhỏ nhưng quan trọng là hysteresis: báo khi vượt 1000 ppm, nhưng chỉ tắt khi xuống dưới 850 ppm. Như vậy, thiết bị không nhấp nháy liên tục quanh ngưỡng.

Nhắc đúng lúc quan trọng hơn báo liên tục; thiết bị nên im lặng khi phòng vừa được thông gió.
Gửi cảnh báo như thế nào?
Nếu đã có Home Assistant, cách gọn nhất là ESPHome hoặc MQTT. Node có thể gửi payload đơn giản:
{
"co2": 1180,
"temperature": 29.1,
"humidity": 64,
"state": "ventilate"
}
Trong Home Assistant, automation có thể gửi notification kiểu: "Phòng làm việc hơi bí, mở cửa sổ 5 phút nhé." Nếu không dùng Home Assistant, thiết bị vẫn có thể hoạt động độc lập bằng LED/màn hình nhỏ.
Với mình, local feedback là bắt buộc. Nếu chỉ gửi lên app, đến lúc điện thoại ở chế độ im lặng thì thiết bị mất tác dụng. Một LED amber đủ nhẹ để nhìn thấy nhưng không gây khó chịu.
Cách nhắc này khá giống hộp IoT theo dõi độ ẩm chống mốc: thiết bị nên im lặng phần lớn thời gian, và chỉ báo khi điều kiện đo được kéo dài đủ lâu để đáng quan tâm.
Những điều dễ làm sai
Đừng đặt cảm biến sát cửa sổ. Nếu đặt ngay luồng gió ngoài trời, số đo đẹp nhưng không đại diện cho vùng mình đang ngồi.
Đừng đặt sát mặt người hoặc sau màn hình laptop. Hơi thở trực tiếp và nhiệt từ thiết bị khác có thể làm số đo dao động nhiều.
Đừng cảnh báo quá thường xuyên. Nếu thiết bị báo mỗi vài phút, người dùng sẽ tắt nó. Cần có snooze và chỉ báo khi CO2 cao kéo dài.
Đừng quên điều kiện ngoài trời. Có hôm ngoài trời bụi, mưa lớn hoặc quá nóng, mở cửa không phải là lựa chọn tốt. Khi đó notification nên là "cân nhắc thông gió" thay vì ra lệnh.
Bản đầu tiên mình sẽ làm
Mình sẽ bắt đầu bằng bản cực đơn giản:
- ESP32-C3 + SCD41.
- USB-C power, không dùng pin.
- LED amber cho cảnh báo.
- MQTT về Home Assistant.
- Đọc CO2 mỗi 30 giây.
- Nhắc khi CO2 trên 1000 ppm trong 10 phút.
- Có nút snooze 30 phút.
Sau một tuần dùng thật, mới quyết định có cần màn hình OLED hay không. Nếu chỉ đặt trên bàn làm việc, LED + notification có thể đã đủ.
Checklist thử nghiệm
- Đặt thiết bị ở độ cao gần vùng ngồi, cách cửa sổ ít nhất 1-2 m.
- Mở cửa sổ 10 phút để lấy baseline gần với không khí ngoài trời.
- So sánh phản ứng khi một người ngồi làm việc 1-2 giờ trong phòng kín.
- Kiểm tra thiết bị có tắt cảnh báo sau khi mở cửa không.
- Test snooze để chắc chắn nó không báo phiền trong lúc họp.
- Ghi lại vài ngày để chọn lại ngưỡng phù hợp với chính căn phòng.
Sau một tuần dùng thử, mình sẽ chỉ giữ bản này nếu số lần nhắc sai đủ ít để mình không muốn rút điện nó. Một thiết bị đo không khí trong phòng nên kín tiếng phần lớn thời gian; lúc nó sáng đèn, mình phải tin rằng có lý do thật.
Nguồn tham khảo
Chia sẻ
Tiếp tục khám phá
Đọc tiếp
Bài viết liên quan
Màn hình HMI gắn gần tủ lạnh cho thực đơn và đồ sắp hết hạn
Ghi chú làm một màn hình HMI LCD/TFT gắn cạnh tủ lạnh, dùng Home Assistant để xem thực đơn tuần, đồ sắp hết hạn và cập nhật nhanh danh sách cần mua.
Remote giọng nói tiếng Việt cho Home Assistant chạy nội bộ
Ghi chú làm một remote giọng nói dùng ESP32-S3, ESPHome và Home Assistant Assist local để điều khiển nhà thông minh bằng tiếng Việt mà không phải gửi giọng nói lên cloud.
Thiết bị báo nhiệt độ tủ lạnh, tủ đông khi mất điện
Ghi chú thiết kế một hộp đo nhiệt độ đặt ngoài tủ lạnh, dùng ESP32, hai đầu dò DS18B20 và Home Assistant để biết sớm khi ngăn đông ấm lên sau mất điện.