【太陽熱温水器】 arduinoでお風呂のお湯はりをお知らせ

スポンサーリンク

太陽熱温水器のお湯をお風呂に入れてお湯が設定量に達したらメロディでお風呂のお湯はりをお知らせするようにしました。

arduinoとパッシブブザーで簡単に出来ます。

スポンサーリンク

お風呂のお湯はりをお知らせ

お風呂のお湯はりをメロディでお知らせするのに必要なものです。

『 【太陽熱温水器】 arduinoでお風呂のお湯はりをお知らせ 』 ..お風呂のお湯はりをメロディでお知らせするのに必要なものです。..

arduino

arduino 本体です。

安価な互換版で十分です。

パッシブブザー

カズはレゴのスターターセットに入っていたパッシブブザーを利用しました。

arduinoを始めるにはこのスターターセットが便利です。

[amazon_link asins=’,B06XF2HZGT,B016MCVDLY,B07YV8DB38,B07M8RDKR1′ template=’ProductCarousel’ tag=’toraberuko-22′ marketplace=’JP’ link_id=’1e988895-f60c-490b-a739-ae99efcdd40a’]

スポンサーリンク

tone() 関数

パッシブブザーで音を出すにはtone関数を利用します。

tone(ピン番号,周波数,鳴らす時間)

ピン番号はPWM出力が出来るピンを割り当てます。

Arduino Uno ではデジタル出力の 3, 5, 6, 9, 10, 11 の 6 個のピンが利用出来ます。

noTone()

音を停止するにはnoTone()関数を利用します。

()カッコには利用するピン番号を指定します。

noTone(3)というような使い方です。

スポンサーリンク

お知らせメロディ いい湯だな ♪

ドリフターズと言えば「8時だよ!全員集合!」でお馴染みでした。

