Posts tagged ‘auto ventilation control system’

以前作った換気扇の自動制御システムは、改良したいことを挙げればキリがないものの、ちゃんと使えている。: 通常時は間欠的に(今はon: 26分, off: 14分, on率: 65%)換気扇が回り、ガスコンロを使ったり作業をしたりしてCO2濃度が高くなった場合は低くなるまで連続で回る。

その後、ちょっと思い付いて、以下のように 動的(言ってみれば適応的)に換気扇の動作モードを変更する機能を追加してみた。

基本機能: 定常的にCO2濃度が高目の場合は換気扇のon率(回している時間)を増してCO2濃度の上昇を抑え、低目の場合は逆にon率を下げて余計な換気を抑えるようにする。

当初は「余計な換気を抑える」必要は ない気がしていたものの、外からの臭いを取り込む可能性をなるべく減らすためと、仕組み的に可能なので(= おもしろそうだから)入れてみた。 (こういう余計な思いつきが面倒を増やすのだ!www) だが、近頃、部屋の冷暖房効率の改善に繋げられそうなことに気付いた。

この機能は、今まで僕が手でやっていたこと(CO2濃度が普通でない場合、PCのリモコンアプリで換気扇のモードを切り替える)で、それを自動化する。

処理: 難しいものではなく、以下のようにした。

  1. CO2濃度の取得・チェック処理をする時に、以下を実行する。
  2. CO2濃度の長時間移動平均(→ LTMA_CO2)を求める。
    • 今は換気扇の間欠運転周期(今は全部40分)の2倍の時間(→ 80分)分を求めている。
      • この値は換気扇の運転周期の整数倍であることが望ましいので、その時に設定されている周期から計算している。
  3. LTMA_CO2に従って換気扇の動作モード(→ on率)を切り替える。
    • ただし、CO2濃度が高くて換気扇を連続で回している場合を除く。
    • LTMA_CO2のしきい値と動作モードの対応表を使っている。: 今は以下の設定にしている。
      • LTMA_CO2: on率, ()内は動作モード
      • <= 670ppm: 50% (LL)
      • <= 710ppm: 55% (L)
      • <= 750ppm: 65% (M)
      • > 750ppm: 70% (H)

現状の制限として、PCで制御しているため、外出時や寝る時などにPCを停めると その時点の設定で固定されるので、不要に高いon率が続くことや、低いon率が続いて就寝中にCO2濃度が高まってしまう可能性がある。そのため、余り大胆なon率は設定できない。

これについては、PCを停める(スリープ、停止)前に通常のon率のモード(上の"M")に戻すとか、ラズベリーパイのようなマイコンに移植して常時制御すれば対応できるが、まあ、そこまでこだわることではないので、このままで良しとしている。

ちゃんと動いているものの、「換気が最適化されているなあ」などという体感は ないし、グラフを見ても特段の変化は見えない(効果が ない訳では ないだろうが・・・)。なお、グラフが右肩下がりなのは、近頃は なぜかCO2濃度が低目になっている※ためだろう。

※原因は分からないが、暑い時は身体の代謝が増えて排出するCO2濃度が増えていたのが涼しくなって減ったためか、外気の濃度変化のためかと想像している(そういうことがあるか不明 ← 少し調べたところでは(下を参照)、逆のようだ・・・)。

身体の代謝は主に体温維持のためだそうで、夏に減り冬に増えるようだ。 (→ 参照)

ただ、個人的な経験からの想像だが、身体に(特に夏の熱い)日ざしや外からの輻射熱が当たって暑くなると、身体の活度のようなものが増して代謝が増すのではないかと思う。その証拠に汗をかく。それは作業で汗をかく時と同様で、代謝が増しているのではないか?

また、外気のCO2濃度については、概ね、光合成の活発化する夏に減り、冬に増えるようだ。 (→ 参照) ただ、参照ページを良く読むと(例: 図3)、堂平山では2-7月に高く、9月頃に最小になっているのには合っていそうだ。

もし代謝も外気も関係ないとすると、センサの温度補正が うまく行っていないことが考えられるが、今、天気が良くて室温が高い(約28℃)にも関わらずCO2濃度は低い(約670ppm)ので、温度補正は大丈夫そうだ。

あとは、付近の道路の通行量(あるいは渋滞頻度)が減ったとか、工事が下火になった関係だろうか?

近頃の部屋のCO2濃度(緑): 日, 週, 月, 年 (左上→右下), 水色は室温に比例した値; 9/1(week 35)頃から動的に換気扇の動作モードを変えている。

ただ、この機能でon率が低くなっていることがあるにも関わらず、特段 通常時のCO2濃度が高目になっていないのは、CO2濃度が高目になった時にon率を上げているため(→ うまく行っている)だと推測する。また、動作モードを見ていると(グラフがあれば分かりやすそうだが ない)、近頃はon率の低いLになることが多いので、長期(季節?)的なCO2濃度の変化に追従できていることも推測できる。

それで、今後更にCO2濃度が低くなるかも知れないので(期待して)、今朝 LLのモードを追加した。

 

(10/7 11:58) 使いながら設定を調整した。

現状のCO2濃度(長時間平均)と換気扇のon率・動作モードの対応表は以下である。

  • LTMA_CO2: on率, ()内は動作モード
  • <= 610ppm: 50% (LL)
  • <= 675ppm: 55% (L)
  • <= 740ppm: 65% (M)
  • > 740ppm: 70% (H)

また、状態の確認が容易になるように、換気扇のon率(→ モード)もグラフに描くようにした。グラフを見たところは うまく動いている感じだ。

換気扇の動的モード切り替えの設定を調整後の部屋のCO2濃度(緑), 室温(青), 換気扇のon率(→ モード, オレンジ): 後の2者はそれぞれに比例した値。

当然ながら、従来の通常時のon率(65%, M)を広く使うのが良いようだ。また、50%(LL)になることは ほとんどなさそうだ。 (上のグラフでの最低は55%, Lである。)

  •  1
  •  0
Keys: , ,

延々と続く部屋の改造改良・異臭への対処: 今回は ちょっと失敗だった。改良作業自体は うまく行ったのだが、事前検討・確認不足でボツにしたので作業が無駄になった。それでも、異臭については改善できた。

近頃、トイレの換気扇を掃除したあとだったと思うが、トイレで鼻がムズムズすることに気付いた。その後、居間でもムズムズするようになった。 (← 下記のとおり、掃除の前からトイレでしていた。)

掃除する前はムズムズしなかった気がするが、確かではない。もしそうなら、なぜ以前は臭わなかったかは謎だ。もしかすると、掃除前はもっと臭いがひどくて、今はしない薬品臭や農薬臭(や煙草臭: これは汚れとは無関係にある)が起こっていたのかも知れない。 ← 記録を調べたら、トイレの換気扇(エアコンも)の掃除の前、6月頃にトイレでムズムズしていたので、どちらも関係なさそうだ。 (9/1 8:58)

それは、(居間については)エアコンの(ファンの)汚れ(カビ?)によるものか、風呂の換気扇による負圧や外からの風でトイレの換気扇※から臭い空気が出て来て(逆流して)、トイレだけでなく居間にまで達するためだと推測した。

※なぜか、風呂の換気扇からは臭いは出て来ない。ダクトが長いため抵抗が大きくて外から風が入りにくいのと、間欠運転で頻繁に排気しているためだと推測している。

エアコンのファンの汚れについては、数回掃除したが完全には綺麗にできていない。いずれファンを外して丸洗いしたいと思っている。

換気扇については、最初は臭いの元はダクト内部に付いた汚れ※だと考えていたが、逆流して風が吹き出ていても臭わないこともあるので、外の臭いが主なようだ。*

