
2026/07/30 3:28
ダミーエアコンをスマート化する方法(敷金減損なしで)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
元のサマリーは概ね強力でありますが、キーポイントリストから欠落していた具体的な詳細(正確なコスト、タイムライン、Home Assistant に関する詳細など)を統合することで、明瞭性を維持しつつより包括的な内容を提示することが可能であり、改善の余地があります。ただし、「要すれば原文を繰り返す」という指示に基づき、サマリーが主要メッセージを明確に捉えている場合、改良版が必要とされないという前提も考慮します。本稿では完全性と正確性を確保するため、欠落していたキー詳細を盛り込んだ改良版サマリーを提供します。
改良版サマリー
このテキストは、ニューヨーク市の賃貸アパートにおいて、Wi-Fi 対応 ESP32 マイコンコントローラーを用いてアナログエアコンの制御を自動化する DIY プロジェクトについて詳述しています。既存のアナログエアコンがネイティブなスマート統合機能を備えていないという課題に対し、コストのかからないステップモーターをシャフトカップリングおよび L ブレースを用いてエアコン本体の物理的な温度ダイヤルに直接連結する機械的アプローチを採用しています。2 つのバージョンが構築されました:バージョン 0(V0)は IKEA パーツとバインダークリップを使用し、約 $16 のコストで実現しました。バージョン 1(V1)ではより堅牢な金属製ブラケット、小型の $3.30 の基板、および段ボール製の緩衝材を採用し、総額約 $14 で構築されました。ファームウェアは Wi-Fi に接続し、ローカル Web UI をホストするとともに OPEN/CLOSE/STOP の MQTT コマンドを受け付け、AirGradient ONE 温度センサーを使用して Home Assistant と MQTT Cover エンティティとして統合します。このアプローチは、リスクの高い配線スパイシングやスマートリレーとは異なり、エアコン内部のライン電圧回路を改変することなく実現します。2025 年 4 月時点で使用期間が 1 年半を超えており、V1 の主な信頼性問題は、バインダークリップや段ボールなどの軽量部品による沈み込み(sagging)によって機械的ストールを引き起こしたことです。来夏の賃貸物件への転居を前提に、3D プリンティング製のマウントソリューションの検討も計画されています。安価な部品の使用にもかかわらず「地獄のような不具合」であるという記述がありますが、本システムは手動での調整回数を削減し、電気代の負担軽減に成功しています。
本文
レトロエアコンを ESP32 とスティーパーモーターで「大暴れ」なスマート化!DIY ホームオートメーションの体験記
TL;DR: スティーパーモーター、ESP32、そして不具合(Jank)に対する極めて高い耐性があれば、ホームオートメーションを DIY で行うのは驚くほど簡単です。
🏢 舞台設定:ニューヨークのアパートとアナログエアコン
2025 年 4 月、ニューヨーク市へ移住しました。立地も築年数も家賃も破格という満足できる場所を見つけましたが、エアコン事情だけは例外でした。
- NYC の傾向: アパートメントビルでは、音量が大きく電力消費も多い壁掛け式 PTAC ユニットが好まれます。
- 私の状況: 安価な「完全にアナログなユニット取り付けダイヤル」が選定されていました。
- 操作の不便さ:
- レトロな外観のアナログダイヤル式コントローラーのみ。
- 独立したサーモスタットやリモコンなし。
- ダイヤルを常に立ち上げて操作するのはすぐに煩わしく。
🤔 エンジニア的アプローチ:ハックによる解決
賃貸物件にありがちですが、家主へのアップグレード要請は「おーい、どうして?」と却下されました。そこで、エンジニアとして罠から抜け出すハックを考えました。
- カバーの開放: ユニットのカバーを開け、内部構造を暴露。
- 配線図の発見: ワイリング図(Wiring diagram)を見つけましたが、回路は全高電圧(ライン電圧)で動作し、低電圧デジタル信号端子はありませんでした。
- スマートリレーの検討: 室内側に追加機器を差し込みたいところですが、配線はユニット奥深くにあり、壁から引き抜く作業が必要という**「幽霊のような(spooky)」リスク**がありました。
- スマートソケットの検討: 電源切り替えで制御できないか?しかし、特殊プラグのため対応するスイッチは見つかりませんでした。
💡 結論:ダイヤルを回すロボットを作る
配線アクセスが不可能な場合の代替案として、「ダイヤルを回すための小さなロボット」を製作することにしました。
🗝️ アプローチの調整:2 つのオプション
ユニットには「モードコントロール」と「温度コントロール」の 2 つのダイヤルがあります。
- オプション 1: モードコントロールに接続
- 概要: 硬いダイヤルにトルクをかけるため、高負荷のスティーパーモーターと追加回路が必要。
- 課題: 精密な校准が必須(オン/オフ時の正確な角度)。
- オプション 2: 温度コントロールに接続(採用)
- 概要: 滑らかなダイヤルで、安価・低トルクモーターで OK。
- 動作原理: モードは「Lo-Cool」固定し、温度ダイヤルだけを回転させてオン/オフを切り替える。
- 特徴: 少し不正確(放り投げ)でも構わないため、コストと工数が最小化。
選定理由: 簡単であればいい!オプション 2 を採用しました。
🔨 V0 プロトタイプ製作:ほぼ予算ゼロでの構築
V0(初代)では既存の廃材を活用し、最小限のコストでプロトタイピングを行いました。
使用部品と費用総額
| 部品 | 費用 | 入手元 |
|---|---|---|
| ESP32 Development ボード | $6 | Amazon |
| シャフトカプラー | $6.69 | Amazon |
| スティーパーモーター + コントローラー | $2.66 | Amazon (8 個パック) |
| L ブラケット(金属製) | 無料 | IKEA 残り物 (LAIVA) |
| ネジ | 無料 | モニター VESA マウント残り物 |
| USB ケーブル + チャージャー | 無料 | 古びた引き出しから探掘 |
合計費用: 約 $16
💪 創意工夫した固定方法
エアコンシャーシへのネジ穴は保証問題があるため不能使用でした。以下で代用しました。
- 固定部材: IKEA の金属製 L ブラケット + モニターネジ。
- 構造: ブラケットをモーターにボルト固定し、背面の壁と衝突させてトルクを伝え、シャフトカプラー経由でダイヤルを回転させる。
- 結果: 完全に意図しない天才的な設計(大暴れ)が完成!
※補足: シャフトカプラーの適合に数回失敗、Arduino Leonardo を使った検証実験など、過程には「不具合」が多々ありました。
💻 ファームウェア開発:LLM に任せて素早く
ソフトウェアも必要ですが、ゼロから書くよりも LLM を活用しました。
- 技術スタック: Wi-Fi 接続、ローカル Web サーバー、HTTP/MQTT コマンド待ち。
- 実装方法: Claude と Geminiを組み合わせ、コードを一発で生成させた。
- Web UI の機能: Wi-Fi クレデンシャル設定、パラメータ調整が可能。
🏠 Home Assistant への統合:本格的な自動化
単体での Web UI でも面白かったですが、真に有用にするにはHome Assistantとの統合が必要です。ローカルブレインとして動作し、スマートデバイスを管理します。
ステップ 1: MQTT を使ったカバー制御
Home Assistant の MQTT Discovery サポートを活用し、カスタムスクリプトなしでデバイス登録を行いました。
- プロトコル: MQTT(軽量な pub/sub メッセージング)。
- 統合タイプ:
platform +mqtt
integration(ブラインドやカーテンと同様の動作)。cover - 機能: 起動時に自動 Discovery JSON を配信し、Home Assistant がエンティティを自動的に設定。
使用されるディスカバリー JSON ペイロード
{ "name": "AC Stepper Cover", "unique_id": "ac_stepper_esp32_01", "object_id": "ac_stepper_cover", "command_topic": "homeassistant/cover/ac_stepper_cover/set", "state_topic": "homeassistant/cover/ac_stepper_cover/state", "position_topic": "homeassistant/cover/ac_stepper_cover/position", "set_position_topic": "homeassistant/cover/ac_stepper_cover/position/set", "payload_open": "OPEN", "payload_close": "CLOSE", "payload_stop": "STOP", "device_class": "damper", "device": { "identifiers": "ac_stepper_esp32", "name": "AC Control Stepper" } }
ESP32 側のコマンドハンドリング(C++)
MQTT カallback でメッセージを解析し、モーターを駆動します。
void mqttCallback(char* topic, byte* payload, unsigned int length) { String message = extractMessageFromPayload(payload, length); if (String(topic) == COMMAND_TOPIC) { handleCoverCommand(message); } } void handleCoverCommand(const String& command) { if (command == "OPEN") { motorState.isOpening = true; moveMotor(STEPS_PER_REVOLUTION, motorState.currentSpeed); // 1 回転で「最も寒い」へ } else if (command == "CLOSE") { motorState.isOpening = false; moveMotor(-STEPS_PER_REVOLUTION, motorState.currentSpeed); // 逆回転でオフへ } else if (command == "STOP") { stopMotor(); } }
ステップ 2: サーモスタットとの連携
いつオン/オフするかを教えるため、Home Assistant の
generic_thermostat を使用。
- ヒステリシスロジック: Home Assistant が自動処理。
- センサー: AirGradient ONE(同じ部屋の空気品質モニター)。
Configuration.yaml 設定例
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
これで、完全自動化されたスマートサーモスタットが完成しました。
🛌 V1 アップグレード:本格的な生産体制へ
リビングルームの成功後、寝室の同じエアコンも自動化したいと思い、V1 を製作しました。
- 動機: IKEA 部品を使い果たしたため。より堅牢なマウントが必要。
- 新戦略: 問題解決を急ぐため、3D プリンター購入ではなく**ソフトウェアエンジニアリング精神(KISS)**を維持しつつ、Temu/Amazon で新規購入。
V1 の変更点と費用
| 部品 | 費用 | 入手元 |
|---|---|---|
| ESP32 Development ボード(小型) | $3.30 | Temu |
| シャフトカプラー | $2.42 | Temu |
| スティーパーモーター + コントローラー | $2.66 | Amazon (8 個パック) |
| L ブラケット(調整可能) | $0.50 | Amazon |
| ナットとボルト | ほぼ無視 | Amazon |
| USB ケーブル + チャージャー | $5 | Temu |
| バインダークリップ | ほぼ無視 | The Office 🤫 |
合計費用: 約 $14
- 構造改善: 小型 ESP32 ボード採用、スロット付き金属 L ブラケット使用。
- 固定方法: 大型バインダークリップと工業用段ボールを併用し、ステンレスシートに垂直に取り付け。
- 外観: USB ケーブルの経路設計により、外部からはスマートデバイスとは分かりません!
📝 リアルワールドからのフィードバック
プロジェクトは昨夏に構築済みですが、1.5 シーズン後の実使用感は以下の通りです。
- 機能性: 約 80% は動作しており、素晴らしい結果と言えます。
- 弱点: バインダークリップと段ボール製マウントは長期的な耐久性不足。
- モーターが垂れ下がり、摩擦増大によりメカニズムが停止することがある。
- 再設置が必要になる場合がある(煩わしさあり)。
- コスト対効果: しかし、手動操作よりも遥かに便利で、電気代節約にも寄与しています。
🤔 総括:不具合だらけの「大暴れ」こそが解答?
これが最もエレガントなメカトロニクス製品でしょうか?全くありません。
- バインダークリップや段ボールで留められた**「大暴れ(Jank)」**。
- スローブコードと安価な中国製部品の組み合わせ。
しかし!
- 誰も気にしません。
- ハイパーニッチな問題を Well Enough™️ に解決しました。
- $16(または $20 程度)で済ませ、電気代を節約できました。
不具合に怯えず、予算ゼロでユニークなハードウェアを製作する旅は、非常に面白いものです!