کوډ ولټوئ

د ESP32 ټیوټوریل 35/55 - د نبات څارونکی، خاوره، تودوخه او رڼا | د SunFounder د ESP32 IoT زده کړې کټ

د ESP32 ټیوټوریل 35/55 - د نبات څارونکی، خاوره، تودوخه او رڼا | د SunFounder د ESP32 IoT زده کړې کټ

په دې ټیوټوریل کې به موږ د SunFounder ESP32 IoT زده کړې کټ څخه د ESP32 مایکروکنټرولر په کارولو سره د نبات څارونکی جوړوو. دا پروژه ډیری اجزا سره یوځای کوي ترڅو د خاورې رطوبت، تودوخه، لندبل او رڼا کچه وڅاري. د دې لارښود په پای کې به تاسو یو بشپړ فعال سیسټم ولرئ چې کولی شي د نبات پاملرنې لپاره دا مهم پیرامیټرې اداره او ښکاره کړي. د تفصیلي بصري توضیحاتو لپاره، ډاډ ترلاسه کړئ چې ویډیو وګورئ (په ویډیو کې په 00:00).

ESP32-25_plant_moitor_schematic

هارډویر تشریح شوی

په دې پروژه کې کارول شوي اصلي اجزا کې ESP32 مایکروکنټرولر، DHT11 سینسر، د خاورې رطوبت سینسر، د رڼا پورې تړلی مقاومت کونکی (LDR)، او د معلوماتو ښودلو لپاره LCD شامل دي. ESP32 د تنظیماتو دماغ په توګه کار کوي، د معلوماتو پروسس او کنټرول دندې اداره کوي. دا په جوړه شوي Wi-Fi او Bluetooth بڼه لري، چې د لیرې څارنې لپاره د اړیکو اختیارونه چمتو کوي.

photoresistor
DHT11 Module
DHT11 Module

د DHT11 سینسر تودوخه او لندبل اندازه کوي، پداسې حال کې چې د خاورې رطوبت سینسر په خاوره کې د رطوبت کچه کشف کوي. LDR د شاوخوا رڼا شدت اندازه کوي، چې د نبات د رڼا شرایطو په اړه بصیرت ورکوي. هر جز د ریښتیني وخت معلوماتو چمتو کولو سره د نبات د روغتیا ډاډ ترلاسه کولو کې مهم رول لوبوي.

ډیټاشیټ تفصیلات

جوړونکی SunFounder
د برخې شمېره DHT11
منطق/IO ولټاژ 3.3 V
د بریښنا ولټاژ 5 V
د تولید جریان (په هر چینل) 20 mA
د لوړ جریان (په هر چینل) 50 mA
د PWM فریکونسۍ لارښود N/A
د منطق داخلیدو حدونه 0.3 VCC (ټیټ)، 0.7 VCC (لوړ)
د ولټاژ کمښت / RDS(on) / سنتریشن N/A
حرارتي حدونه 0°C څخه تر 50°C
بسته بندي DIP
یادښتونه / ډولونه د DHT22 سره مطابقت لري

 

  • د هر جز لپاره د مناسب ولټاژ کچه ډاډمن کړئ (د موټرو ډرایور لپاره 5V، د سینسرونو لپاره 3.3V).
  • د تیریدونکو داخلیدو مخنیوي لپاره د فشار تڼیو لپاره د کش کولو ښکته مقاومت کونکي وکاروئ.
  • د ګډوډۍ او احتمالي شارټ سرکټ مخنیوي لپاره تارونه منظم وساتئ.
  • د زیان مخنیوي لپاره د سرکټ بریښنا کولو دمخه اړیکې تایید کړئ.
  • د DHT11 تارونه وګورئ ځکه چې دا د غلطو اړیکو په وړاندې حساس دی.

د تارونو لارښوونې

ESP32-25_plant_moitor_wiring