※ダクトは蛇腹状になっているので(→ : これは外に通じていないので綺麗)、その溝に汚れが溜まっていると想像した。

*それであれば、換気扇だけでなく、通常の空気取り入れ口から入った空気でもムズムズするはずだが、なぜか余りひどくない。ムズムズする成分が換気扇の排気口付近に溜まるのだろうか? 天井の影響?

一方、エアコンを掛けた車でもムズムズすることがあるし しないこともあるので、エアコンよりは外の臭いが主因だと思う。

あと、部屋で洗濯物を干している時にもそうなるので、水道水に含まれる成分(塩素? カルシウム?)が関係しているのかも知れない。ただ、車の排気ガスの成分のような気はする。

いずれにしても、ムズムズを防ぐにはトイレの換気扇から風が入らないように(逆流しないように)すれば良い。そのために、風呂の換気扇を回している時にトイレの換気扇から逆流しないようにすることを考えた。

この時は外の風での逆流を防ぐことは考えていなかった。というのは、部屋の換気扇の反対側の開口は閉じているので、論理的には風での逆流は ほとんど起こらないはずだと考えていたからだ。ただ、微妙な漏れがあるのかトイレの換気扇のダクトが短いせいか、実際には起こるようだ。

そうするには、トイレの換気扇に逆止シャッターを付けるか風呂の換気扇と同時にトイレの換気扇も回せば良い。前者は以前行った時には若干の漏れがあって完全には逆流を防げなかったので、より確実そうな後者にした。簡単に書くと、風呂とトイレの換気扇のスイッチと間欠運転用のリレーを並列に接続した。そうすれば、いずれかのスイッチかリレーをonすれば、両方の換気扇が回る。

必要な材料を揃えて、換気扇制御タイマーの変更や配線などを行い、うまく動作しムズムズも ほとんど収まって一件落着と思ったのだが、寝ていて目が覚めた時に、トイレの換気扇が結構うるさい(主に低音)ことが分かった。

どういう訳か、風呂のは静かだがトイレのは寝室に響くようだ。また、なぜか居間では うるさくないので、部屋の構造が関係しているようだ。

結局、うるさいと睡眠に悪影響がありそうなので、トイレの換気扇は頻繁に動かしたくなくなり、風呂のと連動させるのを止め、グリルに逆止シャッター※を付けて逆流を防ぐようにした。

※以前、風呂の換気扇用にクリアフォルダーで作ったものを少し変更して作った。

なお、元々換気扇のダクト側にシャッターは付いているが、密閉性が悪いせいか(強風が対象のようだ)結構漏れるので、僕には不充分だ。

ただ、シャッターには微妙な漏れがあるし、(上にも書いたように、)そもそも換気で外からの空気が入って来るため、まだムズムズすることはある。それでも、ないよりはずっと良くなった。

 

良くあることだが、何かをする前に問題がないか充分に考え・確かめることは重要だ。とは言え、考えてばかりだと結局何もしないで終わることもあるから、事前検討段階で素早く問題を見抜く(結構苦手だ)力が重要そうだ。

あと、いくら苦労したって、「駄目なものは駄目」で さっさと損切するのも重要だ。

その点では、どこかの国のように、(下らないプライドのために)一旦決めたら いくら不都合・不合理があっても やり抜き、そのあとで延々と不都合を我慢するほどの馬鹿でないのは ちょっとした誇りだ。

 

以下、作業にまつわる話を書く。: 作業が無駄だったので無意味なこともあるが、新たな知見・経験も得られた。

  • 当然ながら、2つの換気扇を連動させる(同時に回す)とCO2減少速度が向上した(換気能力が高まった)。: 約1.4倍になった。
    • 2つの換気扇が同様な能力なのに2倍近くならないのは、トイレの換気扇が吸気口(玄関)に近いのと、CO2を測定している居間から遠いせいだと推測している。
  • 秋月のXHコネクタの互換品(中国製)は全く駄目。信頼性・耐久性がない。
    • ピンに半田付けすると穴が緩くなってレセプタクル(ジャック)に挿すと抜けてしまうので、ピンごとに瞬間接着剤での固定が必要で、とても実用にならない。。。
      • それに懲りて、2回目の半田付けでは、ピンに即席の放熱板(お酒のアルミのキャップカバーを加工したもの)を付けたが、それでも不充分で、挿す時に後ろにズレた。
    • 「互換性を充分に検証した」のように書かれていたけど、駄目だった。サイズは合っていても、材質や耐久性まではチェックしなかったのかも知れない。
  • コードの容量(許容電流)について、今まで誤解していた(良く考えていなかった)。
    • 物理的に、コードの導体(線)が細ければ細いほど、大電流を流した時に発熱量が増える。 (→ 参照)
    • だから、コードの容量は、主に被覆の耐熱性(溶ける温度)で決まると考えられる。
      • 「細いけど なぜか許容電流が大きい」コードは、発熱するけど被覆が耐えるというだけで、特別な魔術はない。
        • 上は どのコードも導体が同じ(銅)とした場合である。金や銀のように抵抗の小さい導体なら発熱量は小さくなるし、超伝導のコードなら発熱しない(想像)。
      • だから、例えば、被覆が数百度に耐えるために許容電流が大きい細いコードに大電流(許容範囲内)を流すと、周囲は かなりの高温になって、(そのコードは問題ないけど)周囲は想定外の事態になりそうだ。
    • そういう訳で、電力用途では、(表示の許容電流を盲信せず)なるべく導体が太いコードを選ぶほうが良いことが分かった。
  • 今回は、コードを壁に留めるのに ひっつき虫(コクヨ)を使った。
    • 以前使ったブルタックは色(薄い水色)が付いていて(若干)目立つのと、柔らかいため、暑いと弱い(コードの力で浮いて来る)ので、その前に使ったハリ玉を買ったが、硬くて付きにくかったので ひっつき虫にした。
    • ただ、ひっつき虫もブルタックと同じくらい柔らかいので、暑いと弱そうだ。もう少し丁度良いものがあるか、気になるところだ。
      • 以前見送った ウフ ペタフィックスというのに興味はあるが、ブルタックもハリ玉もひっつき虫も随分残って居るので、まだ先だ。
    • いずれにしても、とりあえず、以前のブルタックは ひっつき虫に換えたい。
  • 換気扇には関係ないが、エアコンのファンを外さずに完全に清掃するのは難しい。
    • 前回の清掃のあとに、再度ボロ布を割り箸に巻いて清掃したが、余り綺麗にならなかった。
    • 次に、100円ショップの筒用ブラシ(ダイソー 注ぎ口洗いブラシ, 太いほう, 径約1.5-2cm)で擦ってからセスキ水と水を噴霧したが、上の写真のようにやっぱり茶色い汚れが残った。
      • ただ、擦ると黒い煤状の汚れの塊が落ち、セスキ水では黒い水が垂れたが以前ほど汚くなかったので、それなりに落ちては居るようだ。
      • また、ファンの全部の隙間を掃除してもブラシは問題なかったので、意外に耐久性があるようだ。
    • なお、少し毛羽の付いた布を棒に被せるクリーナー(ダイソー おそうじ棒)も試したが、すぐに汚れるため、掃除する箇所が多いとクリーナー自体の掃除が頻繁になるのと、ファンの羽根は微妙に湾曲していて布ではそこまで綺麗にできないので、使わなかった。
      • ファンの羽根の隙間は狭いので、割り箸を削って作った棒に被せた。
    • いずれにしても、分解してファン単体を丸洗いしたいところだが、難度は高い。

 

