Search Code

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 மற்றும் புளூடூத் அம்சங்களைக் கொண்டுள்ளது, இது தொலை கண்காணிப்புக்கான இணைப்பு விருப்பங்களை வழங்குகிறது.

ஒளி-சார்ந்த மின்தடை
DHT11 Module
DHT11 தொகுதி

DHT11 சென்சார் வெப்பநிலை மற்றும் ஈரப்பதத்தை அளவிடுகிறது, அதே நேரத்தில் மண் ஈரப்பத சென்சார் மண்ணில் உள்ள ஈரப்பத அளவைக் கண்டறிகிறது. LDR சுற்றுப்புற ஒளி தீவிரத்தை அளவிடுகிறது, இது தாவரத்தின் விளக்கு நிலைமைகள் பற்றிய நுண்ணறிவுகளை அனுமதிக்கிறது. ஒவ்வொரு கூறும் நிகழ்நேர தரவை வழங்குவதன் மூலம் தாவரத்தின் ஆரோக்கியத்தை உறுதி செய்வதில் முக்கிய பங்கு வகிக்கிறது.

தரவுத்தாள் விவரங்கள்

உற்பத்தியாளர் SunFounder
பகுதி எண் DHT11
லாஜிக்/IO மின்னழுத்தம் 3.3 V
வழங்கல் மின்னழுத்தம் 5 V
வெளியீட்டு மின்னோட்டம் (ஒரு சேனலுக்கு) 20 mA
உச்ச மின்னோட்டம் (ஒரு சேனலுக்கு) 50 mA
PWM அதிர்வெண் வழிகாட்டுதல் பொருந்தாது
உள்ளீட்டு லாஜிக் வரம்புகள் 0.3 VCC (குறைந்த), 0.7 VCC (அதிக)
மின்னழுத்த வீழ்ச்சி / RDS(on) / செறிவு பொருந்தாது
வெப்ப வரம்புகள் 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 சென்சார் மதிப்புகளை சரியாக வாசிக்கத் தொடங்க dht.begin()-ஐ அழைப்பது அவசியம்.


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

நீங்கள் தேவைப்படும் எண்ணங்கள்

வளங்கள் மற்றும் மேற்கோள்கள்

கோப்புகள்📁

பிரிட்சிங் கோப்பு