投稿

6月, 2022の投稿を表示しています

UECS Piで肥料管理機を作る① 全体像

イメージ
何回かに分けてUECS Piを使った水耕栽培用肥料管理機の自作例を紹介します。 UECS Piに接続できるセンサー入門①  https://blog.ezitc.dev/2022/05/uecs-pi.html  で少し紹介したセムコーポレーションのらくらく肥料管理機ですが、水耕栽培での液肥の濃度調整を自動で行ってくれる便利なものです。しかしこれは計測部だけでも30万円程度するもので、自作派にとっては高価なものになります。 なんとかRaspberry Pi(以下、Raspi)を使って自作出来ないか挑戦してみました。ソフトウエアはUECS Piを使用しますが、プログラミングに自信のある方には自作開発できるはずです。 今回のテーマは仕組みが少し複雑になりますので、少なくとも3回(もしかしたらもっと)の記事になる予定です。 肥料管理機の要件(必要な機能) 全体の構成は下記のようになります。 自作肥料管理全体構成 機能要件をザっと上げると下記のようになります。 液肥水槽のEC値とpH値、水温を測定する。 液肥のEC値が低くなれば、肥料タンクから肥料の溶液を追加する。 pH値が下がりすぎた場合はpHアップ剤(アルカリ)、上がりすぎた場合はpHダウン剤(酸)を追加する。 肥料タンク、pHアップ剤・ダウン剤タンクの水位を検知し、少なくなったら警告を出す。 1のためには、ECセンサーとpHセンサーが必要になります。ECセンサーは、水溶液の電気伝導率をはかるもので、液肥の肥料濃度の目安になります。水温は温度補正を行う場合に使用します。温度が上がればEC値は上がり、pH値は変化率が変わります。温度変化が大きい環境では補正したほうが良いでしょう。 肥料タンクは通常2つになります。A液、B液とよく言われますが、A液は主要な栄養素(窒素、リン、カリウム)と微量栄養素の配合肥料です。B液は硝酸カルシウムです。2つに分けるのは高濃度で混ぜるとリンとカルシウムが結晶になり沈殿するからです。(これは骨ができる仕組みと同じです)なので高濃度の肥料原液は2つのタンクに分けています。ただし、配合の比率は一定のため追加する量は基本的に同じで、EC値が下がったら同時にに追加することになります。 3のpH調整の仕組みは必要に応じて使います。植物が肥料を吸収することや栽培環境によりpHが高いか低いかどちらかに傾く...

Raspberry Piを使った制御入門②

