工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

ソーラー発電式自動水やり器を作る(3) --- 筐体の設計、製作 ---

概要

前回に続き、回路基板を入れる筐体と水瓶を製作した。


背景と目的

前回に続き、回路基板を入れる筐体と水瓶を設計、製作する。


詳細

1.回路基板を収納する筐体

1.1 満たすべき要件


1.2 物の調達

やはり100均のプラスチックケースなどがちょうどいいだろうと思い、探してみた結果、セリアでちょうどよさそうなものが見つかった。ただし、防水構造ではないので、適宜防水加工をする。それと、材質的にも屋外使用はちょっと厳しいかも?と思うのでできるだけ日陰になるように設置する。


1.3 製作

ベースボードをねじで固定し、蓋と本体の隙間はエプトシーラーで埋めたが、ちょっと不安はある。使い始めてからしばらく様子を見る必要はありそう。本体裏面のネジ穴から水の侵入が考えられるので、エプトシーラーを使った実績のある方法を用いて、穴をふさいだ。(写真撮り忘れた) なお、筐体の外に設置される土壌水分センサ、ポンプ、水位センサなどの配線は、筐体下側に穴をあけて通してあるので、水が上からかかる分には大きな問題はない。


2.水瓶

2.1 満たすべき要件

  • 2L程度の水が入ること
  • 水位センサとポンプ装着のための加工がしやすいこと
  • お金をかけずに


2.2 調達

これまた100均の力を借りた。こちらはダイソーのいわゆる麦茶用ボトルのようなもの。バケツみたいなものもあったが、四角いほうが筐体とドッキングしやすいのでこちらを選んだ。


2.3 製作

ボトル内を撮影したためちょっとわかりにくいが、ボトル内に水位センサとポンプをねじで固定。これもネジ穴からの水漏れを防止するため、エプトシーラーを使用。水を満タンに入れて放っておいたが全く漏れる気配がないのでOK。


3.全体

最後に筐体とボトルを合体させて完了。これでハードウェアは完成。


まとめと今後の課題

筐体と水瓶を設計、製作することができた。次回は、マイコンのソフトを作って完成にこぎつけたい。


ソーラーパネルで発電してリチウムイオン電池を充電する

概要

ソーラーパネルで発電してリチウムイオン電池を充電するための回路を作成し、動作を確認した。


背景と目的

最近作成している自動水やり器は、ソーラーパネルで発電した電力を電源として利用すること考えている。そこで、ソーラーパネルで発電し、それを一時的にリチウムイオン電池にためて、利用するところまでの一連の回路を組んでみる。


詳細

1.構成

ソーラーパネルで発電した電力をそのまま使用しようとすると、日照状態によって電圧が変動するのは言うまでもないので、一時的に電池に貯めてそれを取り出す形にしたい。

以前、ソーラーパネル+エネループのシステムを試したのだが、残念ながら比較的短い期間(1か月くらい?)でメモリ効果のようなもの?が発生し、充電できなくなってしまった。これは、満充電でも空でもない中途半端な状態を行ったり来たりする毎日の充放電が、ニッケル水素電池の特性に合わない使い方だったということだ。手持ち品のエネループが生かせると思って電池材料費をケチったのが失敗の元だった。

そこで、今回は中途半端な繰り返しの充放電でも問題が起きにくいリチウムイオン電池を用いることにする。ただし、リチウムイオン電池はよく言われるように使い方を間違えると、ニッケル水素電池よりも危険であるため、注意が必要だ。


2.電池の選定

電池は、自動水やり器で想定される消費電力は大雑把に見積もって2,3mAhなので、(数時間に一度、30秒間程度起動して水やりする、という動作を繰り返す)1日放置してもせいぜい60mAh。5日晴れなかったとして300mAなので、その程度があれば十分だろう。いろいろ探したところ、千石電商で、400mAhという手ごろなものが見つかったので、使用することにした。

www.sengoku.co.jp


2.リチウムイオン電池充電制御IC