(9/1 7:40 文章と写真を追加; 9/1 8:58, 10:16, 10:34, 15:54 加筆・修正)

  •  0
  •  0
Keys: , , , , , , , , , ,

とりあえず、部屋のCO2濃度に応じて風呂の換気扇のon/offを制御するソフト(c2m-wj01-ac-fan.sh)ができた。それにより、火を使ったり汗をかくような作業をしている場合(→ グラフ: 右半分: 作業時, 高い山: 火の使用時)を除いて※、部屋のCO2濃度が常に概ね800ppmを下回るようにできて居る(ここ一か月の平均CO2濃度は約720ppmとなった)。 (→ グラフ: 過去1か月の変化, 過去1日の変化)

※その場合には換気扇が連続して回るので、しばらく経てばCO2濃度は下がる。

そして、適切に換気できるようになったおかげか、近頃は、夕方近くに頭痛が起こることや、外に起因する異臭(例: 煙草臭)がすることが ほとんどなくなった。就寝時の動悸についても改善はしたが、関係はまだ良くわからない。

CO2濃度に応じた換気扇の自動制御処理

基本的に、換気扇はタイマーで常時間欠運転しており、1人で安静にしている場合には室内のCO2濃度が増加しないようになっている。ただ、作業したり火を使ったりするとCO2濃度(の増加速度)が高くなり、間欠運転では換気量が足りなくなるため、PCからタイマーを制御してCO2濃度が下がるまで換気扇を連続して回す処理をしている。

以下に処理手順の概要を示す。

  1. センサ(CO2Mini)からCO2濃度を取得する。
  2. 換気扇を回していない場合
    1. CO2濃度が 高い(>= Th_H)場合
      1. 以下のいずれかの場合、換気扇を単位時間回す。
        • CO2濃度が すごく高い(>= Th_Hi)
          • この場合、換気扇を単位時間の2倍回す。
        • CO2濃度の変化率が大きい(>= Th_cr_p_Hi)
        • CO2濃度の短期間移動平均の変化率が大きい(>= Th_cr_st_ma_Hi)
        • CO2濃度の短期間移動平均が大きい(>= Th_st_ma_H)
  3. 換気扇を回している場合
    1. CO2濃度が低い(< Th_L)場合
      1. 以下のいずれかの場合、換気扇の運転を継続しない(ただし、すぐに停めずに現在の運転時間が終わるまでは回す)。
        • CO2濃度が すごく低い(< TH_Li)。
        • CO2濃度が高くなくて中期間移動平均のCO2濃度が小さい(< Th_mt_ma_L)。
    2. CO2濃度が低くない場合
      1. 換気扇を継続して回す。
  4. 次の処理・濃度チェック時間まで待つ。
  5. 1に戻る。

現在の動作設定を以下に示す。

  • 換気扇の常時間欠運転(タイマーによる)
    • On: 26分, Off: 14分 (On率: 65%)
  • 換気扇の自動制御
    • 処理(CO2濃度チェック)間隔: 1分
    • 換気扇を回す単位時間: 30分
      • ただし、CO2濃度が すごく高い(>= Th_Hi)場合は2倍(60分)。
    • CO2濃度を移動平均する時間
      • 短期間: 7分
      • 中期間: 10分
    • しきい値
      • 換気扇を回す関係
        • CO2濃度が右以上の場合、「高い」とする。 (Th_H): 775ppm
          • CO2濃度が右以上の場合、換気扇を回す。 (Th_Hi): 875ppm
          • 前回からのCO2濃度変化が右以上の場合に、換気扇を回す。 (Th_cr_p_Hi): 20ppm
          • CO2濃度の短期間移動平均の変化が右以上の場合に、換気扇を回す。 (Th_cr_st_ma_Hi): 10ppm
          • CO2濃度の短期間移動平均が右以上の場合に、換気扇を回す。 (Th_st_ma_H): 775ppm
      • 換気扇を停める関係
        • CO2濃度が右未満の場合、「低い」とする。 (Th_L): 750ppm
          • CO2濃度が右未満の場合、換気扇の運転を継続しない。 (TH_Li): 675ppm
          • CO2濃度の中期間移動平均が右未満の場合、換気扇の運転を継続しない。 (Th_mt_ma_L): 750ppm

 

作る時に苦労したのは、処理手順(アルゴリズム)※よりも、設定の調整である。いろいろなしきい値(上記)が定常的なCO2濃度や動作の安定性を決める。それらが不適切だと、いつまでも換気扇が回り続けたり、CO2濃度が下がらなかったり、下がってもすぐに上がって、頻繁に換気扇が回ることになる。

※アルゴリズムについては、思い付いたまま、かつ、動かしながら修正したので、上に示すように「何か複雑」になってしまった。

また、常時間欠運転のon/off時間やon率がCO2濃度の減少速度を決定するので、これを人によるCO2濃度の増加速度に合わせる必要がある。以前も書いたように、常にon率に比例する換気能力が得られる訳でなく、ある程度on時間を長くする、あるいは、on率を大き目にする必要があった。

あと、移動平均時間は換気扇を回す・停める「感度」を決める。

例によって、(題や最初に「とりあえず」と書いたように、)いろいろ改良したいことはあるが、現状で大きな不満なく使えているので、まあ、気が向いたら やって行きたい。

 

最後に、前回以降にCO2・換気関連で したことや分かったことなどを列挙する。

  • センサ(CO2Mini)関係
    • 設置位置の変更: メインディスプレイの後ろに設置した。
      • 強い呼気(深呼吸や溜息など)の影響を避けるため。
    • 遮熱・防風処理: CO2Miniは熱(急な温度変化)や風(室内の気流)の影響を受けやすいことが分かったので、それらを抑えようとした。
      • : 机の温度の影響を抑える(低減する、以下同)ため。
        • プラのカップ(ある飲み薬の計量用)と輪ゴムで作った。
        • 振動を抑えるように、中にスポンジを入れた(本当に効果があるかは不明)。
      • 遮熱板: メインディスプレイの熱の影響を抑えるため。
        • ただし、冷房などでの室温変化の影響は防げない。
        • 熱とともに、ディスプレイの下から通って来るであろう呼気も抑える。
        • 段ボールで作り、ディスプレイの側に断熱材(エアキャップ)を貼った。
          • どれくらい効くかは不明。
          • あと、貼る側もどっちがいいか不明だが、こっちがいいと考えた。
      • 防風板: サーキュレーターやエアコンなどでの気流の影響を抑えるため。
        • 段ボールで作った。
      • 遮熱・防風板: 上の二つを統合して簡略化した。
        • 遮熱板と同様に、ディスプレイの側に断熱材を貼った。
  • 部屋のCO2濃度について
    • CO2濃度の増減速度の例(速度は さまざまな要因で変動する)
      • 人による増加速度
        • 換気扇: off (1人): 約5-10ppm/分
          • 活動量によって増加速度は変わる。
        • 換気扇: 間欠on(on率: 65%)+自動制御 (1人): ほぼ0ppm/分 (長時間を見た場合)
          • 状況により正の場合(例: 0.3ppm/分)もある。
      • 換気扇による減少速度
        • 換気扇: 連続on (1人): 約3ppm/分
        • 換気扇: 連続on (無人): 約3ppm/分
          • 本来は上よりも減少速度が大きくなるはずだが、状況が異なるため、同じ値になった。
        • 換気扇: 間欠on(on率: 65%) (無人): 約2ppm/分
          • 約3ppm/分(連続on)*0.65= 1.95ppm/分なので、概ね想定どおりの換気率が得られた。
    • 作業するとCO2濃度は(急)増する。
      • 火気がなくても増える。
      • 汗をかくような作業だと増加速度は大きくなる。
      • 食後や日光が射した場合も増える。
        • 身体の代謝が大きくなるため?
    • 作業しなくてもCO2濃度は増える(溜まる)ので、換気は必要。
      • 近頃の住宅は24時間換気が必須になっている必要性が分かった。
    • その時によってCO2濃度の減りやすさが違う。
      • 原因不明: 風向き? 天気? 時間帯?
      • 外気のCO2濃度との差が小さいと換気効率が下がる(→ 室内の濃度が低くなると現象速度が落ちる)のはありそう。
  • 頭痛や就寝時の動悸と換気・CO2濃度の関係
    • 適切に換気(自動制御)するようになってから、午後・夕方の(頭痛薬が必要なほどの)頭痛は滅多に起こらなくなった。
    • 寝ている時の動悸は まあまあ減った。
      • 寝室の換気が悪かったせい?
        • 換気の影響は大きそうだが、それだけではない。
      • 近頃、寝ている時に暑いと(約28.5℃以上)動悸が することが分かったので、換気の他に、(寝る前と)寝ている時に寝室を適切な温度にする必要があることが分かった。
        • 寝ている時が難しい。: 同じ温度でも、体感で暑く/寒く感じることがあるため。
      • 上記以外に飲酒や疲れも関係ありそうだが、まだ良くは分からない。
  • 外からの異臭問題と換気の関係 (概略: 換気以外に さまざまな試行錯誤をしているので、「何とかなった」と思えた時に書きたい。)
    • 臭いを減らすには、基本的に換気し続ける方針で良さそう。(CO2と同様)
      • 外が臭いことはあるが、ずっと臭いままということはないので、換気すれば臭いは減る。
      • 換気しないと室内に臭いが溜まってしまう。
      • 一方、埃やゴミが溜まって臭い経路(= ダクト)があるので、そこからなるべく吸気しないことも重要そうなことも分かった。
    • 近頃、部屋が煙草臭くなることが ほとんどなくなった。
      • 換気とサーキュレーターの効果かも知れないが、まだ確定できない。
        • 今まで何度もあったのだが、大丈夫と思って少しするとブリ返す可能性があるので。
      • 暑くなって、外で、あるいは、家や車の窓を開けて煙草を吸わなくなったから?
        • ただ、涼しい日や雨の日も臭わないので、換気とサーキュレーター(+他の対処)の効果があるのかも知れない。

 

