注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!

植物モニター

このプロジェクトは、土壌の湿度が特定のしきい値以下になったときに水ポンプを起動して自動的に植物に水をやります。 さらに、LCDスクリーンに温度、湿度、土壌の湿度を表示し、ユーザーに植物の成長環境についての洞察を提供します。

必要なコンポーネント

このプロジェクトには以下のコンポーネントが必要です。

全体のキットを購入すると便利です。こちらがリンクです:

名称

このキットのアイテム数

リンク

Elite Explorer Kit

300+

Elite Explorer Kit

以下のリンクから別々に購入することもできます。

コンポーネント紹介

購入リンク

Arduino Uno R4 WiFi

-

ブレッドボード

購入

ジャンパーワイヤー

購入

I2C LCD1602

購入

DCウォーターポンプ

-

TA6586 - モータードライバーIC

-

土壌湿度モジュール

購入

湿温度センサーモジュール

購入

電源モジュール

-

配線図

../_images/08_plant_monitor_bb.png

回路図

../_images/08_plant_monitor_schematic.png

コード

注釈

  • ファイル 08_plant_monitor.inoelite-explorer-kit-main\fun_project\08_plant_monitor のパスから直接開くことができます。

  • または、このコードをArduino IDEにコピーしてください。

注釈

ライブラリをインストールするには、Arduinoライブラリマネージャーを使用し、 「DHT sensor library」「LiquidCrystal I2C」 を検索してインストールしてください。

08_plant_monitor.ino
 1/*
 2  Automatic watering system based on soil moisture, temperature, and humidity readings.
 3
 4  Board: Arduino Uno R4 
 5  Component: I2C LCD1602, DC Water Pump with TA6586 Motor Driver Chip, Soil Moisture Module, and Humiture Sensor Module
 6  Library: https://www.arduino.cc/reference/en/libraries/liquidcrystal-i2c/ (LiquidCrystal I2C by Frank de Brabander)
 7           https://github.com/adafruit/DHT-sensor-library  (DHT sensor library by Adafruit)
 8*/
 9
10
11#include <Wire.h>
12#include <LiquidCrystal_I2C.h>
13#include <DHT.h>
14
15#define DHTPIN 4              // Digital pin for DHT11 sensor
16#define DHTTYPE DHT11         // DHT11 sensor type
17#define SOIL_MOISTURE_PIN A0  // Analog pin for soil moisture sensor
18#define WATER_PUMP_PIN 8      // Digital pin for water pump
19
20
21// Initialize sensor and LCD objects
22DHT dht(DHTPIN, DHTTYPE);
23LiquidCrystal_I2C lcd(0x27, 16, 2);
24
25void setup() {
26  // Set pin modes
27  pinMode(SOIL_MOISTURE_PIN, INPUT);
28  pinMode(WATER_PUMP_PIN, OUTPUT);
29
30  // Initialize water pump as off
31  digitalWrite(WATER_PUMP_PIN, LOW);
32
33  // Initialize LCD and backlight
34  lcd.init();
35  lcd.backlight();
36
37  // Start DHT sensor
38  dht.begin();
39}
40
41void loop() {
42  // Read humidity and temperature from DHT11
43  float humidity = dht.readHumidity();
44  float temperature = dht.readTemperature();
45
46  // Read soil moisture level
47  int soilMoisture = analogRead(SOIL_MOISTURE_PIN);
48
49  // Display temperature and humidity on LCD
50  lcd.clear();
51  lcd.setCursor(0, 0);
52  lcd.print("Temp: " + String(temperature) + "C");
53  lcd.setCursor(0, 1);
54  lcd.print("Humidity: " + String(humidity) + "%");
55
56  delay(2000);
57
58  // Display soil moisture on LCD
59  lcd.clear();
60  lcd.setCursor(0, 0);
61  lcd.print("Soil Moisture: ");
62  lcd.setCursor(0, 1);
63  lcd.print(String(soilMoisture));
64
65  // Activate water pump if soil is dry
66  if (soilMoisture > 580) {
67    digitalWrite(WATER_PUMP_PIN, HIGH);  // Turn on water pump
68    delay(1000);                         // Pump water for 1 second
69    digitalWrite(WATER_PUMP_PIN, LOW);   // Turn off water pump
70  }
71
72  delay(2000);  // Wait before next loop iteration
73}

どのように動作するのか?

以下はコードの詳細な説明です:

  1. ライブラリのインポートと定数/変数の定義:

    Wire.hLiquidCrystal_I2C.hDHT.h ライブラリをインポートします。 DHT11、土壌湿度センサー、水ポンプに関連するピン番号やその他のパラメータを定義します。

  2. setup()

    土壌湿度センサーと水ポンプに関連するピンモードを初期化します。 最初に水ポンプをオフにします。 LCDディスプレイを初期化し、バックライトを点灯させます。 DHTセンサーを起動します。

  3. loop()

    DHTセンサーから湿度と温度を読み取ります。 土壌湿度センサーから土壌の湿度を読み取ります。 LCDスクリーンに温度と湿度の値を表示し、その後画面をクリアして土壌湿度の値を表示します。 土壌湿度に基づいて水ポンプを起動するかどうかを決定します。土壌湿度が500(設定可能なしきい値)以下の場合、1秒間水ポンプを起動します。