Wa Koodu

Èkọ́ ESP32 35/55 - Ohun-ọ̀gbin Monitor, ilẹ̀, ìwọ̀n-otútù àti ìmọ́lẹ̀ | SunFounder's ESP32 IoT Learning kit

Èkọ́ ESP32 35/55 - Ohun-ọ̀gbin Monitor, ilẹ̀, ìwọ̀n-otútù àti ìmọ́lẹ̀ | SunFounder's ESP32 IoT Learning kit

Nínú ẹ̀kọ́ yìí, a óò kọ́ ọ̀pá ìṣàkóso ọ̀gbìn kan nípa lílo microcontroller ESP32 láti inú SunFounder ESP32 IoT Learning Kit. Iṣẹ́ yìí darapọ̀ àwọn ẹ̀yà oríṣiríṣi láti ṣe àkíyèsí ọ̀rinrin ilẹ̀, ìwọ̀n otútù, ọ̀rinrin afẹ́fẹ́, àti ìwọ̀n ìmọ́lẹ̀. Nígbà tí o bá parí ìtọ́sọ́nà yìí, o ó ní ètò tí ó ṣiṣẹ́ pátápátá tí ó lè ṣàkóso àti ṣàfihàn àwọn ìwọ̀n pàtàkì wọ̀nyí fún ìtọ́jú ọ̀gbìn. Fún àlàyé àwòrán tó péye, rí i dájú pé o wo fídíò náà (nínú fídíò ní 00:00).

ESP32-25_plant_moitor_schematic

Àlàyé Ohun Èlò

Àwọn ẹ̀yà pàtàkì tí a lò nínú iṣẹ́ yìí ní microcontroller ESP32, sẹ́nsà DHT11, sẹ́nsà ọ̀rinrin ilẹ̀, resistor tí ó gbẹ́kẹ̀lé ìmọ́lẹ̀ (LDR), àti LCD fún ṣíṣàfihàn dátà. ESP32 ṣiṣẹ́ gẹ́gẹ́ bí ọpọlọ ètò náà, tí ó ń ṣàkóso ṣíṣe dátà àti àwọn iṣẹ́ ìṣàkóso. Ó ní Wi-Fi àti Bluetooth tí a kọ́ sínú rẹ̀, tí ó ń pèsè àwọn ọ̀nà ìsopọ̀ fún àkíyèsí láti ọ̀nà jíjìn.

photoresistor
DHT11 Module
DHT11 Module

Sẹ́nsà DHT11 ń díwọ̀n ìwọ̀n otútù àti ọ̀rinrin afẹ́fẹ́, nígbà tí sẹ́nsà ọ̀rinrin ilẹ̀ ń ṣàwárí ìpele ọ̀rinrin nínú ilẹ̀. LDR ń díwọ̀n agbára ìmọ́lẹ̀ àyíká, tí ó ń ṣààyè fún òye nípa àwọn ipò ìmọ́lẹ̀ ọ̀gbìn. Ẹ̀yà kọ̀ọ̀kan ń kó ipa pàtàkì nínú rírí i pé ọ̀gbìn náà ní ìlera nípa pípèsè dátà ní àkókò gidi.

Àwọn Àlàyé Datasheet

