rsp

電子工作に入門して加湿器を制御した

単純機能の加湿器をマイコンで制御した

解決したい問題

  • 加湿器を使っているが、水位センサしかなく湿度を検知しないため、過剰に加湿されて面倒
    • 朝起きるとモクモクに加湿されて窓が結露だらけになった
    • 起きてても湿度計を見てスイッチを切るとか入れ忘れるとか面倒
    • 湿度上がりすぎたから換気するって色々と無駄

この加湿器は、機械的な電源スイッチ・水位センサだけの単純な系なので、電源をオンオフすればかんたんに制御できそう

→ 「よし。マイコンを使って制御してやろう。」

前提

  • ソフトウェア技術者
  • マイコンは何も分からん
    • Arduino は使ったことあるけど
  • ユニバーサル基板へのちょっとした実装は1回だけやったことがある
    • 道具は手元にない
  • プリント基板を発注してみたい (結局できてない)
  • 道楽 (マイコンいじりがしたいだけ) なので、既製品があるとか加湿器を買い換えるとかは視野にない

ものあつめ

器具・工具がほとんどないので秋葉原に買い出し & Amazon でポチる

買った工具類

  • はんだごて
    • 温度調整つき 70W
  • はんだごて台
  • 糸はんだ ヤニ入
  • はんだ吸収線
  • ニッパ
  • 圧着+ケーブルストリッパ工具

買ったものパーツ類

  • 抵抗器セット
  • ジャンプワイヤセット
  • スズメッキ線
  • MPLAB SNAP (プログラマ/インサーキットデバッガ)
  • ユニバーサル基板
  • DC ジャック DIP 化キット
    • ブレッドボード上に導く用
  • AC アダプタ (5V1A, 5V2A)
  • PIC16F18325
    • I2C が組み込まれていれば何でも良かった
    • ピン少なくて後悔しないように & 新しめのやつを選んだ
  • 14pin IC ソケット
  • 秋月ソリッドステートリレーキット
    • と トライアックにつけるヒートシンク
    • 加湿器が 270W なので、それを入り切りできるもの
  • 絶縁圧着端子
  • ピンヘッダ・ハウジングとコンタクト
  • ヒューズボックスとヒューズ
  • ターミナル・電源用ケーブル・プラグとレセプタクル
  • 温湿度センサDHT20
  • プラスチック箱
  • M3ナット入りシールとM3ネジのキット

発掘したもの

Hello World

ブレッドボードで L チカをする。

MPLAB X IDE を持ってきて、ピンの出力設定や HIGH/LOW の出力方法を首っ引きした。

( iwamoto さんのサイト を大いに参考にしました、本当にありがとうございます)

f:id:nor_isio:20220114221939p:plain

温湿度センサと I2C 通信する

ブレッドボードで I2C する。

この PIC には、組み込み I2C 機能が入っている (MSSP)。それを叩く方法を首っ引きした。

配線としては L チカの回路の、LED 以外のピンに温湿度センサをつなげるだけ (赤と黄色のジャンパワイヤ)

f:id:nor_isio:20220114223223p:plain

センサのデータシートを読んで

のコードを書く。

ケーブル処理・基板実装

f:id:nor_isio:20220114225958p:plain

  • iPod touch 用充電器 (5V1A) の被覆を剥いてコンタクトに圧着し 2.54mm メスハウジングに格納
  • 電源用ケーブルをプラグとレセプタクルに接続
  • 電源用ケーブルの途中を切って圧着端子で成端しヒューズボックスに接続
  • PIC、温度センサ、状態表示 LED、電源ヘッダ、リレー制御信号ヘッダ、ICD 用ヘッダをユニバーサル基板上に配置配線
  • ソリッドステートリレーキットに素子・信号ヘッダ・ターミナルを配置

えいやっと配線していったので回路図がない。

f:id:nor_isio:20220115105549j:plain

左端のターミナルとリレーは試作段階にて、マイコンから直接駆動できない (コイル電流が大きい) ことがわかり (トランジスタを買いに行くのが大変だったので) 諦めた跡。

ピンヘッダにより PICkit や MPLAB SNAP で回路内プログラミング・デバッグが可能。

f:id:nor_isio:20220115110151j:plain

ソフトウェア作成

I2C 通信実験のソフトをちょっと変更し、

  • 5 秒に 1 回センサを起動し、温度測定
  • 湿度 < 40.0f のとき LED と信号をオン、それ以外はオフにする

というソフトウェアを作成。 回路内デバッガが非常に役に立つ。 あと LED は大事。

運用してみた

いちばん問題の就寝時。 寝る前にタンクをフルに (2.5L) して、制御ありで一晩寝たところ、水は 10% 程度しか減っていなかった。

過剰加湿も乾燥もせず (40% 近くに維持)、いい感じにすることができた。

起きている間も、加湿しすぎたら止まり、結果として給水までの間隔を長くしてくれている。

感想

どんなパーツを組み合わせればやりたいことを実現できるのか、秋葉原をぐるぐるしながら考えるのがかなり楽しい。

家に帰ってから足りないパーツが出てくると大層がっかりする。

電子工作のうち「回路図を考える・回路を作る」のは3割程度で、あとの6割や7割は「ケースを選び加工し、うまいこと回路を収め固定する」が占めていると思えた。そのなかに端子を作ることも含む。やはり基板むき出しでは日常使用に供せない。

改良点

  • 制御周期 5 秒は細かすぎる
  • 箱に入れたが蓋が閉まらない
    • 5V 電源やリレー被制御系が通る穴を加工していないため
      • ちゃんと箱に端子があるとかっこいいよね
    • トライアックのヒートシンクがぶつかるため
    • それら要因を廃して蓋を閉めたら閉めたで、部屋の温湿度が検出できないのでスリット等必要
    • というわけで加工器具が足りない
  • トライアック用ヒートシンクは結束バンドで巻きつけただけ、の改善
    • M3 ネジ&ナット + 熱伝導グリス or パッド?
  • 温湿度センサの計測結果を表示したい
    • 7 セグ?
    • 今回の回路実装だけでかなり大変だったので、規模が大きくなると手に負えなさそう
  • プリント基板にしたい
  • 単基板にしたい
    • 別基板と接続するのは、フットプリント的にも不利だし面倒
  • 加湿器内のリレーを乗っ取って湿度フィードバック機能を追加する、という侵襲型アプローチも面白いかも?

あるとよいと思うアイテムなど