水耕栽培
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
水耕栽培は、土壌のない農業の一種です。土壌は時間とともにその栄養素と肥沃度を失うので、水耕栽培を使用することを避けるために。植物の成長と栄養を改善し、制御することもできます。一年の特定の時期にのみ成長し、一年中成長できる植物。また、植物の成長、土壌の栄養レベル、土壌に含まれる水分、受け取った光の量を監視することもできます。
はじめに
このプロジェクトは実際のシステムのモデルです。ここでは、土壌をカカオパウダーに置き換えています。通常の土壌と比較して、カカオ粉末に含まれる水分と栄養分を簡単に制御できます。このプロジェクトでは、植物の成長に関する3つの基準、つまり水分、光、温度のみを制御しています。私たちのモデルでは、レタス植物の仕様を使用しています
- 温度:摂氏25〜30度。
- 湿度:50%から80%。
- 光の強度:毎秒250フォトン
ライトコントロール
私たちのモデルでは、直列および並列の3mmLED接続のアレイを使用しています。 16個のLED、8個の赤色LED、8個の青色LEDを使用しました。直列の4つのLEDのアレイには、12Vの電源が必要です。そのため、12Vの外部電源を使用しています。 Arduinoを使用してLEDを制御するために、オプトカプラーIC4N35を使用しています。光強度の情報については、LDRを備えた光センサーを使用しています。パフォーマンスを向上させるために、フォトダイオードセンサーを取り付けることができます。 Arduinoのコードを使用して、光センサーからの読み取り値を1秒あたりの光子に変換しました。
<図><図>
温度制御
植物は成長のために適切な温度を必要とします。そのため、2つのファンと1つの白熱電球を使用してモデルの温度を制御しています。
<図><図>
周囲の温度を感知するために、ICLM35を使用しています。温度が検知され、データがArduinoに渡されます。温度が必要な値を超えると、周囲を冷却する必要があるため、冷却ファンがオンになります。温度が必要な値を下回ると、周囲の温度を上げる必要があるため、加熱ファンと白熱電球のスイッチがオンになります。電球は別の箱に入れて屋外に保管されているため、その光の強さは光センサーに影響を与えません。電球がボックスを加熱し、加熱ファンが熱気を内部に送ります。
<図>両方のファンはモータードライブを使用して制御され、白熱電球はリレーを使用して制御されます。
湿度管理
カカオパウダーには、植物が光合成を行うために適切な量の水粒子が含まれている必要があります。土壌の湿度を感知するために、DHT11センサーを使用しています。このセンサーは温度と湿度の両方を感知できますが、私たちは湿度感知にのみ使用しました。
<図>ココアケーキの水分量を増やすために、ウォーターポンプをパイプに接続し、パイプにいくつかの穴を開けました。 (滴下灌漑の概念)。
注意点。
- DHT11センサーの応答時間は1Hzであるため、各読み取り間の時間遅延は少なくとも1秒である必要があります。
- 4つの直列に接続されたLEDの列には、12V電源が必要です。
- 230VをPCBまたはブレッドボードに接続する際の安全性を維持し、裸線を電気テープで絶縁します。
- フォトカプラに直接信号を送らないでください。それらの間に抵抗を接続してください。
- 使用するブラシレスDCファンは一方向なので、それに応じて取り付けます。
コード
- 水耕栽培
水耕栽培 Arduino
#includeint pinDHT11 =41; int CoolingFan =50; int HeatingFan =48; int Heater =3; int LEDrow1 =25; int LEDrow2 =27; int LEDrow3 =29; int LEDrow4 =31; int pump =31; SimpleDHT11 dht11; void setup(){Serial.begin(115200); pinMode(coolingFan、OUTPUT); pinMode(HeatingFan、OUTPUT); pinMode(ヒーター、出力); pinMode(LEDrow1、OUTPUT); pinMode(LEDrow2、OUTPUT); pinMode(LEDrow3、OUTPUT); pinMode(LEDrow4、OUTPUT); pinMode(pump、OUTPUT);} void loop(){temperature();ライト();湿度();} voidtemperature(){int value =analogRead(A10);フロートボルト=(値/1024.0)*5.0;フロート温度=ボルト* 100.0; Serial.print( "temp ="); Serial.println(temp); delay(1000); if(temp <25){digitalWrite(heater、LOW); digitalWrite(HeatingFan、HIGH); } else {digitalWrite(heater、HIGH); digitalWrite(HeatingFan、LOW); } if(temp> 30){digitalWrite(coolingFan、HIGH); } else {digitalWrite(coolingFan、LOW); }} void light(){float ldrdata =analogRead(A8); floatresistanceVolt =(1024-ldrdata)/1024.0*5.0;float ldrVolt =5.0-resistorVolt; float ldrResistance =ldrVolt / repositoryVolt * 5000.0; float lux =(12518931) *(pow(ldrResistance、-1.405)); float photons =lux * 0.019; // Serial.println(photons); delay(1000); if(photons <50){digitalWrite(LEDrow1、HIGH); digitalWrite(LEDrow2、HIGH); digitalWrite(LEDrow3、HIGH); digitalWrite(LEDrow1、HIGH);} if(photons> 100){digitalWrite(LEDrow1、LOW); digitalWrite(LEDrow2、LOW); digitalWrite(LEDrow3、LOW); digitalWrite(LEDrow4、LOW);}} void hybrid(){//動作を開始... //Serial.println("================================="); //Serial.println("Sample DHT11 ... "); //サンプルなしで読み取ります。バイト温度=0;バイト湿度=0; int err =SimpleDHTErrSuccess; if((err =dht11.read(pinDHT11、&temperature、&humidity、NULL))!=SimpleDHTErrSuccess){// Serial.print( "Read DHT11 failed、err ="); Serial.println(err); delay(1000);戻る; } inthumid =(int)humidity; //Serial.print("Sample OK: "); // Serial.print(humid); Serial.println( "H"); // DHT11のサンプリングレートは1HZです。 delay(2000); if(humid <85){digitalWrite(pump、HIGH); digitalWrite(coolingFan、LOW); } if(humid> 94){digitalWrite(coolingFan、HIGH); digitalWrite(pump、LOW);}}
回路図
製造プロセス