Mệt Chết - Quạt làm mát DIY BedJet và giá gắn khung giường
Giải pháp DIY chi phí thấp để thổi khí làm mát dưới mền: dùng quạt Noctua, ống dẹt BedJet và bộ mount gắn chắc lên khung giường. Có hướng dẫn controller ESP32 (ESPHome) điều khiển PWM và gợi ý nguồn USB-C PD/PPS.
Mô tả
Giới thiệu
"Mệt chết" trong tiếng Việt nghĩa là "mệt muốn chết." Gần đây mình được chẩn đoán bị sleep apnea (ngưng thở khi ngủ), và dù mình có máy CPAP và cũng đã phẫu thuật để mở đường thở, mình lại thuộc kiểu ngủ dễ bị nóng, thành ra phát sinh một bài toán khác.
BedJet không hẳn là quá mắc so với các hệ thống tương tự, nhưng mình cứ nghĩ: "thổi không khí dưới cái mền thì tốn bao nhiêu đâu?" Mình cũng hay lấy câu nói này làm kim chỉ nam:
We do these things not because they are easy, but because we thought they were going to be easy.
Khi tính tới kích thước nệm, box spring, khung giường, diện tích phòng, và đủ thứ liên quan tới một cái giường, bạn sẽ nhanh chóng hiểu vì sao thiết kế ra một sản phẩm dùng được cho mọi người lại tốn công đến vậy.
Nếu bạn có ngân sách và set up giường phù hợp, thì BedJet thật ra cũng không quá đắt khi xét tổng thể—nhất là nếu đổi lại bạn ngủ ngon hơn.
Quạt

Chi phí: $55
Để tối ưu đồng thời lưu lượng gió, áp suất, độ ồn, kích thước và giá tiền là một bài toán khó. Có lý do vì sao có hẳn cả một mảng nghiên cứu chuyên về chuyện “đẩy không khí.” Cơ sở dữ liệu Fan Performance Database của Cybenetics Labs có giúp ích khá nhiều.
Cuối cùng mình mua cả Noctua NF-A14 industrialPPC-3000 PWM và NF-A14x25 G2 PWM. Dòng này nổi tiếng vì êm và hiệu suất cao, nhưng mình vẫn đang cân qua cân lại xem cái nào hợp mình hơn.
Hiện tại, chạy iPPC-3000 tầm 25% đến 35% thì thấy ổn.
Ống dẫn

Chi phí: $69
Phụ kiện ống dẹt chính hãng flat hose accessory kèm free shipping giá vậy thì khá khó kiếm lựa chọn “ngon” hơn.
Mình có thử vài loại ống gió mềm đường kính 3", 4" và 6". Nhưng chúng cồng kềnh, ồn và rất khó xoay xở.
Điều thú vị là ống của máy CPAP lại khá “chuẩn bài” để bơm khí áp suất cao vào môi trường có lực cản. Ống máy hút bụi cũng có thể dùng, nhưng chênh lệch đường kính so với quạt sẽ không lý tưởng.
Ngoài ra còn cần một lớp bọc vải cho ống để giống loại của BedJet. Có thể chủ yếu để cách nhiệt, nhưng đi vòng quanh giường mà quẹt trúng ống kim loại thì cũng khó chịu.
Một điểm chưa tối ưu là độ mềm/dẻo của ống tạo thêm lực cản. Nếu ai đó thiết kế hệ ống (ducting) in theo yêu cầu thì sẽ có airflow và áp suất tốt hơn. Mình cũng bắt đầu theo hướng đó, nhưng vì còn đang phát triển thử nghiệm nên mình ưu tiên sự linh hoạt.
Giá đỡ (Mount)

Chi phí: $41
Cái adjustable mount bracket chính hãng không ngon lắm, và thật ra cũng dễ reverse engineer hoặc thiết kế né nó, như . Nhưng vì mình đã lỡ mua rồi, nên mình làm thêm một adapter để gắn nó chắc hơn lên khung giường.
Bộ điều khiển (Controller)

Chi phí: $36
Mình set up một vi điều khiển ESP32 Adafruit Sparkle Motion chạy ESPHome.
-
Hỗ trợ nguồn USB-C PD hoặc DC barrel jack, tối đa 5 A
-
Tích hợp logic-level shifter và USB-to-serial converter
-
Screw terminal blocks
-
Vỏ in 3D
Nhìn thì có vẻ hơi “dư cấu hình” cho việc mình làm, nhưng mình thấy đây là cách tiện nhất để lấy PWM từ microcontroller nếu so với Arduino hay Raspberry Pi.
ESPHome tích hợp với Home Assistant và Apple HomeKit Bridge, nên mình có thể chỉnh tốc độ quạt ngay trên đồng hồ sau khi đã chui vào giường.
Để nối đầu Noctua 4-pin qua Sparkle Motion, mình tận dụng dây nối dài NA-SEC1 theo sơ đồ wiring bên dưới. Mình cũng có sẵn cái này từ lần mua quạt khác; con iPPC không có phụ kiện trong hộp.

Đây là sơ đồ Pretty Pins cho Sparkle Motion:

Vậy nên, wiring Noctua vào terminal block của Sparkle Motion theo bảng sau:
Noctua
Sparkle Motion
Blue
GPIO 19, 22, hoặc 21
Green
GPIO 19, 22, hoặc 21
Yellow
Black
Mình không dùng tín hiệu tachometer. Nhưng nếu có dùng thì mình sẽ tham khảo trang 3 của PWM white paper của Noctua. Với dòng tối đa 2mA và PPSTrigger (xem phần kế tiếp) set 21 VDC, mình sẽ dùng điện trở 10.5 kΩ trở lên.
GPIO nào dùng để nối PWM thì nhớ đảm bảo YAML config cũng khai đúng số đó. Trường hợp của mình là GPIO21.
esphome:
name: fan
friendly_name: Fan
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
# Home Assistant API
api:
encryption:
key: "REMOVED"
ota:
- platform: esphome
password: "REMOVED"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Fan Fallback Hotspot"
password: "REMOVED"
captive_portal:
# PWM Output Configuration
output:
- platform: ledc
id: fan_pwm
pin: GPIO21
frequency: 25000 Hz
# Fan Speed Control
fan:
- platform: speed
name: "Fan Speed"
id: fan_speed
output: fan_pwm
speed_count: 100
Nếu mình có dùng tach, thì YAML config sẽ cần Pulse Counter Sensor. Lưu ý là quạt PWM PC thường có hai xung mỗi vòng quay, bao gồm cả Noctua.
Nguồn (Power Supply)
Không khó cũng không mắc để kiếm một cục nguồn 12 VDC hoặc 24 VDC với dòng ra 1 A. Phần lớn sẽ dùng đầu DC barrel jack 2.1 mm x 5.5 mm để cắm vào Adafruit Sparkle Motion.

Vì mình có sẵn một cái, nên mình dùng CentyLab PPSTrigger để giảm kích thước. Nó dùng tính năng USB-C PD Programmable Power Supply (PPS) để set điện áp tuỳ chỉnh bằng trimpot.
Mình đã có sẵn sạc USB-C có PPS là Anker 511 Nano 3, nhưng bạn có thể xem trang này trước khi mua cái mới. Có người test rất nhiều loại sạc và pin dự phòng để giúp khỏi “lạc” trong mớ giao thức USB-C.
Hơi rối là Sparkle Motion cũng hỗ trợ USB-C PD cho nguồn vào, nhưng công tắc chọn điện áp chỉ có 3 nấc. Vì mỗi sạc USB-C PD lại hỗ trợ một tập điện áp/dòng khác nhau, nên chủ yếu là thử tới thử lui. Con Anker 511 hỗ trợ 4 mức (5V, 9V, 15V và 20V), nên khi cắm thẳng vào Sparkle Motion mình “chỉ” lấy được 15 VDC.
Mình kéo một sợi cáp USB-C đực 2 m (đực-đực) xuống cuối giường, luồn giữa nệm và các thanh slats của khung giường.
Bàn thêm về thiết kế
Dù cuối cùng cũng không đi tới đâu, mình có tìm hiểu vài hướng khác nhau để “dễ dàng” tự làm lại một hệ kiểu BedJet, nên mình nghĩ chia sẻ ghi chú sẽ có ích.
Chỉ riêng việc tìm một motor tương đương thôi cũng có thể tốn hơn mua một BedJet cũ/refurbished.
Quạt tự làm (Custom Fan)
Một cái quạt về cơ bản “chỉ” là bộ cánh gắn vào motor, kèm driver, controller, nguồn, và vỏ cơ khí.
Cánh quạt (Blades)
Mẫu squirrel cage này có vẻ là điểm khởi đầu rất ổn. Bạn có thể mua cage thay thế chỉ từ $20.
Motor
Từ video teardown này, có thể thấy thông tin sau về custom motor dùng trong BedJet 3.

-
Part number: 77ZWT10-5760-001L
-
Vmax: 24 VDC
-
Imax: 2.3 A
-
Power: 55 Wmax
-
Speed: 2250 RPM
-
NEMA Class: E
Wiring:

-
Red: Vu
-
Black: Vss
-
Blue: Speed
-
White: Frequency Generator
Mình thử tìm online motor tương tự mà không ra. Có vẻ gần như bất khả thi để gom đủ các đặc tính sau trong một gói.
-
Single phase brushless DC motor (không phải stepper, servo, planetary, v.v.)
-
24 VDC
-
Tích hợp controller/driver có PWM
-
Tầm 2000 RPM đến 3000 RPM
-
Giá thấp hơn một con BedJet
Motor/quạt blower cho hệ sưởi xe SUV/RV có thể là lựa chọn hợp. Mua được từ nhiều nguồn tại chỗ và online, chạy 12 VDC, thiết kế bền, ví dụ Toyota 4Runner 87103-60400 (Amazon.ca)(RockAuto). Tuy nhiên thường các motor này set tốc độ cố định bằng điện trở qua núm vặn.
Dù BedJet đã “deal” kiểu gì để làm custom motor số lượng lớn, rõ ràng là ngon hơn nhiều so với đồ bán sẵn ngoài thị trường.
Driver
Driver cho BLDC motor có vô số cấu hình trên Amazon, AliExpress, v.v.
Controller
Tương tự driver, có rất nhiều bộ điều khiển quạt PWM 12VDC cho quạt PC desktop.
BedJet có remote và app đi kèm, cái này khó mà cạnh tranh. Nhưng vẫn có các kiểu remote/app dùng ESP32 cho smart home như Home Assistant, HomeKit. Thú vị là WLED cũng có thể chạy PWM fan, nhưng để chỉnh tốc độ thì bạn sẽ kéo thanh trượt màu của một LED từ trắng về đen.
Vỏ cơ khí (Mechanical Housing)

Vỏ housing cho blower fan thoạt nhìn có vẻ không khó thiết kế, nhưng để làm nó hiệu quả và êm thì chắc khó, nhất là khi không có mẫu thật trước mặt để đo hay scan 2D/3D.
Kết luận
Tới đây thì rõ ràng là rất khó để match phần cứng của BedJet với giá rẻ hơn. May là những gì mình làm ở các phần trước vẫn chạy ngon với nhu cầu của mình, dù tính năng không “đầy đủ” như BedJet.
Giấy phép
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!