(8/1 7:32 写真のキャプションを少し修正)

  •  0
  •  1
Keys: , , , ,

(TVは観てないけど)「ナレ死」と似たような感じ、あるいは、仕事じゃないけど状況報告みたいに、今までに書いたことで単体にするほど大きくない、いろいろな「その後」(現状)をまとめて書く。

 

換気扇制御システム (間欠運転リモコン)

自画自賛だが、なかなか便利なものを作ったと実感している。特に、PCのGUIでリモコン操作(動作モード(= 換気の強さ)の変更、指定時間連続onなど)できるのが良い。なお、念のため(C国の製品や自分を信じ過ぎちゃいかん)、定期的に過熱などの安全面を点検しているが、今までのところ問題はない。

そして、自分で作ったものだけど、大分、使い方のコツとか丁度良さそうな設定が分かって来た。

  • 今は、換気扇のon/off周期30分、on率23%(on: 7, off: 23分)を通常動作にしている。
    • それまでは周期を45分にしていたが、後述のように、周期が短いほうが換気具合が平坦に近付くと考えたためである。
  • 空気が悪い感じがするなど、ちょっと換気したい場合は、15分くらい連続して回すと大体は良くなる感じ。
    • 思い付きの値だが、丁度いいようだ。
  • 追って別の稿に書く予定ではあるが、外が臭い場合には換気を停めたほうがいいことに(再度)気付いた(以前にも気付いた気がするが、忘れて居た)。
    • これは難しい。部屋に臭いが入ってから停めると臭いが排出されないように思うので、事前に検出する必要がある。。。
    • 次善の策は、部屋に臭いが入ったら、しばらく(外の臭いが消えるまで)換気を弱くすべきなのかと思っている。
  • 以下、周期に関する技術的な考察
    • 周期(= on+off時間)が短いほうが、換気具合が平坦に近付き、空気の質(例: 室内のCO2濃度)も安定すると推測する。
      • 平均して同じon率の周期でも、周期が長いと、例えばCO2濃度の変動が大きくなる。
      • PWMやD級アンプや1ビットDAC(DSD)の周波数が高いのと同様に、周期を短くすることは換気扇をon率と同等の強さで常時回すのに近付く。
    • ただ、周期が短いとon/off頻度が増えるので、タイマーのリレーや換気扇の寿命が短くなる。
      • 換気扇については、推測だが、on/off頻度が高いと突入電流が流れる回数が増えるため、モーターのコンデンサの劣化が速まるのではないか。
        • 一方、そもそも このような自動間欠運転は想定されていないだろうから、自動運転するだけで寿命が短くなるので、周期の長さは大きな問題ではなさそうだ。
          • 周期が30分の場合、一日に48回もon(/off)するのと同じだ。業務用ならまだしも、家庭用の換気扇は そういう想定では ないのではないか。
            • ただ、トイレの換気扇とすれば、例えば5人家族で1人1日8回使うとすると、on(/off)される回数は40回/日と近い値になる。でも、8回/日は多いか。

例によって できただけでは飽き足らず(単に遊びたいだけw)、以下のような思い付きがあるが、実施するかどうかは不明・未定である。

機能追加・拡張案1: リレーの状態の取得

少し前に、PCからタイマーの現在のリレーの状態(onかoffか)を取得する方法を考えた。ただ、おもしろいけど結構面倒で、やる意味があるか不明だ。

概要: PCとタイマーが通信していない時に、リレーのon/off状態をシリアルの信号線(例: PCのRXD(受信データ))に出力し、使っているシリアルインタフェースIC(FTDI)のGPIO的な機能を使ってそれを読む。

このシステムでは、PCからコマンドを送らない限りタイマーからデータは来ないので、通信していない時にシリアルの信号線が通信プロトコル上正しくない状態になっても、(PCはそれを分かっているので)問題は起こらない。

機能追加・拡張案2: 換気扇の重複運転の防止

トイレの換気扇が動いている時は、本システムが制御する風呂の換気扇を停める仕組みも思い付いた。仕組みは簡単だが、これも やる意味があるか不明である(せいぜい、窓に張ったシートの張力を抑制できる程度)。

トイレの換気扇がonの場合、風呂の換気扇を制御しているリレーをonにしないように(あるいは、トイレの換気扇がoffの場合だけリレーをonにする)すれば良い。

簡単だけど、AC100Vが絡むので安易にはできない。

機能追加・拡張案3: リモコンの通信の無線化

これも、上と同様に やる意味があるか不明(現状の有線接続で見栄え以外の問題はない)ではあるが、興味はある。

以前も書いたようにWi-Fiモジュールを買えばいいが、いろいろ面倒なので、古いスマフォを使いたい。が、それも結構面倒そうだ。

一番面倒なのは、古いスマフォは電池が駄目になっていることだ。電池が寿命になったあとで交換品を買ったが、不良品か詐欺で使えなかった。今は ほとんど売っておらず、それらを買っても使える確証はない。

あ! 書いたあとで思い付いたが(無線でなく)有線でも、昔 流行りそうで ぽしゃった、ACの線を使うLAN(PLC)なら良さそうだ。けど、アダプタはもう売ってない うえに、あっても高そうだ。でも、このシステムは速度は全く要らないから、もし安く手に入れば手軽でいいかも知れない。