Olùṣe SunFounder
Nọ́mbà apá DHT11
Fóltíìjì Logic/IO 3.3 V
Fóltíìjì ìpèsè 5 V
Ìjáde lọ́wọ́lọ́wọ́ (fún ikanni kọ̀ọ̀kan) 20 mA
Ìjáde tó pọ̀jù (fún ikanni kọ̀ọ̀kan) 50 mA
Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM N/A
Àwọn ìpele ìṣàkóso ìfisí 0.3 VCC (rẹ̀lẹ̀), 0.7 VCC (ga)
Ìrẹ̀lẹ̀ fóltíìjì / RDS(on) / ìkún N/A
Àwọn ààlà ooru 0°C sí 50°C
Àpótí DIP
Àwọn àkíyèsí / àwọn ìyàtọ̀ Ó bá DHT22 mu

 

  • Rí i dájú pé àwọn ìpele fóltíìjì tó tọ́ wà fún ẹ̀yà kọ̀ọ̀kan (5V fún awakọ̀ mọ́tò, 3.3V fún àwọn sẹ́nsà).
  • Lo àwọn resistor ìfàlẹ̀ fún àwọn bọ́tìnnì títẹ̀ láti yẹ́ra fún àwọn ìfisí tí ń fòfò.
  • Jẹ́ kí àwọn okun waya mọ́ dáradára láti yẹ́ra fún ìdàrúdàpọ̀ àti àwọn ìsopọ̀ kúkúrú tó lè ṣẹlẹ̀.
  • Ṣàgbéyẹ̀wò àwọn ìsopọ̀ kí o tó fi agbára mú èyí tí ó ń ṣiṣẹ́ láti yẹ́ra fún ìbàjẹ́.
  • Ṣàgbéyẹ̀wò ìsopọ̀ DHT11 nítorí pé ó ṣe pàtàkì sí àwọn ìsopọ̀ tí kò tọ́.

Àwọn Ìtọ́sọ́nà Ìsopọ̀ Okun

ESP32-25_plant_moitor_wiring

Láti sopọ̀ àwọn ẹ̀yà náà, bẹ̀rẹ̀ nípa sísopọ̀ àwọn ìlà agbára àti ilẹ̀. ESP32 yẹ kí a fi bátírì lithium ṣe agbára rẹ̀, nípa sísopọ̀ ibi tí ó wú jáde sí ìlà VCC àti ilẹ̀ sí ìlà GND lórí breadboard. Pin dátà sẹ́nsà DHT11 sopọ̀ sí PIN 13, nígbà tí VCC rẹ̀ lọ sí ìlà 3.3V àti GND sí ilẹ̀. Sẹ́nsà ọ̀rinrin ilẹ̀ sopọ̀ lọ́nà kanna: pin ifihan rẹ̀ sí PIN 14, VCC sí 3.3V, àti GND sí ilẹ̀.

Fún LDR, sopọ̀ pin kan sí ìlà 3.3V àti èkejì sí PIN 35, pẹ̀lú resistor 10k ohm tí a sopọ̀ láti LDR sí ilẹ̀. Ìfihàn LCD sopọ̀ sí ìlà 5V fún agbára àti ń lo àwọn pin SDA àti SCL tí a sopọ̀ sí PIN 21 àti PIN 22, lẹ́sẹ̀sẹ̀. Ní ìparí, sopọ̀ bọ́tìnnì títẹ̀ sí PIN 32 pẹ̀lú resistor ìfàlẹ̀ tí a sopọ̀ sí ilẹ̀, nípa ríri i pé ó ń kà rẹ̀lẹ̀ nígbà tí a kò tẹ̀ ẹ́ àti ga nígbà tí a tẹ̀ ẹ́.

Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà

Ìpìlẹ̀ ètò wa bẹ̀rẹ̀ pẹ̀lú ìtumọ̀ àwọn pin fún ẹ̀yà kọ̀ọ̀kan. Fún àpẹẹrẹ, DHTPIN ni a yàn sí PIN 13 fún sẹ́nsà DHT11, nígbà tí MOIS_PIN ti ṣeto sí PIN 14 fún sẹ́nsà ọ̀rinrin. Ètò yìí ń ràn wá lọ́wọ́ láti mọ irú sẹ́nsà tí a sopọ̀ sí pin wo.


#define DHTPIN 13     // Ṣeto pin tí a sopọ̀ sí pin dátà DHT11
#define MOIS_PIN 14 // Module ọ̀rinrin ilẹ̀
#define LIGHT_PIN 35 // Photoresistor

Ní ìgbà kejì, a ń bẹ̀rẹ̀ sẹ́nsà DHT àti ìfihàn LCD nínú iṣẹ́ setup(). Èyí ṣe pàtàkì nítorí pé ó ń múra àwọn ẹ̀yà wọ̀nyí sílẹ̀ fún ìṣiṣẹ́. Rí i dájú pé o pe dht.begin() jẹ́ ohun pàtàkì fún sẹ́nsà DHT láti bẹ̀rẹ̀ kíkà àwọn iye náà dáradára.