イメージ
 前回の続きです。Raspberry Piを使った自作制御ボードの説明をします。今回は安全面やキャパシティについての設計上の考慮点について書きます。 自作制御ボードの基盤イメージ(KICADの画面) 前回の基板から、外部のスイッチモジュールに接続するコネクタを追加できるように改善した物 何系列制御できるか Raspbery Pi(以下,Raspi)には電流の制約があります。1つのGPIOは16mA以下、全体で50mA以下。余裕を見て7割の32mA以下で設計しておきたいです。そのためには、GPIOからフォトリレーへの入力電力を適切にするように回路図の抵抗R1の値を決める必要があります。 抵抗R1の計算は下記のようになります。 (*1)      R1 = (Vcc-Vf)/If      VccはGPIOとGND1の電圧。つまり3.3V。      Vfはフォトカプラ両端(端子1と2)にかける電圧。データシートによると推奨は1.15V。      Ifはフォトカプラ両端(端子1と2)に流す電流、つまりGPIOに流す電流。余裕をみて 10mA とする。  したがって      R1 = (3.3-1.15)/0.01 = 215 Ω     近い値の抵抗器を選びます。 しかし、TLP22Aのデータシートでは、推奨動作条件の Ifの最小値は5mA です。その場合R1は 430Ω の計算になります。トリガLED電流(フォトリレーがオンになる電流)は3mAになってますのでまだ余裕があるはずです。実際私は別の基盤を500Ωで作成して稼働しています。Ifの値を小さくすればGPIOに流れる電流を節約できます。 (ここでは特に問題になりませんが、変換効率(*2)という要素もあって出力側の電流を多く流す場合、Ifは適切な大きさで設計しないといけません) GPIO全体の電流はIf×オンになるGPIOの数となります。このボードの設計では余裕を見て4系統にしました。Ifを5mAとしたとき4系統で最大20mAということになります。(制御ボードの大きさをコンパクトにしたほうが基板製作費が安いという理由...

Raspberry Piを使った制御入門①

イメージ
 今回は、センサー関連の記事をお休みしてRaspberry Pi(以下、Raspi)を使った電源制御の話をします。IoTでデータを集められるようになったら、データを活用してなにか自動化したいと思いますよね。Raspiから電源やスイッチが制御出来たらいろいろな自動化ができるようになります。今回はその入口の話です。 ちなみにUECS Piユーザー用にアルスプラウト株式会社からは、「Arsprout DIYキット制御ノード」が発売されています。このキットは、Unipi technology社製のUnipiという拡張ボードを使っています。これらを購入すればよいのですが、それなりの値段はしますし、自分にピッタリ合ったものが欲しい、中身を理解して自作したいという方はご一読ください。 アルスプラウト株式会社 DIYキット  https://www.arsprout.co.jp/products/diy-kit-body/ Unipi 1.1  https://www.unipi.technology/unipi-1-1-p36 自作した制御ボード 制御ボードのニーズ Raspberry PiのGPIOピン(汎用周辺入出力と訳せばいいでしょうか)を使っていろいろな機器の制御ができます。例えば温度センサーを使って温度が高くなりすぎたらファンの電源を入れるとか、朝になったらカーテンを開けるモーターを動かすとかです。音声認識をして制御することもできるかもしれません。 しかしRaspiのGPIOは3.3Vであり、電流も制限されます。基本的にオンオフの情報を伝えるのが目的で、直接モーターを動かすなどの目的には使用できません。 例えばスマート農業の世界では、 CO2を供給を制御する → 電磁バルブをDC24Vで開閉する 潅水ポンプを制御する → AC100V電源をオンオフする などです。 制御する物に合わせて別の電源を与える必要があり、それとGPIOを仲介する仕掛けが必要になります。 基本的な仕組み 今回自作した冒頭写真の基本的な仕組み(1系統分)は下記の図のようになります。GPIOのオンオフは電気的には3.3Vの電圧がかかった状態がオン、0Vの状態がオフです。これを東芝のフォトリレーTLP222Aを介してJ2コネクタから供給された電源を制御します。SW1は手動制御でオン/オ...

UECS Piに接続できるセンサー入門②

イメージ
 前回は、少し横道にそれました。今回は、温度・湿度センサーと水温センサーについて書きます。どちらもネットでたくさん記事が出ていますが、UECS Piユーザー向けとしてご紹介します。Raspberry Pi、Arduino入門の方もご一読ください。 温湿度センサーSHT-31、SHT-21 SHT-31の方が16ビットで解像度が高く、クロック周波数が1MHzで高速ですが、どちらを選んでも実用的にはあまり差はないと思います。ですが、SHT-31の方が販売数が多く、価格も安いのでSHT-21をわざわざ購入する理由はないでしょう。(SHT-21はメーカーのサイトに「新しいデザインにはお勧めしません」と書いているのでもう製造しなくなるのでしょう) I2CでSCL,SDAのピン、電源、GNDと接続しますが、I2CアドレスがSHT-21が0x40固定、SHT-31が2つの選択式です。SHT-31のチップの2番ADDR端子をGNDに接続すると0X44、VDD(電源)に接続すると0X45というように切り替え出来ます。冒頭写真のようにモジュールに組み込まれている場合はADDRがどちらに接続されているか、あるいは切り替えピンやジャンパーがあるか、モジュールの仕様を確認しなければなりません。秋月電子通商のものはADDRがモジュールのピンに配線されていますので切り替えが容易です。 また、SHT-31は電源が3.3Vでも5VでもOKですが、SHT-21は3.3Vにつながないといけません。 SHT-31データシート  https://strawberry-linux.com/pub/Sensirion_Humidity_SHT3x_DIS_Datasheet_V3_J.pdf SHT-21製品仕様  https://sensirion.com/jp/products/product-catalog/SHT21/ SHT-21、SHT-31のモジュールは、ネットで各種販売されていますので、安い物を選べます。(チップは同じものなので性能は変わらないはず) しかし、中国製のものは在庫がなくなればすぐ販売中止になります。しかもモジュールのピンの順番が違っていて困ることがあります。なので私は代表的なピン配置のものを載せられる基盤を作りました。これでモジュール選びの自由度が高くなるはずです。(笑) ...