將笨拙的空調單元變成智慧空調,且不失去我的保證金
TL;DR – 這個破解可行且成本約 ~$15
使用 ESP32 控制的步進馬達來旋轉空調溫度旋鈕的 DIY 改裝,讓租客能透過 Home Assistant 自動化純模擬的 PTAC 單元,且無需在機器上鑽孔或違反租約。
為何步進馬達改裝是最簡單的解決方案
Conclusion: 機械驅動現有旋鈕可避免高壓配線、智慧插座不相容,以及房東的反對。
- PTAC 的控制電路使用市電且沒有低電壓控制腳位,直接電氣改裝既不安全,也可能使租約失效。
- 智慧插座無法支援該單元的 NEMA 5‑20P 插頭,且在壓縮機運轉時斷電重啟可能會損壞設備。
- 將步進馬達安裝在溫度旋鈕上(原文中的選項 2)只需要低電壓供電、少量廉價零件,且不需對機殼做永久性改動。
"我越是玩弄 ESP32 和家庭自動化,就越發現對軟體工程師而言看起來像是糟糕的做法,其實正是這些東西的運作方式。" – timvdalen (HN comment)
零件清單與成本細目 (V0 & V1)
Conclusion: 整個系統可使用現成零件組裝,成本低於 $15。
| 零件 | V0 成本 | V1 成本 | 來源 |
|---|---|---|---|
| ESP32 開發板 | $6.00 | $3.30 (smaller board) | Amazon / Temu |
| 軸耦合器 | $6.69 | $2.42 | Amazon / Temu |
| 步進馬達 + 驅動器 | $2.66 (3‑pack) | $2.66 | Amazon |
| L 型支架 | free (reused IKEA) | $0.50 | Amazon |
| 螺絲 / 螺母 | free (spare) | negligible | Amazon |
| USB 線與充電器 | free (junk drawer) | $5.00 | Temu |
| 活頁夾與紙板墊 | free | negligible | Office supplies |
| Total: V0 約 ~$16,V1 約 ~$14。 |
機械設計 – 無需鑽孔的安裝
Conclusion: 使用 L 型支架、活頁夾與紙板墊可打造可拆卸的安裝方式,符合租約限制。
- 步進馬達以螺栓固定於 L 型支架;支架邊緣壓在空調控制腔壁上,將馬達扭力轉換為旋鈕旋轉。
- 活頁夾將組件固定在機內金屬板上,紙板墊則防止金屬與金屬之間的磨損。
- 這個「臨時」解決方案對租屋而言已足夠,因為可在不留下痕跡的情況下拆除。
"如果你只需要將電位器換成電子控制,vactrol 或數位電位器也能使用,但會較為侵入。" – kazinator (HN comment)
韌體 – 最小化 MQTT 橋接
Conclusion: 只需數十行程式碼即可讓 ESP32 將馬達以 MQTT cover 方式公開,從而支援 Home Assistant 控制。
// Pseudocode excerpt
void mqttCallback(char* topic, byte* payload, unsigned int len) {
String msg = String((char*)payload).substring(0, len);
if (String(topic) == COMMAND_TOPIC) handleCoverCommand(msg);
}
void handleCoverCommand(const String& cmd) {
if (cmd == "OPEN") moveMotor(stepsPerRev, speed);
else if (cmd == "CLOSE") moveMotor(-stepsPerRev, speed);
else if (cmd == "STOP") stopMotor();
}
裝置會發布 MQTT discovery 負載,使 Home Assistant 自動建立 cover 實體。cover 的 OPEN/CLOSE 指令會使旋鈕正向或反向旋轉一整圈,分別對應「最冷」與「關閉」位置。
"https://esphome.io/ 會讓此軟體部分只需 10 分鐘即可完成" – vayun (HN comment)
Home Assistant 整合 – 通用恆溫器
Conclusion: 將 MQTT cover 映射至 generic_thermostat 實體即可提供完整恆溫器邏輯,無需自訂程式碼。
climate:
- platform: generic_thermostat
name: Living Room AC
heater: cover.ac_stepper_cover
target_sensor: sensor.airgradient_temperature
min_temp: 65
max_temp: 80
ac_mode: true
cold_tolerance: 0.5
hot_tolerance: 0.5
恆溫器會監測房間溫度感測器(例如 AirGradient ONE),並向 cover 發送 OPEN/CLOSE 指令,當溫度超過設定值時自動開啟空調,低於設定值時關閉。
實際表現與限制
Conclusion: 系統可運作,但會出現機械下垂與偶發馬達卡住的情況,與手動調整旋鈕相比仍可接受。
- 隨著時間推移,活頁夾安裝可能鬆動,增加摩擦,導致馬達卡住,需手動重新定位。
- 儘管有下垂,使用者仍報告手動操作減少,且電費略有節省。
- 未來可改進為 3D 列印支架或更堅固的固定方式。
"如果只需要按鈕元件,ESPHome 可以完全取代自訂韌體。" – timvdalen (HN comment)
社群觀點
- 標準化介面: 多位評論者(例如 EvanAnderson)希望製造商提供模擬/數位控制腳位,以避免此類改裝。
- 替代方法: 有些使用者透過紅外線控制 PTAC(見 vrighter)或將 ESPHome 直接接到恆溫器端子(ethnt),但這些方法通常需要較侵入的布線。
- 可靠性疑慮: scottlamb 指出若 Linux 主機失效,MQTT/HA 設定可能脆弱,建議使用 ESPHome 內建的恆溫器元件以獲得更自足的解決方案。
最後的要點
Conclusion: 以低預算、非破壞性的機械改裝(使用 ESP32 與步進馬達)為租客提供實用的智慧空調解決方案,說明 DIY 家庭自動化如何彌補傳統模擬設備的不足。
- 成本:總零件費用 <$15。
- 安裝:無需鑽孔,可拆卸安裝。
- 控制:透過 MQTT 完全整合至 Home Assistant。
- 權衡:機械磨損與偶發馬達卡住,但較手動旋轉旋鈕不那麼不便。
本專案示範了「臨時」硬體結合現代 IoT 軟體,能在不違反租約或超出預算的情況下解決真實的租屋限制。
摘要:一位租客使用 ESP32、步進馬達與廉價硬體,將模擬 PTAC 單元改造成可由 Home Assistant 控制的智慧空調,成本低於 $15,展示了低成本、非侵入式的改裝方式。
將笨拙的空調單元變成智慧空調,且不失去我的保證金