スマートシャワーレギュレーター – ソレノイドバルブで精密温度制御
部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino 101 | 1 | |
| 常閉ソレノイドバルブ | 1 | シャワー水温に耐えられるものを選択。金属製なら無鉛を確認。配管サイズを事前測定必須 |
| ソレノイドバルブ用継手 | 1 | 同上(耐熱・無鉛・サイズ確認) |
| ブレッドボード (汎用) | 1 | |
| Adafruit RGBバックライトLCD 16x2 | 1 | |
| ブザー | 1 | |
| ジャンパーワイヤー (汎用) | 1 | |
| パワーMOSFET Nチャネル | 1 | バルブ駆動用 |
| ロータリーポテンショメーター (汎用) | 1 | |
| フリップスイッチ | 1 | |
| モバイルバッテリー | 1 | 電源用 |
| 抵抗 221Ω (220Ωでも可) | 2 | |
| 1N4007 ダイオード (高圧/大電流定格) | 1 | フライバックダイオード用 |
| プラスチック容器 | 1 | ケース用 |
| ベルクロ壁面取り付けストラップ | 2 | |
| 安価なUSBケーブル | 2 | 電源配線用 |
必要な工具と機器
- ホットグルーガン
- はんだごて
アプリとオンラインサービス
- Arduino IDE
プロジェクト概要
なぜ作ったのか?
意外かもしれませんが、シャワーは家庭で最も水とエネルギーを浪費する設備の一つです。
Home Water Worksによると、平均シャワー流量は分あたり2.1ガロン(7.94L)、平均シャワー時間8.2分で、1回あたり17.2ガロン(65.1L)、平均的なアメリカ家庭(3人)では1日51.6ガロン(195.3L)消費。これは家庭内第3位の水使用量です。
エネルギー面ではさらに驚きです。Skidmore Collegeによると、水1ガロン(3.78L)を加熱するのに平均440 BTU(0.13 kWh)必要。典型的な8.2分シャワーで約2.2 kWh、家庭では1日6.6 kWh消費。米国エネルギー省によると、これは家庭総電力使用量の17%を占めます。
米国EPAの推計(1 kWhあたり0.000703メトリックトン=1.55ポンド=0.7kgのCO2)では、1回のシャワーで3.4ポンド(1.54kg)のCO2、家庭で10.2ポンド排出されます。
しかし、推奨シャワー時間はわずか5分(Green Lifestyle Changes)。これで水使用量を6.7ガロン(25.4L)削減、電力を871Wh削減(CFL電球174個を1時間点灯可能!)、CO2を1.35ポンド(0.6kg)削減できます。このShower Regulator(Intel Earth Day Challenge出品作)は、シャワー時間を5分またはユーザー設定時間に制限します。
1年間(365日)で1人あたり2,455.5ガロン(9,295.1L)の水節約(約13年分の飲料水)、317.9kWhまたは492.7ポンド(223.5kg)のCO2削減、家庭全体では7,366.5ガロン(27,885.2L)の水、953.7kWhの電力、1,478.2ポンド(670.5kg)のCO2削減になります。
動作原理
- デバイス電源オフ時、ソレノイドバルブは閉状態(水流なし)
- 電源オンでバルブ開放、ユーザーが水を出せる
- 20秒間(調整可)の暖機運転後、1回ビープ音
- シャワータイマー開始(デフォルト5分、調整可)、2回ビープ音
- 終了1分前と2分前に各1回ビープ音で警告
- 時間終了でバルブ自動閉鎖、水流停止。連続ビープ音で通知。ユーザーは水とレギュレーターをオフにする
製作手順
注意:バルブサイズが適切で、シャワー水温に耐えられることを確認。継手とバルブに鉛など有害物質がないことも確認してください。
- USBケーブル2本を切り、スイッチとステップアップ(ブースト)コンバーターにはんだ付け(出力電圧を6-12Vに調整)。下記写真参照。
- 「回路図」セクションの回路図に従って回路を組み立て。
- 「コード」セクションのコードをArduino IDEで書き込み。
- プラスチック容器にスイッチ用とソレノイドバルブ配線用の穴を開ける。
- バルブ配線を穴に通し、防水ホットグルーで密封。スイッチを穴に固定。LCD画面を容器の蓋に接着。
- 回路を容器に入れ、蓋を閉める。スイッチとLCDがブレッドボードに正しく接続されているか確認。
- バルブと継手を水栓とシャワーヘッドの間に取り付け。
- ベルクロストラップを容器背面に貼り、シャワーヘッド近くの壁に固定。
動画
(動画埋め込みプレースホルダー)
コード
メインスケッチ (C/C++)
// ユーザー設定:-----------------------
const float showerTime = 5; // 分単位
const int warmupTime = 20; // 秒単位
//-------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int stat = 0; // ステータス管理
void setup() {
lcd.begin(16, 2);
pinMode(13, OUTPUT); // ソレノイドバルブ用
pinMode(10, OUTPUT); // ピエゾブザー用
}
void loop() {
if (stat == 0) {
// 暖機フェーズ
digitalWrite(13, HIGH); // バルブ開放
tone(10, 2000, 1000); // 暖機開始ビープ
for (int i = warmupTime; i > 0; i--) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Water Warmup:");
lcd.setCursor(0, 1);
lcd.print(String(i) + " seconds");
delay(1000);
}
stat++;
}
if (stat == 1) {
// シャワータイマーフェーズ
tone(10, 2000, 1000); // 暖機終了ビープ
delay(1500);
tone(10, 2000, 1000); // 2回目のビープ
for (int i = showerTime * 60; i > 0; i--) {
if (i == 120) { // 残り2分
tone(10, 2000, 1000);
} else if (i == 60) { // 残り1分
tone(10, 2000, 1000);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Shower:");
lcd.setCursor(0, 1);
lcd.print(String(i) + " seconds");
delay(1000);
}
stat++;
}
if (stat == 2) {
// シャワー終了
digitalWrite(13, LOW); // バルブ閉鎖
tone(10, 2000); // 連続ビープ
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Shower Over");
lcd.setCursor(0, 1);
lcd.print("Have a Good Day!");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Turn me off");
lcd.setCursor(0, 1);
lcd.print("Turn water off");
delay(5000);
}
}
回路図
diagram_F3mdu8tMGy.fzz (Fritzingファイル)
製造プロセス
- メンテナンス起因のボトルネック防止:製造業者向け実践ガイド
- プラントシャットダウン(計画停止)を安全に完遂するための必須プロトコル
- 重機ブレーキ点検の要点:安全な停止とOSHA準拠を確保する
- 重機ブレーキ点検:安全な停止とOSHA準拠の確保
- Raspberry Pi と Arduino を連携させてロボットを自作:ステップバイステップガイド
- SolidWorksでプログレッシブカットアウェイアニメーションを作成: ステップバイステップチュートリアル
- 12Vツェナーダイオードによる電圧レギュレータ実験
- 勝利するプロトタイプ構築:ラピッド製品開発ステップバイステップガイド
- エアコンプレッサーをスムーズに稼働させ、ダウンタイムを回避する方法
- 5GとIoTを活用し、英国製造業をスマートな未来へ導く
- ガラス繊維製造の完全ガイド