Bluetooth対応スマートサーモスタット & 照明制御システム
部品と材料
| 部品 | 数量 |
|---|---|
| Arduino Nano R3 | 1 |
| HC-05 Bluetoothモジュール | 1 |
| Maxim DS18B20 1-Wireデジタル温度センサー | 1 |
| OLED 1306 I2C バイカラー (128×64) | 1 |
| 4チャネルI2Cリレーコントローラ (ControlEverything.com) | 1 |
アプリとオンラインサービス
- Morich Serial Bluetooth Terminal (Android)
- Arduino Bluetooth Control Device (Android)
プロジェクト概要
はじめに
Bluetooth対応のシンプルかつ実用的なDIY Arduinoサーモスタットプロジェクトです。インテリジェントなサーモスタットルーチンでガスボイラーを制御し、キッチン照明と浴室換気扇をリレーでスイッチングします。ボタン操作とAndroidデバイス/PCからのBluetooth操作の両方に対応。摂氏版と華氏版の両方を用意。すべて手作りです。

Arduino Nano (以上) ベースで、Dallas DS18B20温度センサー、HC-05/06 Bluetoothアダプタ、I2C 128×64バイカラーOLEDディスプレイを使用。u8glibライブラリ対応なら他のLCD/OLEDも選択可能です。

ヒーター動作モード
- ワンタイムヒーティング (15分タイマー) - 春/秋の夕方に便利
- サーモスタットモード (優先度高) - 設定目標温度をEEPROMに保存
ボイラー保護アルゴリズム
頻繁な短時間スイッチングはガスボイラーの寿命を縮めるため、過熱と冷却の度合いを補正値で制御します。設定温度が低いほど壁が冷たく、暖められた空気からの熱をより吸収するため、補正値を大きくしています。

開放窓検出
1分間で温度が -0.2°C (-0.36°F) 以上低下した場合、窓が開いていると判断し、ヒーターを停止/起動せず、換気扇をオンにして空気を入れ替えます。環境の熱容量により温度が +0.12°C (+0.216°F) 以上上昇したら通常モードに戻し、「窓アラート」を解除します。
エラー検出
測定温度が 0°C (32°F) 未満または 40°C (104°F) 超の場合、故障や異常 (窓破損、火災等) と判断し、全デバイスを停止します。
Bluetooth通信
Android GUIアプリには8つのボタンがあり、大文字/小文字のアルファベットを送信してデバイスを制御します (例: 'A'でタイマーヒーターON、'a'でOFF、'B'/'b'で換気、'C'/'c'で照明)。

Bluetoothシリアルターミナル (AndroidアプリやPCのArduino IDEシリアルモニタ等) から直接コマンドを送信して対話操作も可能。コントローラーは毎分自動で温度レポートを送信し、デバイスON/OFF、サーモスタット作動などのイベントを即時報告します。

制御コード
2桁の数字コード 'XY' (X=デバイスコード、Y=オペコード) を受け付けます:
- 30, 31, 32: 照明 OFF / ON / 状態反転
- 40, 41, 42: 換気 OFF / ON / 状態反転
- 50, 51, 52: ワンタイムヒーター OFF / ON / 状態反転
- 10〜24: サーモスタット目標温度 (摂氏版)
- 'r': 制御デバイスの動作状態レポート要求
- 'w': 「窓アラート」を手動解除
- 'A,a'〜'H,h': GUIアプリ相当の操作
華氏版
補正変数、基準値、比率をすべて華氏に変換し、計算特性を維持。デバイスコードが変更:
- 1: 照明 (10:OFF, 11:ON, 12:反転)
- 2: 換気
- 3: ヒーター
- 50〜76: 目標温度値 (華氏)

続編
UPDATE: 内部Bluetoothリンクと音声制御を備えたフルホームオートメーションシステムへ発展!
ライブラリ & リンク
- DallasTemperature, elapsedMillis, OneWire, SoftwareSerial, olikraus/u8glib
異なるボタン抵抗を使用する場合やA0読み取り値を確認する場合は以下を参照:
コード
摂氏版と華氏版の両方を提供。コードはモジュール化され、詳細なコメント付きで初心者にも理解しやすい構成です。
回路図
ジャンパーワイヤーでのテスト用と、実際のはんだ付け用の2種類の回路図を掲載。


製造プロセス
- QR・RFID・体温検知統合アクセス制御システム(Raspberry Piベース)
- Arduinoと1Sheeldで作る万能Androidリモコン──IR制御で家電を一括操作
- スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
- Arduinoで作る全自動植物水やりシステム - 湿度センサーとRTCで最適制御
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- スマート自動靴紐シューズ:発電機能内蔵で実用性抜群
- Arduino Nanoとジョイスティックで2軸ステッピングモーターを制御:Visuinoで簡単プログラミング
- Arduino & MPU6050:SG90 & MG996Rサーボの精密制御
- 音声で家電を操作:GoogleアシスタントとBluetoothでArduino家電制御
- Arduino UnoとBluetoothでラジコンカーを遠隔操作:ステップバイステップガイド
- Arduinoで作る多チャネル・スマートバッテリー充電器:自動切替・電圧表示・近接センサー付き