リチウムイオン電池は過充電してしまうと危険なため、ここでは迷わず専用の充電制御ICを使用する。秋月電子で50円と非常に手ごろなものがあった。マニュアルをざっと読むと、最大電流値は外付け抵抗で決めることができ、リチウムイオン電池の電圧を高精度にモニタして満充電状態を検出し、充電を自動で止めてくれるとのことだ。ネット上にもたくさんの使用例があるので、安心だ。

akizukidenshi.com


3.回路の製作

3.1 MCP73831周りの実装

MCP73831を使った回路をさっそく製作した。ICのマニュアルに従って各定数を設定。PROG端子についている抵抗10kΩは、充電電流を最大100mAに制限するための設定。STATにつないであるLEDは充電中に点灯して知らせてくれる。入力側のENELOOP+/ENELOOP-は、エネループとは関係なく、3.2の回路の出力を繋ぐ関係でこういう名前になっている。

2021/04/11 間違っていたので差し替えた


3.2 ソーラーパネルからの供給部

今回使用するソーラーパネルは、以前の記事で使用しているものを流用するのだが、

  • 最大出力時電圧/電流 約9V/約340mA

というスペックなので、上記のMCP73831の最大入力電圧よりも高く、直接つなげない。そのため、以前作成したエネループ充電用の回路がちょうど使えそうなので使う。充電用回路といっても一定以上の電圧/電流が出力されないようにしているだけ。この回路は約5.6V/約100mAに制限しているので、3.1の回路につなぐことができる電圧で、しかも必要な電流が供給できる。回路図は以下。負荷としてエネループではなく、3.1で作成した回路を接続することになる。


4.動作確認

4.1 通常の電源でテスト

ソーラーパネルを繋がず、通常の直流安定化電源を使用して充電してみたところ、最大100mAに制限されて充電された。リチウムイオン電池の電圧が4.2V程度に近づくと徐々に電流が減ってきて、約4.2Vを超えることはなかった。動きが理解できた。

4.2 ソーラーパネルを繋いでテスト

晴れた日に接続してみた。4.1と同様にしばらくはずっと充電ステータスLEDが点灯し、リチウムイオン電池の電圧が4.2V程度になるとLEDが消灯した。ソーラーパネルからでも問題なく充電できている。


まとめと今後の課題

ソーラーパネルで発電してリチウムイオン電池を充電するための回路を作成し、動作を確認できた。自動水やり器の電源として使用できそうだ。


tarでアーカイブを作成するときに気を付けること(展開先のパーミッションを変化させてしまわないため)

先日、tarでアーカイブを作成し、あるディレクトリに展開したところ、展開したディレクトリのパーミッションが変わってしまった。このせいで、展開先ディレクトリにある他のファイルを参照していた他のプログラムがエラーを起こしてしまい、ひどい目に遭った。なぜ展開先ディレクトリが影響を受けてしまうのかとイライラしたが、結局tarでアーカイブを作成するときのやり方がまずかった。今後ミスしないようにメモしておく。


アーカイブ

hoge/
  abc.tgz --- 作成されたアーカイブ
  src/
    a.txt
    b.txt
    :

srcディレクトリ内のファイルたちをアーカイブするつもりで、以下コマンドを実行。

cd src
tar czvf ../abc.tgz ./

展開先

dest/
   abc.tgz --- アーカイブファイル
   abc/
     a.txt
     :

destというディレクトリにabc.tgzをコピーし、tarで展開したら、destのパーミッションが755に変わってしまった。

cd dest
tar xzvf abc.tgz .


原因

自分としては、srcディレクトリ中身すべてをアーカイブ対象としたつもりが、srcディレクトリが対象になってしまっていたこと。そのせいで、展開先ディレクトリdestにsrcが展開されてしまうために起こる。


正しい方法

src内のファイルたちをちゃんと指定する。つまり、./ではなく、./*。

cd src
tar czvf ../abc.tgz ./*

展開時には、

cd dest
tar xzvf abc.tgz -C ./

とする。