void setup() {
  Serial.begin(115200);
  dht.begin();  // Bẹ̀rẹ̀ DHT11
  lcd.init();  // Bẹ̀rẹ̀ LCD
  lcd.backlight();
}

Nínú iṣẹ́ loop(), a ń kà àwọn iye ìwọ̀n otútù àti ọ̀rinrin afẹ́fẹ́ lọ́wọ́lọ́wọ́, tí a ń ṣàfihàn wọn lórí LCD. Bí a bá tẹ̀ bọ́tìnnì náà, mọ́tò náà yóò ṣiṣẹ́ láti fun àwọn ọ̀gbìn ní omi. Ètò yìí ń lo kíkà oní nọ́mbà ti pin bọ́tìnnì láti pinnu bóyá láti mú mọ́tò ṣiṣẹ́ tàbí pa á.


void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
  if (digitalRead(BUTTON) == HIGH) {
    digitalWrite(motor1A, HIGH); // Mú pọ̀ǹpù omi ṣiṣẹ́
  } else {
    digitalWrite(motor1A, LOW); // Pa pọ̀ǹpù omi
  }
  delay(2000);
}

Ìtòkasí kódì yìí gba fún ṣíṣàn dáta àti ìṣàkóso kedere, tí ó ń dáni ní ìdánilójú pé abojuto ohun ọ̀gbìn náà ń ṣiṣẹ́ dáradára. Fún àwọn àlàyé síwájú sí i, kódì kíkún wà ní ìsàlẹ̀ àpilẹ̀kọ náà.

Ìfihàn / Ohun Tí Ó Yẹ Kí O Rí

Nígbà tí o bá parí ìtòkalẹ̀ náà tí o sì gbé kódì náà sílẹ̀, LCD yẹ kí ó fi ìwọ̀n ìgbóná àti ọ̀rinrin hàn ní àtọ̀wàtọ̀wà pẹ̀lú ìpele ọ̀rinrin ilẹ̀ àti ìmọ́lẹ̀. Nígbà tí a bá tẹ bọ́tìnnì náà, pọ̀ǹpù omi yẹ kí ó ṣiṣẹ́, tí yóò sì fi omi ránṣẹ́ sí ohun ọ̀gbìn náà. Ríi dájú pé gbogbo àwọn ìsopọ̀ múná láti yẹra fún àwọn ìṣòro bíi ìfidánílọ́wọ́ tàbí àwọn ìwọ̀n tí kò tọ́ (nínú fídíò ní 05:30).

Ṣíṣe abojuto àwọn iye tí a fihàn lórí LCD àti mọ́nitọ̀ serial yóò ràn wá lọ́wọ́ láti ríi dájú pé ètò náà ń ṣiṣẹ́ dáradára. Bí o bá pàdé àwọn ìṣòro, ṣàyẹ̀wò àwọn ìsopọ̀ lẹ́ẹ̀mejì kí o sì ríi dájú pé gbogbo àwọn ẹ̀yà ní agbára tí ó tọ́.

Àwọn Àsìkò Fídíò

  • 00:00 Ìbẹ̀rẹ̀
  • 2:23 Ìfihàn Iṣẹ́-ọwọ́
  • 4:02 Ojú-ewé Docs
  • 7:43 1-L293D Ẹ̀yà ìwakọ̀ mótò Pọ̀ǹpù
  • 14:30 2-Bọ́tìnnì ìtẹ̀ fún Pọ̀ǹpù
  • 16:35 3-DHT11 Sẹ́nsà Ìgbóná àti Ọ̀rinrin
  • 19:26 4-Sẹ́nsà Ọ̀rinrin Ilẹ̀
  • 21:43 5-Sẹ́nsà Ìmọ́lẹ̀
  • 24:47 6-Sẹ́nsà Ọ̀rinrin Ilẹ̀
  • 26:01 Kódì Abojuto Ohun Ọ̀gbìn Arduino Kíkún
  • 29:21 Ìfihàn

Aworan

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
Ede: 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);
}

Ohun ti o le nilo

Orisun & itọkasi

Fáìlìs📁

Fayile Fritzing