Luka Code

Tutoriel ESP32 35/55 - Moniteur de plantes, sol, température et lumière | Kit d'apprentissage IoT ESP32 de SunFounder

Tutoriel ESP32 35/55 - Moniteur de plantes, sol, température et lumière | Kit d'apprentissage IoT ESP32 de SunFounder

Na boyekoli oyo, tokozali kotonga mokengeli ya nzete na esaleli ya microcontrôleur ESP32 oyo ewuti na SunFounder ESP32 IoT Learning Kit. Projɛ oyo esangisi biloko ebele mpo na kokamba bokɛ́ngɛli ya mokili ya mabele, température, humidité, mpe bongengi. Na nsúka ya boyekoli oyo, okozala na sisiteme oyo esalaka malamu mpe oyo ekoki kokamba mpe kolakisa makambo yango ya ntina mpo na kobatela nzete. Mpo na ndimbola ya kitoko ya kornɛlɛ, tala vidéo yango (na vidéo na 00:00).

ESP32-25_plant_moitor_schematic

Biloko ya Makɛ́lɛ́li Esɛngami

Biloko ya minene oyo esalelami na projɛ oyo ezali na microcontrôleur ESP32, capteur DHT11, capteur ya mokili ya mabele, résistance oyo etalaka bongengi (LDR), mpe LCD mpo na kolakisa ba données. ESP32 ezali lokola motó ya sisiteme, oyo esalaka mosala ya kosala ba données mpe kokamba. Ezali na Wi-Fi mpe Bluetooth oyo esalemi na kati, mpo na kopesa bopɔsi ya kokamba na mosika.

photoresistor
DHT11 Module
Module DHT11

Capteur DHT11 emekaka température mpe humidité, wana capteur ya mokili ya mabele emekaka bokɛ́ngɛli ya mabele. LDR emekaka makasi ya bongengi ya zamba, mpo na kopesa boyebi na makambo ya bongengi ya nzete. Biloko nyonso ezali na mosala ya ntina mpo na kobatela nzete na kopesa ba données ya tango nyonso.

Biloko ya Datasheet

Mosali SunFounder
Numéro ya eteni DHT11
Voltage ya logique/IO 3.3 V
Voltage ya kopesa 5 V
Courant ya kobimisa (na canal moko) 20 mA
Courant ya likama (na canal moko) 50 mA
Motinda ya fréquence PWM N/A
Ba seuils ya logique ya koti 0.3 VCC (moké), 0.7 VCC (monene)
Kokita ya voltage / RDS(on) / saturation N/A
Ba limites ya température 0°C kino 50°C
Emballage DIP
Ba notes / ba variantes Esalaka malamu na DHT22

 

  • Kokamba ete voltage ya malamu ezala mpo na eteni nyonso (5V mpo na moteur, 3.3V mpo na ba capteurs).
  • Salela ba résistances ya kokitisa mpo na ba boutons mpo na kopekisa ba entrées oyo ezangi fondement.
  • Kokamba ete ba fils ezala ya kokoka mpo na kopekisa libunga mpe ba courts-circuits.
  • Vérifier ba connexions liboso ya kopesa courant na circuit mpo na kopekisa kobebisa.
  • Talá malamu connexion ya DHT11 mpo ete ezali na kogala na ba connexions ya mabe.

Ba Instructions ya Connexion

ESP32-25_plant_moitor_wiring

Mpo na kokɔta na ba composants, banda na kokɔta na ba lignes ya puissance mpe ya terre. ESP32 esengeli kopesama puissance na batterie ya lithium, kokɔta na terminal ya positif na ligne VCC mpe terre na ligne GND na breadboard. Pin ya données ya capteur DHT11 ekɔti na PIN 13, wana VCC na yango ekɔti na ligne 3.3V mpe GND na terre. Capteur ya mokili ya mabele ekɔti lolenge moko: pin na yango ya signal na PIN 14, VCC na 3.3V, mpe GND na terre.