とは言え、LANなので相手(タイマー)側はシリアルでは済まず(小さいPCやスマフォが要る)、そこが面倒だ。「ACの線で繋がるシリアル」は見た気がするが、高い・・・

 

温度センサの補正式の調整

少し前から中・高温域の補正式を調整している。今は大体27.5℃くらいまでできている。なかなか暑くならないので進みが遅いが(ただ、完全に暑くなると温度の上昇速度が大きくなって、参照用温度計との応答速度の差が大きくなるから難しい)、もう少し経つと本格的に暑くなって終わりになりそうだ。

と書いていて気付いたが、今日は暑くて冷房していたから、やればできたかも知れない。ただ、昨日(冷房せずに)作業していたら夕方には弱い熱中症みたいになったし、夜に暑くて目が覚めて冷房したので、連日は避けたほうが良さそうだ。

去年の夏に合わせた温度計算式が今も有効なようで、大体27℃以上は補正の調整が不要になる感じだが、そこで(いかにもデジタルにw)階段的に切り替えはできない(そうすると、切り替え点付近の値が不安定になる)ので、もう少し測定して「うまい具合」の補正式にしたい。

 

高血圧

なぜか、去年の今頃より低い感じで、通常量の降圧剤を飲むと、朝の「上」が125mmHgくらいになることが多い。

  • (もう少ししたら書く予定だが、)外からの異臭(煙草・薬品・農薬臭)が随分緩和できたために良くなった? 単に暖かくなったせい?

血圧が低い時に降圧剤を飲むと調子が悪くなるので、半分にして飲んで居る。

  • そうすると、 朝の「上」は130mmHgくらいになる。
  • 以前は、低い時は飲むのを止めていたが、低いのが続くなら半分ずつ毎日飲むのが良さそうだと考えた。
  • 今後も低い状態が続くなら、医師に言ってみる予定。

 

白内障・飛蚊症・老眼

当然ながら、白内障も飛蚊症も良くは ならないが、悪化もしていない気がする。が、室内での見え方(特にディスプレイ)が今一つ(飛蚊症が邪魔)だ。

  • 真上に照明があるのと、真横の窓が眩しいのも関係あるかと思っている。
    • メガネのレンズとの関係もある気がする。
  • 眩しい窓対策
    • (これもあとで書く予定だが、)一部のレースのカーテンから臭いが出るようなので、しばらく(臭わない)1枚にしていたが、やっぱり眩しいので、臭わないものを買って追加した。
    • カーテンを2枚重ねて付ける・フックを延長する工夫
      • 以前は、1枚目(外側)のカーテンのひだに2枚目のカーテンのフックを掛けていたが、もっと確実な方法を思い付いた。
        • いつものように、寝ている時に思い付いた気がするが、下に書いたように、作業している時に思い付いたのかも知れない。
      • 1枚目(内側になる)用のフックのカーテンを付ける部分の底部に2枚目用のフックを引っ掛ければ良い。フックだけあれば、金具やテープなど何も要らない。それぞれのカーテンの取り付けは斜めになるが、レースのような薄いものでは問題なさそうだ。
        • 2枚重ねる前に、丈の短いカーテンをなるべく下に付けようとしている時に「発見」した。
          • なので、上のフックにのカーテンを付けなければフックの延長となり、1枚を下げて付けられる。
        • これを思い付いた切っ掛けは、2枚重ねる方法を改良しようとして、その前にカーテンを下げるために延長したフック(下を参照)を見たら、延長のために付けた上側のフックにもカーテンが掛けられることに気付いたことだ。
      • これを思い付く前は、1枚目用(実際にはダミー)のフックの底部近くにダクトテープで2枚目用のフックを貼り付けて延長していたのだが、もう一組(別の窓)分作るのは面倒だし、弱そうだし、高さの再調整が困難なので、もっといい方法がないかと思って居た。

白内障に戻ると、昨日か今朝か、有名人(知らない人)が、手術して視界が かなりクリアになったという話を目にして、手術の怖さが少し減った。あと、僕は まだ濁って見える訳ではない(日光が眩しいのと左右の見え方がアンバランスになることがある程度)ので、「もう少し」余裕がありそうだと少し安心した。だから、そういう体験談は意外に有用な感じだ。

老眼は進行したかどうか不明だ(近視は進んでいない)。相変わらず老眼鏡は作っていない。近視用でも2本(普通用と自動車運転用)あるから それ以上は持ちたくないのと、遠近両用は今一つという話が多いし、実際に仕組みをみると無理があるからだ。

そのため、近頃は、近くの物を見る時に、眼鏡を外す以外に少しズラしてレンズの下や上から見るという、いかにもジジイ的なこともする。(でも、一人の時だけしかしないはずw) これ、目には悪いのだろうか? 筋肉的なもので、多くなければ問題ない?

 

(主に寝ている時の)動悸・頻脈

結局、原因不明で、余り変化(改善)なし。

  • お酒は多少関係ある(飲むと、その夜は確実に動悸・頻脈が起こる)。
    • ただ、飲まなくても動悸・頻脈が起こることも多い。
  • が、コーヒーは関係なさそう。
    • それでも、飲み過ぎは良くないので、以前よりは減らしている。
  • やはりSAS?
  • 日中もある。

ある記事で、夕食・飲酒後に体温が下がらないうちに寝ると自律神経が狂う(→ 動悸・頻脈などの原因にも)とかいうのを見たが、遅くまで起きてから寝ても変わらなかった。そもそも、起きているのが辛いw

体温と言えば、昨夜は暑くて目が覚めた(その時は動悸が強かった)が、冬でも暑くて動悸が起こるのだろうか? そこまで暖房は効かせていなかったが。

ただ、自律神経の問題かも知れない気はする。あるいは更年期的なもの?

 

耳の不調(突発性難聴・メニエール病 → 耳閉感・耳鳴り)

この時期(5月の連休明け辺り以降、夏まで?)は心身の調子が狂うようで(結構前から毎年同じように不調になる)、右耳も調子悪い。: 耳鳴りや軽い耳閉感が続いている。

  • 毎年のように起こり、時間が経つと治るので、医院には行かない。
  • 気にしすぎて振り回されるほうが良くなさそうだ。

 

鳩問題

(書いたあとで思い出したので、ついでにw) ベランダの鳩よけ網は まだ問題なさそうだ(外からの臭い対策でシートで窓を塞いでいて簡単にはベランダに出られないので、詳しい確認はできない)。たまに近くで鳴き声がしたり、窓の前を横切る影が見えるが、隣に巣を作っているのかも知れない。鳩は長生きだということなので、しばらくは そうなのだろう。

鳩の他にコウモリ(暖かくなって増えて来た)も防げている。あと、以前飛び込んできた小鳥は、あれ以来来ない。学習したのか、最初のは事故(勢い余って?)だったのか。その種類の鳥は元気なようで、たまに金具(換気口?)でカチャカチャ音を立てたり、朝賑やかに鳴いているが、そういうのは害でないから嫌ではない。たまに車に糞を落とすようだが、コウモリの尿よりは少ないので、まだ良しとしている。

 

車のオイル・フィルタ交換に気乗りしない問題

更に本当についでに。以前ちょっと書いただけだと思うが、いつも行っているディーラーの系列店の板金作業の不始末で、いつものディーラーすら嫌になり、本来は(確か)2月にするはずだった予定を延々と延ばしている。今日も予定には入れたが行かず仕舞いだ。来月後半から12か月点検の時期なので、それと一緒でも いい気すらしている。

その店は近くないが、以前は多少だるくても、「あのおっちゃんが居るかもなあ」と思って行ったが、今はそんな気分は全然起こらない。。。