カズはその年代ですが、若い方には判らないかも…(^^;

この番組で使われたテーマソングが「いい湯だな」ですが、このメロディを鳴らすことにします。

いきなりのスケッチは…

int tonePin = 11;
void setup() {
}
void loop() {
tone(tonePin, 794 ,700); 
delay(750);
tone(tonePin, 659 ,200);  
delay(250);
tone(tonePin, 794 ,500);  
delay(550);
tone(tonePin, 794 ,500);  
delay(550);
tone(tonePin, 880 ,700);  
delay(900);
tone(tonePin, 659 ,180);  
delay(230);
tone(tonePin, 794 ,180);  
delay(230);
tone(tonePin, 880 ,180);  
delay(1000);
 
tone(tonePin, 794 ,700);  
delay(750);
tone(tonePin, 659 ,200);  
delay(250);
tone(tonePin, 794 ,500);  
delay(550);
tone(tonePin, 659 ,500);  
delay(550);
tone(tonePin, 587 ,700);  
delay(900);
  
tone(tonePin, 397 ,180);  
delay(230);
tone(tonePin, 494 ,180);  
delay(230);
tone(tonePin, 587 ,180);  
delay(1000);
tone(tonePin, 198.5 ,500); 
delay(550);
tone(tonePin, 220,500); 
delay(550);
tone(tonePin, 261.5 ,500);  
delay(550);
tone(tonePin, 329.5 ,700);  
delay(750); 
tone(tonePin, 397 ,300);  
delay(350); 
tone(tonePin, 329.5 ,800);  
delay(1100); 
tone(tonePin, 880 ,200);  
delay(250); 
tone(tonePin, 794 ,200);  
delay(250); 
tone(tonePin, 659 ,200);  
delay(250);  
tone(tonePin, 587 ,200);  
delay(250); 
tone(tonePin, 523 ,300);  
delay(500);  
tone(tonePin, 440 ,300);  
delay(500); 
tone(tonePin, 523 ,300);  
 delay(300);   
}
スポンサーリンク

繰り返さない

このスケッチでは延々と繰り返してしまいます。そこで、一回だけ鳴らすようにしてみます。

int tonePin = 11;
int stop = 0;
void setup() {
}
void loop() {
if(stop==0){
iiyudana();
noTone(11);
stop=1;
 }
}
void iiyudana(){
tone(tonePin, 794 ,700); 
delay(750);
tone(tonePin, 659 ,200);  
delay(250);
tone(tonePin, 794 ,500);  
delay(550);
tone(tonePin, 794 ,500);  
delay(550);
tone(tonePin, 880 ,700);  
delay(900);
tone(tonePin, 659 ,180);  
delay(230);
tone(tonePin, 794 ,180);  
delay(230);
tone(tonePin, 880 ,180);  
delay(1000);
 
tone(tonePin, 794 ,700);  
delay(750);
tone(tonePin, 659 ,200);  
delay(250);
tone(tonePin, 794 ,500);  
delay(550);
tone(tonePin, 659 ,500);  
delay(550);
tone(tonePin, 587 ,700);  
delay(900);
  
tone(tonePin, 397 ,180);  
delay(230);
tone(tonePin, 494 ,180);  
delay(230);
tone(tonePin, 587 ,180);  
delay(1000);
tone(tonePin, 198.5 ,500); 
delay(550);
tone(tonePin, 220,500); 
delay(550);
tone(tonePin, 261.5 ,500);  
delay(550);
tone(tonePin, 329.5 ,700);  
delay(750); 
tone(tonePin, 397 ,300);  
delay(350); 
tone(tonePin, 329.5 ,800);  
delay(1100); 
tone(tonePin, 880 ,200);  
delay(250); 
tone(tonePin, 794 ,200);  
delay(250); 
tone(tonePin, 659 ,200);  
delay(250);  
tone(tonePin, 587 ,200);  
delay(250); 
tone(tonePin, 523 ,300);  
delay(500);  
tone(tonePin, 440 ,300);  
delay(500); 
tone(tonePin, 523 ,300);  
delay(300);   
}

これでメロディを一度だけ鳴らすことが出来ました。

arduinoではお風呂の温度設定をすれば水とお湯の量を計算し自動でお湯張りをするようにしています。

太陽熱温水器ですから温度もまちまちで、夏場の最高温度は70度を超えますし冬場でも50度の温度になるときもあります。

また、水温も夏と冬では異なりますので温水器の貯湯タンクの温度と水温を計測してarduinoに組み込んでいます。

決定湯量と決定水量を計算するarduinoのスケッチです。

for( suiryou=0; suiryou < 200 ; suiryou++){  
               if((((kettei_tank_ondo*(180-suiryou))+(kettei_suion*suiryou))/180) == kettei_ondo + rosu){
 
               kettei_suiryou=suiryou; 
               kettei_yuryou=180-suiryou;                                               
               break;
          }
      }

決定タンク温度は貯湯タンク温度です。

決定水温は水道水の温度です。

ロス(rosu)はお湯はり後の温度が夏場と冬場で異なりますので温度補正です。

決定温度は設定温度です。

ロスは水温で補正しています。このスケッチで湯量と水量の2つの変数を計算できます。(^^;

180Lはお湯と水の合計です。適当に調整出来ます。

水量と湯量はフローセンサー(流量計)で計測し、フローセンサーの値が180になったら「いい湯だな」のメロディが流れるようにしています。

ホール素子を使った水量計(流量計)の記事はこちらです。

【ホール素子】水流センサー(流量計)arduinoスケッチ
ホール素子を使った流量計を入手しましたがなかなかarduinoのスケッチが見当たりません。 そこでいろいろ調べて何とか使えそうになったのでメモに残しておきます。 ホール素子とは ホール素子とはホール効果を利用して磁石や電流によ...

カズは冬場は湯量を155Lとしています。その分貯湯タンクにお湯が残るのでタンクに注ぐ水が少なくなる分タンク温度を引き上げることが出来ます。

2年運用していますが、問題なく使えています。また、雨や厳冬期などは適当に近くの天然温泉施設に出かけています。(^^;

サウナっていいですよねっ!

アマゾンアソシエイトリンクは購入されるとカズに紹介料をくれるっていう有難いシステムです。(^^;

[amazon_link asins=’,B00G9PS0MU,B07PPSNV59′ template=’ProductCarousel’ tag=’toraberuko-22′ marketplace=’JP’ link_id=’1e988895-f60c-490b-a739-ae99efcdd40a’]

スポンサーリンク

お風呂のお湯張りをお知らせ まとめ

カズんちの太陽熱温水器のコントローラにはarduinoを組み込んで温度設定が出来るようにしています。

でもお湯張りが終わったことが判らないので「まだかなぁ~?」といつも気にかけていましたがお風呂のお湯はりのお知らせメロディで解放されました。

音程やリズムのおかしいところはご愛敬ということで……(^^;

【ご参考に】

太陽熱温水器の真空管下にドイツ製の反射板を3つ取り付けています。この反射板は頂きもので機種が違うので湾曲が真空管中心部には向いていませんが、それでも取り付け前に比べて利得が55%向上しました。

冬場は従来40度にもならなかったのですが反射板を取り付けることで50度を超えるようになりました。

これから真空管式の太陽熱温水器を購入される方は反射板付きを検討されたらと思います。また真空管式の貯湯タンク夜間温度低下は厳冬期でも3度程度です。

タイトルとURLをコピーしました