Mpo na LDR, kokɔta na pin moko na ligne 3.3V mpe mosusu na PIN 35, na résistance ya 10k ohm oyo ekɔti na LDR kino na terre. Écran LCD ekɔti na ligne 5V mpo na puissance mpe esalelaka ba pins SDA mpe SCL oyo ekɔti na PIN 21 mpe PIN 22, na ndenge yango. Na nsúka, kokɔta na bouton na PIN 32 na résistance ya kokitisa oyo ekɔti na terre, mpo na kokamba ete etángaka moké ntango epresaka te mpe monene ntango epresaka.

Ba Exemples ya Code & Explication

Mokɔngɔ ya programɛ na biso ebandi na kopesa ba pins mpo na eteni nyonso. Na ndakisa, DHTPIN epesami na PIN 13 mpo na capteur DHT11, wana MOIS_PIN esalemi na PIN 14 mpo na capteur ya mokili ya mabele. Bokaboli oyo esalaka mpo na koyeba nini capteur ekɔti na pin nini.


#define DHTPIN 13     // Tia pin oyo ekɔti na pin ya données ya DHT11
#define MOIS_PIN 14 // Module ya mokili ya mabele
#define LIGHT_PIN 35 // Photoresistor

Na sima, tobandisaka capteur DHT mpe écran LCD na kati ya fonction setup(). Oyo ezali ya ntina mpo ete ebongisaka ba composants oyo mpo na mosala. Komeka ete obenga dht.begin() ezali ya ntina mpo na capteur DHT mpo na kotanga ba valeurs na ndenge ya malamu.


void setup() {
  Serial.begin(115200);
  dht.begin();  // Bandisa DHT11
  lcd.init();  // Bandisa LCD
  lcd.backlight();
}

Na fonction loop(), totángaka tango nyonso ba valeurs ya température mpe ya humidité, mpe tolakisaka yango na LCD. Soki bouton epresami, moteur ebandisami mpo na komelisa ba nzete. Logique oyo esalelaka kotánga ya digital ya pin ya bouton mpo na koyeba soki okotia moteur na mosala to olongola yango.


void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
  if (digitalRead(BUTTON) == HIGH) {
    digitalWrite(motor1A, HIGH); // Tia pompe ya mai na mosala
  } else {
    digitalWrite(motor1A, LOW); // Longola pompe ya mai na mosala
  }
  delay(2000);
}

Libongé ya code oyo epesaka bokokani ya malamu ya kopesa ba données mpe contrôle, mpo na komeka ete moniteur ya nzete ezali kokende malamu. Mpo na ba détails mingi, code mobimba ekomami na nse ya lisolo oyo.

Démonstration / Nini Okomona

Sima ya kosala installation mpe kotia code, LCD esengeli kolakisa ba mesures ya température mpe humidité na bokeseni na ba niveaux ya moisture mpe lumière. Ntango obandisi bouton, pompe ya mai esengeli kotanga, mpo na kopesa mai na nzete. Tika ete ba connexions nyonso ezala ya libende mpo na kokima ba problèmes lokola ba entrées ya libende to ba lectures ya mabe (na vidéo na 05:30).

Kotalela ba valeurs oyo ezali kolakisa na LCD mpe moniteur ya série ekosalisa mpo na komeka ete système ezali kosala malamu. Soki okutani na ba problèmes, tala lisusu ba connexions mpe tika ete ba composants nyonso ezala na puissance ya malamu.

Ba Timestamps ya Vidéo

  • 00:00 Ebandeli
  • 2:23 Introduction ya Projet
  • 4:02 Page ya ba docs
  • 7:43 1-L293D Moteur ya pompe
  • 14:30 2-Bouton mpo na pompe
  • 16:35 3-Capteur ya température mpe humidité DHT11
  • 19:26 4-Capteur ya moisture ya sol
  • 21:43 5-Capteur ya lumière
  • 24:47 6-Capteur ya moisture ya sol
  • 26:01 Code mobimba ya Plant Monitor Arduino
  • 29:21 Démonstration

Images

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

Nko o na nki.

Mokili na bisika

Fichiers📁

Fritzing File