د اجزاو تارونو لپاره، د بریښنا او ځمکې کرښو په نښلولو سره پیل وکړئ. ESP32 باید د لیتیم بیټرۍ سره بریښنا شي، مثبت ترمینل د VCC کرښې سره او ځمکه د بریډبورډ په GND کرښې سره وصل کړئ. د DHT11 سینسر د معلوماتو پن د PIN 13 سره وصل کیږي، پداسې حال کې چې د هغې VCC د 3.3V کرښې ته او GND ځمکې ته ځي. د خاورې رطوبت سینسر په ورته ډول وصل کیږي: د هغې سیګنال پن PIN 14 ته، VCC 3.3V ته، او GND ځمکې ته.

د LDR لپاره، یو پن د 3.3V کرښې سره او بل د PIN 35 سره وصل کړئ، د LDR څخه ځمکې ته د 10k اوم مقاومت کونکي سره. د LCD ښودنه د بریښنا لپاره د 5V کرښې سره وصل کیږي او د SDA او SCL پنونه په ترتیب سره د PIN 21 او PIN 22 سره وصل کوي. په پای کې، د فشار تڼۍ د PIN 32 سره د کش کولو ښکته مقاومت کونکي سره ځمکې ته وصل کړئ، ډاډ ترلاسه کړئ چې دا کله چې فشار نه وي ټیټ او کله چې فشار وي لوړ لوستل کیږي.

د کوډ مثالونه او واک ترو

زموږ د پروګرام اصلي برخه د هر جز لپاره د پنونو تعریف سره پیل کیږي. د مثال په توګه، DHTPIN د DHT11 سینسر لپاره PIN 13 ته ټاکل شوی، پداسې حال کې چې MOIS_PIN د رطوبت سینسر لپاره PIN 14 ته ټاکل شوی. دا تنظیم د دې تعقیب ساتلو کې مرسته کوي چې کوم سینسر کوم پن سره وصل دی.


#define DHTPIN 13     // د DHT11 د معلوماتو پن سره وصل شوی پن وټاکئ
#define MOIS_PIN 14 // د خاورې رطوبت ماډل
#define LIGHT_PIN 35 // فوټوریزیسټر

بیا، موږ د setup() فنکشن دننه د DHT سینسر او LCD ښودنه پیل کوو. دا مهم دی ځکه چې دا دا اجزا د عملیاتو لپاره چمتو کوي. ډاډ ترلاسه کول چې dht.begin() ته زنګ ووهئ د DHT سینسر لپاره اړین دی ترڅو په سمه توګه ارزښتونه لوستل پیل کړي.


void setup() {
  Serial.begin(115200);
  dht.begin();  // DHT11 پیل کړئ
  lcd.init();  // LCD پیل کړئ
  lcd.backlight();
}

په loop() فنکشن کې، موږ په دوامداره توګه د تودوخې او لندبل ارزښتونه لوستلو، دوی په LCD باندې ښکاره کوو. که تڼۍ فشار شي، موټور د نباتاتو اوبو لپاره فعال کیږي. دا منطق د تڼۍ پن ډیجیټل لوستل کاروي ترڅو معلومه کړي چې موټور چالان یا بند کړي.


void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
  if (digitalRead(BUTTON) == HIGH) {
    digitalWrite(motor1A, HIGH); // د اوبو پمپ چالان کړئ
  } else {
    digitalWrite(motor1A, LOW); // د اوبو پمپ بند کړئ
  }
  delay(2000);
}

دغه کوډ جوړښت د معلوماتو او کنټرول روښانه جریان ته اجازه ورکوي، ډاډ ترلاسه کوي چې د نبات څارونکی په سمه توګه کار کوي. د نورو جزیاتو لپاره، بشپړ کوډ د مقالې لاندې بار شوی دی.

ننداره / څه تمه ولرئ