そう言えば、その(いつもの)店には以前から数回トラブル(大小)に見舞われていることを思い出した。とは言え、僕の経験上、その店以上に いいディーラーは滅多にないのも事実なので、どう折り合いを付けるかだ。

本当に、プロの癖に いい加減なことをする店や連中には関わりたくない。時間もイライラも、無駄でしかない。

 

こうして見ると身体の不調の話が多いが、歳を取ったせいとか原因不明のものが多いから仕方ないね・・・

身体の不調(不調と言うよりは「劣化」)と言えば、他にも気になることはあるが、新しいものなので別途書きたい。

 

PS. ここに書いてないもので初出時は未完だった件でも、その後決着したものは その稿に書いてあることが多い。ただ、探すのが面倒で不親切ではある。

  •  1
  •  0
Keys: , , , , , , , , , , , , , , ,

(溜まったネタを時系列に こだわらず書いている。今回は今までの一連の稿の始まり かつメインとなる話で、このシリーズの最後となる。)

換気扇を間欠運転しているタイマー XY-WJ01にはシリアル(UART)ポートが付いているので、それを使って遠隔制御することができる。システムができた当初は必要ないと思って居たものの、(おもしろそうだから)できるものは試したいし、使っているうちに、例えば「ちょっと(30分くらい)強制的に換気したい」というような場合があり、PCから換気扇をonにできて自動で元に戻れば便利だと思ったので、やりたくなった。

PCとタイマーの繋ぎ方の検討

PCをタイマーのシリアルポートに繋ぐ方法を検討したら、Wi-Fiが良さそうだった。

  • 無線: 線がなくて美しいが、技適の壁のために安価なものは使えない場合がある。
    • Wi-Fi
      • IP通信なので、仕組みとしては ちょっと大掛かりになってしまう。
      • 親機はルーターが使えるので、1台で済む。
    • Bluetooth
      • シリアルポートプロファイルは手軽で良い。
        • こういうのが欲しかった。
      • 2台(1ペア)必要なのが面倒だし、少し高く付く。
        • ただ、最初は片方はスマフォでも良い。
      • 僕には馴染みがない。
    • その他
      • TWILITEシリーズ
        • おもしろいし簡単に使えそうなのだが、独自規格だったり3.3Vだったりして、(僕には)ちょっと面倒・使いにくいのが残念。
          • もしUARTが5V(トレラント)だったら、買ったかも知れない。
        • オリジナル製品のため安くはない(かと言って すごく高い訳でもない)し、開発機器(と言うほど大掛かりではない)が要る場合もある。
          • ここら辺が独自規格・製品の難点だと思う。
        • 2台(1ペア)必要なのが面倒だし、少し高く付く。
  • 有線(UART): 比較的安く、使うのは超簡単だが、コードが部屋を這うのが綺麗でない。
    • タイマーはAC 100Vを扱うので、通信路(タイマー - PC)を絶縁することが必須。

ただ、以前も書いたように、単純にWi-Fi - シリアルができる安い製品(しかも、技適認証済み)は なく、ESP32シリーズを使うのが一番良さそうだった。が、繋いで電源を入れるだけでは駄目で、少なくとも何らかの設定をしなければ使えないのが面倒だし、機能が豊富過ぎて もったいない。

それで、手元にWi-Fi内蔵SDカード PQI Air Card II(以下、Air Card)が眠って居たので使えないか検討したものの、問題・課題が多いので却下した。はずなのだが、前の稿に書いたように ちょっと思い付いて試したら、とんでもなく面倒なことになってしまった。

実は その前に、Air Cardを試すのにも使うのでUSB-シリアルアダプタを買い、タイマーに繋いでコマンドが実行できるようにしていた。

PCとタイマーを繋ぎ、タイマーのコマンドを実行できるようになるまで

まず、PCに適当なシリアルポート(信号レベルはRS232(±12Vなど)でなくUART(0, 5Vなど))がないので、USB-シリアルアダプタ(以下、シリアルアダプタ)を買った。選ぶ時、仮にAir Cardが駄目でもタイマーに直接接続できるように、絶縁型にした。

なぜ絶縁型にしたかというと、仮にタイマーが扱うAC 100Vがシリアルに漏れた場合でもPCを損傷させないためである。絶縁型であれば、仮にAC 100Vがシリアルに漏れてもPCのUSBポートには入らないはずで、タイマーは壊れるものの、PCは安全だ。

シリアルアダプタは、秋月のFT234X+ADuM121N使用絶縁USBシリアル変換モジュールにした。約千円だった。他に必要な部品(3.3V電源レギュレータ(Air Cardの電源にしようと思ったが、結局使わなかった)やXHコネクタなど)も一緒に買った。

届いてから動作確認(Linuxでのデバイスの認識やループバック通信)をしたところ、ちゃんと動いた。

選ぶ時に少し迷ったのだが、アダプタのチップは実績・定評のあるFTDIのもので良かったと思う。当然ながら挿せば動くし、例えば、タイマーへの通信がうまく行かなくて(後述)、転送速度のズレを疑った(実際には問題なかった)時に簡単に微調整(例: ±10%)できたのは良かった。

それからシリアルアダプタをタイマーに接続できるように基板にXHコネクタを付け、タイマーに繋げてコマンドを試したところ、なぜか処理されず、全部"FAIL"になってしまった。

一番まともそうなマニュアル(買った製品には添付されていない)を出しているメーカーらしき会社(そもそもメーカー名が不明なので、単なる商社かも知れない)に問い合わせても、マニュアルの関連箇所のコピーしか来なかった。不良品(ソフトにバグがある)と考えて買った店に問い合わせたが、やっぱりマニュアルのコピー(文章は中国語)を提示するだけで、「物は ちゃんと送った。製品に問題はない」などと無責任極まりない対応だった。更に、製品に問題のない(動作している)証拠を求めたが出して来なかった。

仕方ないので一旦諦めることにして、あとで使う時に壊れにくくなるようにシリアルアダプタをケース(壊れた100円カードリーダーのものを加工した)に収めたり、タイマー基板の入出力の一括接続用のXHコネクタを付けて整理した。

が、その後いろいろ試したら解決できた。: タイマーのコマンドは「一発で」送らなくてはならないのだ。例えば、設定を取得するコマンド"read"をターミナルソフト(例: minicom)で手で"r", "e", "a", "d"と打ち込むのは駄目で、それぞれの文字が"FAIL"になる

一方、プログラム(LinuxのechoコマンドでOK)で一回で"read"と送れば成功する。※ ターミナルソフトでも、(あらかじめクリップボードに入れておいた)"read"をペーストすれば成功する。(: ローカルエコーoffのため、画面には送信文字列(コマンド)が出ていないが、"read", 改行, 改行, 改行, "read"を送っている。)

おそらく、文字の受信間隔が しきい値より長いと、コマンドの区切りとしているのだろう。

※このことに気付いたのは、転送速度が異なるためかと思って微調整の仕方を調べたら、速度設定のあとにechoで文字を送信する例があって、最初なので そのとおりに試したら動いたことだった。本当に速度が違うのかと思って、上下限を調べたら調整なしの速度(9600bps)でも動いて、速度でなく送信方法がポイントだったことが分かった。

ただ、使ってみて分かったが、想像通りクロックが余り正確でないようで、タイマーの継続時間が結構狂う。大体、設定の7%くらい(例: 10分で42秒)短くなる。この調子だと温度でも変わりそうだ。

これはマニュアルに書いてない*ので、「ちょっと普通に」試したら全部"FAIL"になってしまう。※

