注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!
植物モニター
このプロジェクトは、土壌の湿度が特定のしきい値以下になったときに水ポンプを起動して自動的に植物に水をやります。 さらに、LCDスクリーンに温度、湿度、土壌の湿度を表示し、ユーザーに植物の成長環境についての洞察を提供します。
必要なコンポーネント
このプロジェクトには以下のコンポーネントが必要です。
全体のキットを購入すると便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
|---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから別々に購入することもできます。
コンポーネント紹介 |
購入リンク |
|---|---|
- |
|
- |
|
- |
|
- |
配線図
回路図
コード
注釈
ファイル
08_plant_monitor.inoをelite-explorer-kit-main\fun_project\08_plant_monitorのパスから直接開くことができます。または、このコードをArduino IDEにコピーしてください。
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーを使用し、 「DHT sensor library」 と 「LiquidCrystal I2C」 を検索してインストールしてください。
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}
どのように動作するのか?
以下はコードの詳細な説明です:
ライブラリのインポートと定数/変数の定義:
Wire.h、LiquidCrystal_I2C.h、DHT.hライブラリをインポートします。 DHT11、土壌湿度センサー、水ポンプに関連するピン番号やその他のパラメータを定義します。setup():土壌湿度センサーと水ポンプに関連するピンモードを初期化します。 最初に水ポンプをオフにします。 LCDディスプレイを初期化し、バックライトを点灯させます。 DHTセンサーを起動します。
loop():DHTセンサーから湿度と温度を読み取ります。 土壌湿度センサーから土壌の湿度を読み取ります。 LCDスクリーンに温度と湿度の値を表示し、その後画面をクリアして土壌湿度の値を表示します。 土壌湿度に基づいて水ポンプを起動するかどうかを決定します。土壌湿度が500(設定可能なしきい値)以下の場合、1秒間水ポンプを起動します。