د تنظیم بشپړولو او د کوډ پورته کولو وروسته، LCD باید د تودوخې او رطوبت لوستل په بدیل ډول د لندبل او رڼا کچو سره ښکاره کړي. کله چې پش بټن فشارول شي، د اوبو پمپ باید فعال شي، نبات ته اوبه ورسوي. ډاډ ترلاسه کړئ چې ټولې اړیکې خوندي دي ترڅو د تیریدونکو انپټونو یا غلط لوستلو په څیر ستونزو څخه مخنیوی وشي (په ویډیو کې په 05:30).

په LCD او سیریل مانیټر کې ښودل شوي ارزښتونو څارنه به د سیسټم د سم فعالیت ډاډ ترلاسه کولو کې مرسته وکړي. که تاسو ستونزې سره مخ شئ، تارونه بیا وګورئ او ډاډ ترلاسه کړئ چې ټولې برخې په سمه توګه بریښنا لري.

د ویډیو وخت نښې

  • 00:00 پیل
  • 2:23 د پروژې پېژندنه
  • 4:02 د اسنادو پاڼه
  • 7:43 1-L293D د پمپ موټور چلوونکی
  • 14:30 2-د پمپ لپاره پش بټن
  • 16:35 3-DHT11 د تودوخې او رطوبت سینسر
  • 19:26 4-د لندبل سینسر
  • 21:43 5-د رڼا سینسر
  • 24:47 6-د خاورې لندبل سینسر
  • 26:01 بشپړ د نبات څارونکی Arduino کوډ
  • 29:21 ننداره

انځورونه

DHT11 Module
DHT11 Module
5V DC water pump
5V DC water pump
soil_mositure_module
soil_mositure_module
photoresistor
photoresistor
ESP32-25_plant_moitor_schematic
ESP32-25_plant_moitor_schematic
ESP32-25_plant_moitor_wiring
ESP32-25_plant_moitor_wiring
836-ESP32 Tutorial 35/55- Arduino code for plant monitor
ژبه: C++
#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN 13     // Set the pin connected to the DHT11 data pin
#define MOIS_PIN 14 // Soil mOisture module
#define LIGHT_PIN 35 // Photoresistor
#define motor1A 27 // Pump pin
#define motor2A 26 // Pump pin
#define BUTTON 32 // Button

#define DHTTYPE DHT11  // DHT 11
DHT dht(DHTPIN, DHTTYPE);

int page = 0;

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {

  Serial.begin(115200);

  // Initialize the dht11
  dht.begin();

  lcd.init();  // initialize the lcd
  lcd.backlight();
  lcd.clear();

  // initialize digital pin as an output.
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);

  pinMode(BUTTON, INPUT);
}

void loop() {

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
  float humidity = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float temperature = dht.readTemperature();

  // Check if any reads failed and exit early (to try again).
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  lcd.clear();
  // Show message per 2 second
  if ((page++) % 2) {
    // Display temperature and humidity
    lcd.setCursor(0, 0);
    lcd.print("Humi: ");
    lcd.print(humidity);
    lcd.print("%");
    lcd.setCursor(0, 1);
    lcd.print("Temp: ");
    lcd.print(temperature);
    lcd.print("\xDF");
    lcd.print("C");
  } else {
    // Display moisture and light sensor values
    lcd.setCursor(0, 0);
    lcd.print("Mois: ");
    lcd.print(analogRead(MOIS_PIN));
    lcd.setCursor(0, 1);
    lcd.print("Light: ");
    lcd.print(analogRead(LIGHT_PIN));
  }
  // Water plant while button pressed
  Serial.println(digitalRead(BUTTON));
  if (digitalRead(BUTTON) == HIGH) {
    // Turn on water pump if button is pressed
    digitalWrite(motor1A, HIGH);
    digitalWrite(motor2A, LOW);
  } else {
    // Turn off water pump if button is not pressed
    digitalWrite(motor1A, LOW);
    digitalWrite(motor2A, LOW);
  }

  delay(2000);
}

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

فایلونه📁

Fritzing فایل