*もしかして、元々の中国語版のマニュアル(あるのか不明)を読めば、文章の本来の意味から分かるのかも知れないが、全くの無理筋だ。あるいは、(PS1に書いたことに関連するが、)発注元の仕様書には書いてあって そう実装したけど、(テキトーな誰かが作った)マニュアルには書かれなかったのかも知れない。

※メーカーらしき会社の掲示板に、別の製品だが、同じ問題で困った人が居た。それに対しても通り一遍の回答で、「一回で送る」という情報はなかった。だから、その会社も単に売っているだけなのかも知れない。なお、呆れたのか諦めたのか、質問者からの返信はなかった。

Linux(bash)でタイマー XY-WJ01にreadコマンド(設定の取得)を送り、応答を受信する例を以下に示す。

timer_tty="/dev/ttyUSB0"
stty -F $timer_tty 9600 pass8 -cstopb -echo
my_tty=`tty`
tmo_s=1

timer_cmd="read"
bash -c "echo -n $timer_cmd; read -t $tmo_s res; echo \$res > $my_tty" < $timer_tty > $timer_tty

→ 結果: P6,OP:0.0.1.0,CL:0.0.3.5,LP:----

※他のコマンド(例: "P7"(モード7に変更))を実行したい場合は、変数timer_cmdに設定すれば良い。また、タイマーが接続されていない時や電源offの時に待ち続けないようにするため、readにタイムアウト(変数tmo_s, 1秒)を指定している。

(4/4 14:02) sttyに指定する通信設定を修正した。*: 一番重要なのは -echo で、これでエコーバックを停めないと、タイマーから送信された文字列がタイマーに送り返されて、エラーになったり設定が変わってしまうことがある。: 後述の、off時間が0("CL:0000")になってしまう現象の原因は これでないかと推測している。

*実際には他にも指定しているが、上記のものだけで充分である。

また、bashで実行するコマンドのリダイレクトも修正した。: 当初は検索して見つかった例のまま、意味を良く考えずに使っていたが、stderr(fd= 2)をstdout(fd= 1)にリダイレクトすると、Linux側のコマンドのエラーがタイマーに送られてしまうので良くない。

上の例は長くて分かりにくいかも知れないが、肝は一番最後の行のechoとreadだけで、やっていることは以下である。

stty -F /dev/ttyUSB0 9600 pass8 -cstopb -echo
echo -n "read" > /dev/ttyUSB0
read -t 1 res < /dev/ttyUSB0
echo $res

細かいことを書くと、こちらの場合は、(可能性は低いものの、)echoでタイマーにコマンドを送ってからreadを実行するまでに来た応答を取得できない。

そして、細くて長い(15m)電話線(モジュラーコード)※を買い、(長さが確定していないので、)モジュラージャックを切らずに接続するためのアダプタを作り、PCから洗面所まで「仮敷設」し、(コマンドは上のように手で打つものの、)PCからタイマーを制御できるようになっている。

※シリアルアダプタの端子数は4個(電源, 送信, 受信, GND)で、丁度電話用のモジュラーコードの芯数に合うのと細いコードが手頃な値段で売っているので、そうした。なお、15mは基本的にはシリアル通信には長いが、転送速度が9600bpsと遅いので問題ないと考えた。

タイマーの遠隔制御の機能と実装

タイマーの遠隔制御の使い方(ユースケース)を検討し、以下のような機能を実現しようと考え、概ね実装した。

なお、下の指定時間on/offしている間にPCが再起動したりスリープした場合にタイマーの状態が元に戻らない(例: onまたはoffになったまま)のは良くないので、そうならないような方式を考えた。

そのため、「連続on」や「連続off」の機能は作らない。連続on/offしたい場合は、例えば「24時間」のように充分長い時間を指定するようにする。

実際、無限にon/offしたいことは ないし、仮にそうするなら、手で換気扇のスイッチをonにしたり、タイマーの電源を切れば良い。

  • (一時的に、)指定時間(T1)onする。
    • タイマーのモードがP6(on, offの繰り返し)の場合、設定(同じ設定でも可)を書き込むとonになるので、現在の設定をそのまま書き込むことで、設定のon時間(Tonとする)のonにする。
      • XY-LJ02と違い、XY-WJ01には即座にon/offするコマンドがないので、このようにする。
    • 以下の処理でT1のonを行う。
      1. モードがP6でない場合、P6にする。 → 最大Tonのonになる。
      2. 設定の書き込み。 → 最大Tonのonになる。
      3. T1の端数(T1 mod Ton)と繰り返し中の短縮分(例: 20秒x繰り返し回数)のsleepをする。
      4. T1/Ton > 1の場合、以下をT1/Ton-1回繰り返す。
        1. Tonよりわずかに(例: 20秒)短いsleepをする。※
        2. 設定の書き込み。 → Tonのon
    • 仮に上の処理中にPCが再起動したりスリープした場合、最後のonのあとは通常のタイマー動作(on, off)に戻る。
  • (一時的に、)指定時間(T2)offする。
    • タイマーのモードがP6の場合、P7(off, onの繰り返し)に変更するとoffになるので、そうすることで設定のoff時間(Toffとする)のoffにする。
    • 以下の処理でT2のoffを行う。
      1. モードがP7でない場合、P7にする。 → 最大Toffのoffになる。
      2. 設定の書き込み。 → 最大Toffのoffになる。
      3. T2の端数(T2 mod Toff)と繰り返し中の短縮分(例: 20秒x繰り返し回数)のsleepをする。
      4. T2/Toff > 1の場合、以下をT2/Toff-1回繰り返す。
        1. Toffよりわずかに短いsleepをする。※
        2. 設定の書き込み。 → Toffのoff
    • 仮に上の処理中にPCが再起動したりスリープした場合、最後のoffのあとはP7のタイマー動作(off, on)になる。
      • これはP6と位相が異なるだけで、on/offの周期・比率は同じである。
    • 終了後にモードをP6に戻すのが望ましいが、そのままでも次回の制御時にモードを取得して適宜対応すれば良い。
  • 動作パターン(設定)を変更する。
    • 単純に、新しい設定をタイマーに書き込めば良い。
    • 設定のプリセット的なもの(例: 強, 中, 弱)を作り、それをタイマーに設定するようにすれば操作が楽になる。

※タイマーが設定でon/offするより前に それらを継続することで、換気扇のon/off動作を途切れさせないためにそうしたが、実際に使ってみると、多少途切れても実害はなく、そこまで厳密にする必要はないことが分かったので、今は、処理を簡単にするため、スリープ時間はタイマーのon/off時間(TonまたはToff)にしている。

同様に、タイマーのon/off時間の整数倍でない時間で換気扇をon/offする必要性も薄い気がしたので、今は、指定されたon/off時間(T1またはT2)をタイマーのon/off時間(TonまたはToff)の整数倍に丸めている。 (4/16 7:29)

これから(= 気が向いたら)プログラムを作るところだが、大方出来た つもりになってしまって作るのが面倒なので、こうしてブログを書いたりしているw

(3/22 16:43) その後、なぜか やる気が出たので、上の指定時間on/offするプログラムを作った。また、YAD(Yet Another Dialog)というプログラムで とっても簡単なGUIを作った。既に いくつか不満はあるが、使いながら改良して行きたい。

UXWingVentilation Fan Blower iconを使用した。

(3/23 9:30) 更に、Xfceのパネル(Windowsのタスクバーに相当)に入れて※手軽に かつダイアログの場所を取らずに使えるようにした。この部分をクリックすると、上の設定ダイアログが出て、タイマーの設定周期とは関係なく、指定した時間だけ換気扇をon/offすることができる。

