今日も梅雨らしい天気ですが、涼しいのが救いです。
昨日の続きの除湿器のハッキングです。制御パネルにあるLEDの点灯/消灯をArduinoにフィードバックするためのレベル変換ですが、ググってairvariableさんのFETで異なる電圧のインタフェースを見つけ、手元にあったBSS138で試したらうまく行きました。感謝。
ユニバーサル基板の切れ端にFETを載せて(抵抗は裏に載ってます)、ブレッドボードに挿せるようにピンヘッダを付けてます。電源LEDと連続運転LEDの2つをモニタするので、2回路分載せています。+5Vは共通でよかったです。組んでから気づきました。
除湿器の制御基板と操作パネル基板から、以下の8本の電源・信号を取り出しています。+5V電源は制御基板に載っていた+5Vの三端子レギュレータから引っ張っています。
・電源スイッチ 1本(他方はGND)
・運転切り替えスイッチ 1本(他方はGND)
・電源モニタLED信号 1本
・連続運転モニタLED信号 1本
・圧電ブザー接続/切断 2本
・+5V 1本
・GND 1本
除湿器のプラグをコンセントを挿すと除湿器本体とArduinoの電源が入ります。除湿機本体の電源が入るのは元々の仕様。そこから5Vを取り出しているのでArduinoが起動します。Arduinoは起動すると現在の湿度を調べ、設定湿度より高かったら運転開始シーケンスに入ります。運転開始は、圧電ブザーを切断し、電源スイッチの代わりのリレーをオン/オフし、さらに運転切り替えスイッチの代わりにリレーをオン/オフし、圧電ブザーを接続に戻します。このとき、LEDの点灯状態も確認しています。
運転停止も同様に、圧電ブザーを切断し、電源スイッチの代わりのリレーをオン/オフし、圧電ブザーを元に戻します。圧電ブザーは人が除湿器本体の操作ボタンを押したときには鳴るように、通常は接続状態にしておきます。リレーのb接点があれば電力を抑えられるのですが、使ったリードリレーにはないので通常onしています。約10mA程度なので許容範囲かと思います。
なお、湿度の測定は、初回後は10秒毎に行い、最大10回の移動平均で求めています。また、電源を入れてからコンプレッサが動くまで1~2分のタイムラグがあるので、頻繁なオン/オフは行わないようにしています。具体的には一度運転を開始したら最低5分間は運転し続けます。その間にたとえ湿度が設定湿度より下がっても運転を続けます。逆に停止後も5分間は運転を再開しません。
湿度の設定は、タクトスイッチを押すたびに70%,65%,60%,55%,50%と下がり、50%の次は70%に戻ります。この設定湿度はArduinoのEEPROMに記憶するのでコンセントを抜いても保持します。
湿度は運転中も設定できます。運転停止中に湿度設定を行い、現在の湿度より低くなると即座に運転を開始します(前述の5分待ちはなし)。逆も同様に、運転中に湿度設定を行い現在の湿度より高い湿度が設定されると即座に運転を停止します。
全景はこんな感じ。除湿器のたばこセンサの穴からケーブルを引っ張り出して、ブレッドボードに繋いでします。しばらくこの状態で使ってみて、問題がなければユニバーサル基板に載せてケースに入れようと思っています。ケースに入れたときに湿度センサーの反応がどうなるか気になるところです。穴を開けて空気の流れができるようにしておかないと反応が鈍くなりそう。どの程度にするか悩みどころですが、まあ、エイヤーと決めるしかないです。
まだ未完成ですが、なんとか梅雨の季節に間に合ってよかったです。
0 件のコメント:
コメントを投稿