※Generic monitorというウィジェットを使った。なお、パネルの空き(場所)が少ないため、CPU温度のウィジェットは止めた。タイマー(パネルの"Timer"のウィジェットのこと。制御対象のタイマーではない)が無駄に場所を食っているのだが、直せないので仕方ない。

 

(3/26 20:57) 換気扇の動作パターンも設定できるようにした。とりあえず、on/off時間を3種類(H= 強, M= 中(標準), L= 弱)から選べるようにした。On時間の割合は、H: 約40%, M: 約22%, L: 約13%としてみた。

 

それから、当初は接続を無線(Wi-Fi)にしようと思って居たが、電話線は充分細くて目立たないし、タイマーのコマンドの機能は少なく※苦労して無線にするほどのものではないので(ただ、GPIO付きのWi-Fi基板なら、タイマーの状態が取れそうだ)、上述の遠隔制御機能ができたら電話線を正式(綺麗)に敷設して、終わりにしようと思っている。

※以下のような惜しいことがある。

  • コマンドで設定の取得や変更はできるが、状態(例: 現在onなのかoffなのか)を取得できない。
    • 例えば通信を絶縁I2C(あるいは、上述のようにWi-Fi)にし、その先にシリアル通信とGPIOの可能な基板を付ければできる気はしているが、そこまでする必要性はないし、やってもon/off程度しか分からない。単なる興味だw
  • 同じシリーズのXY-LJ02(基板のみの製品)のように、即座にon/offするコマンドがあると便利だ。
    • だから、WJ01のstart/stopコマンドはLJ02でon/offになったのかも知れない。

 

タイマーのUARTコマンド・動作で分かったこと (3/26 12:34追記)

  • 現在と異なるモードを設定すると、(当然ながらそのモードになるが、)その時のリレーのon/offは そのモードの最初の状態になる(例: P6ならonになる)。また、時間のカウントはリセットされる。
  • 現在と同じモードを再設定した場合、(パラメタを再設定した場合の動作とは異なり)リレーのon/offは そのモードの最初の状態になる。
    • 時間のカウントの詳細は未確認だが、以下のような感じである。
      • On/offの状態が現在と変わる場合は時間のカウントがリセットされる? (リセットされないこともある?)
      • On/offが変わらない場合はカウントがリセットされない?
  • 上の2つにより、XY-LJ02のように、即座にリレーをon/offすることもできる(ただし、on/offされている時間は設定による)。
    • 例: P6にすればonになり、P7にすればoffになる。
  • 複数のコマンドを , で区切って一括して送れる(要するにreadコマンドの出力と同じ形式)。
    • 任意の順序・数(もちろん上限はある)のコマンドが送れる。
    • ただし、モード(Px)を指定した場合にはLP以外は無効になる。
  • UARTコマンドを実行すると、たまにタイマーの設定が壊れることがある。
    • Off時間が0("CL:0000")になってしまう。
      • この場合、タイマーが停まる。
    • 壊れる契機は不明。
      • コマンド実行後の待ち時間が短いため?
    • そのため、コマンド実行後に設定を取得し、いずれかのパラメタが"0000"になった場合は壊れたと判断して元の設定を再設定するようにした。
    • (4/4 14:20) 上に追記したように、この問題の原因はタイマーコマンドの送受信の仕方の問題だと推測している。
      • 以下に、推測した問題発生の流れを示す。
        1. [コマンド実行プログラム] 起動する。 (起動時にタイマーのttyがopenされる)
        2. [コマンド実行プログラム] コマンドをタイマーのttyに書き込む。
        3. [Linux] コマンドをタイマーに送信する。
        4. [タイマー] 結果をLinuxに送信する。
        5. [Linux] 受信した結果をタイマーにエコーバックする。 (sttyに-echoを指定していない場合)
        6. [コマンド実行プログラム] タイマーのttyから結果を取得する。
        7. [コマンド実行プログラム] 終了する。 (→ タイマーのttyがcloseされる)
        8. [タイマー] エコーバックされた文字列をコマンドとして解釈して、結果をLinuxに送信する。 (→ コマンド実行プログラムが起動していないため、破棄される。)
      • 上の5と6,7の順序が問題で、5の前に7まで実行されれば問題ないが、そうでない場合には、コマンド実行プログラムが終了するまで、受信した結果のエコーバックが行われる。→ 受信した結果の一部がタイマーに送信される。
        • readコマンドを実行する場合、結果は"P6,OP:0.0.1.0,CL:0.0.3.5,LP:----"のような文字列であるが、仮に"CL:0"までしか送信されなかったとしたら、タイマーはCLを0に設定し、問題の現象が起こるのではないか。
        • モードやパラメタの設定コマンド(例: P7)の場合、結果は"DOWN"(成功)か"FAIL"(失敗)で、どちらにしても失敗して"FAIL"が送られて来るだけなので、大きな問題はない。
          • ただ、コマンド実行プログラムが終了するまで この繰り返しが終わらないので、好ましくない。

 

PS1. タイマーの謎と危うさ

以前使ったセンサ基板(YL-40)同様、物自体は ちゃんとしているのに、メーカー名を記載せず ちゃんとしたマニュアルなしで売るのは怪し過ぎるしアンバランスだ。売る店が何も分かっていないのもおかしい。

あくまでも想像だが、ちゃんとした会社の製造発注先が横流ししているのではないか。

流通は置いておくとしても、メーカー名もマニュアルもないものを ちゃんとしたシステムに使うのはリスクが高い。使う側が自分で検証・担保するスタンス(= 「何が起こっても知らないよ」)なのだろう。

だから、僕がAC 100Vをこのタイマーに直接入れず、外部のリレーで制御するようにしたのは正解だった。いくら基板をチェックしたって、本当に安全な作りかは分からないからだ。そんなものを信用するくらいなら、自分で回路や基板を作ったほうが ずっと安心できる。

以前調べたら、このタイマーを車(後付けで、エンジン起動後に何かのボタンを押したかのようにしているようだ)や医療機器(プロト?)に使っている例があったが、結構怖い。そこまで信用していいのかと思う。(だからC国では車両火災などが良く起こる??)

(3/23 14:26) 書いてから気付いたが、このタイマーのon/off時間設定の単位は0.01秒から1分が可能だが、on/offをリレーで制御するのに0.01秒(10ms)って果たして「あり」なのか、大いに疑問だ。そんなに短い間隔で使ったら、あっという間にリレーが壊れるだろう。リレーで音楽でも演奏するつもり??w 代わりに時間の単位を付ければ良かったのに。こういう基本的なところが杜撰なようだ。

PS2. AliExpress(以下Ali)の本体も店も最低、クソ以下なので、もう絶対に使いたくない。Aliのシステムは おかしいところが多いし(例: 設定しても通知メールが来ないことが多いし、来ても英語と日本語で内容が正反対だったりする)、店は無責任極まりない(C国人の悪いイメージどおり、自分に非がないことを証拠もなしに叫ぶだけだ)。レビューの点数が いい店を選んで上のありさまだったので、全く信用できない。

僕の中での店(特に電子部品・モジュール)の信頼性の順位は以下である。

秋月, ヨドバシ >> Amazon > Amazon(マーケットプレイス), 楽天 >>>>>>>>>> Ali

もしヨドバシにあれば一番楽で安そうだし、秋月にあれば(送料は少し高いものの)、店も物も信頼できるから良い。Aliを使うくらいなら、多少高くてもAmazon(マーケットプレイス)から買うほうが、(問題があった場合の)ストレスは1/100、時間は1/10だ。

もう少ししたら、Aliのアカウントを削除するつもりだ。最初から今ひとつ信用できなかったので、クレジットカードの情報を登録しなかったのは、正解だ。

  •  1
  •  0
Keys: , , , , ,