Turinys:

Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“: 5 žingsniai
Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“: 5 žingsniai

Video: Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“: 5 žingsniai

Video: Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“: 5 žingsniai
Video: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, Lapkritis
Anonim
Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“
Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“
Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“
Augalų monitorius naudojant „ESP32 Thing“ir „Blynk“

Apžvalga

Šio projekto tikslas - sukurti kompaktišką prietaisą, galintį stebėti kambarinio augalo sąlygas. Įrenginys leidžia vartotojui patikrinti dirvožemio drėgmės lygį, drėgmės lygį, temperatūrą ir „jaučiamą“temperatūrą išmaniajame telefone naudojant „Blynk“programą. Be to, vartotojas gaus įspėjimą el. Paštu, kai sąlygos taps netinkamos gamyklai. Pvz., Vartotojas gaus priminimą laistyti augalą, kai dirvožemio drėgmės lygis nukris žemiau tinkamo lygio.

1 žingsnis: Reikalavimai

Reikalavimai
Reikalavimai
Reikalavimai
Reikalavimai
Reikalavimai
Reikalavimai

Šiame projekte naudojamas „Sparkfun ESP32“daiktas, DHT22 jutiklis ir elektroninis plytų dirvožemio drėgmės jutiklis. Be to, reikalingas „Wi -Fi“tinklas ir „Blynk“programa. Pageidautina, kad būtų sukurtas vandeniui atsparus gaubtas, kuriame būtų ESP32 dalykas. Nors šiame pavyzdyje naudojamas standartinis maitinimo šaltinio lizdas, pridėjus įkraunamą bateriją, saulės kolektorių ir įkrovimo valdiklį, prietaisas galėtų būti maitinamas naudojant atsinaujinančią energiją.

2 žingsnis: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Jei norite, atsisiųskite „Blynk“programą ir sukurkite naują projektą. Atkreipkite dėmesį į autentifikavimo žetoną-jis bus naudojamas kode. Sukurkite naujus ekrano valdiklius programoje „Blynk“ir pasirinkite atitinkamus virtualius kaiščius, apibrėžtus kode. Nustatykite atnaujinimo intervalą. Kiekvienam valdikliui reikia priskirti savo virtualų kaištį.

3 žingsnis: „Arduino IDE“

„Arduino IDE“
„Arduino IDE“

Atsisiųskite „Arduino IDE“. Vykdykite ESP32 daiktų tvarkyklės ir demonstracinės versijos atsisiuntimo instrukcijas, kad užtikrintumėte „Wi -Fi“ryšį. Atsisiųskite į kodą įtrauktas „Blynk“ir „DHT“bibliotekas. Į galutinį kodą įveskite autentifikavimo prieigos raktą, „wifi“slaptažodį, „wifi“vartotojo vardą ir el. Naudokite dirvos drėgmės jutiklio demonstracinį kodą, kad surastumėte minimalias ir maksimalias dirvožemio tipo vertes. Įrašykite ir pakeiskite šias vertes galutiniame kode. Galutiniame kode pakeiskite minimalias augalo temperatūros, dirvožemio drėgmės ir drėgmės vertes. Įkelkite kodą.

4 žingsnis: sukurkite

Sukurkite
Sukurkite
Sukurkite
Sukurkite
Sukurkite
Sukurkite

Pirmiausia prijunkite dirvožemio drėgmės jutiklį prie 3,3 V, įžeminimo ir įvesties kaiščio 34. Atkreipkite dėmesį, kad jungiklis yra integruotas į A padėtį, nes bus naudojamas analoginis šio jutiklio nustatymas. Tada prijunkite DHT jutiklį prie 3.3V, įžeminimo ir įvesties kaiščio 27. DHT22 jutikliui reikia 10K omo rezistoriaus tarp VCC ir duomenų išvesties kaiščio. Būtinai patikrinkite DHT diagramą, kad įsitikintumėte, jog ji tinkamai prijungta. ESP32 sukonfigūruokite vandeniui nepralaidžiame gaubte su drėgmės jutikliu dirvožemyje ir DHT jutikliu virš paviršiaus. Prisijunkite prie maitinimo šaltinio ir mėgaukitės savo gamyklos aplinkos duomenimis.

5 žingsnis: kodas

// Įtrauktos bibliotekos

#define BLYNK_PRINT Serialas

#įtraukimas #įtraukimas #įtraukimas #įtraukimas "DHT.h"

// DHT jutiklio informacija

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Skaitmeninis kaištis prijungtas prie DHT jutiklio DHT dht (DHTPIN, DHTTYPE); // Inicijuokite DHT jutiklį.

// apibrėžti įvesties kaiščius ir išėjimus

int dirvos_jutiklis = 34; // apibrėžti analoginį įvesties kaiščio numerį, prijungtą prie drėgmės jutiklio

int output_value; // apibrėžti kaip išvestį

int drėgmės lygis; // apibrėžti kaip išvestį

int pranešta = 0; // apibrėžti pažymėtą kaip 0

int laiko uždelsimas = 60000L; // nustatyti laikmatį paleisti, kad gautumėte duomenis kartą per minutę arba 60 000 milisekundžių

// nustatykite minimalias augalo vertes

int min_moisture = 20; int min_temperatūra = 75; int min_ drėgmė = 60;

// „Blynk“programoje turėtumėte gauti „Auth Token“.

char auth = "Auth_Token_Here";

// Jūsų „WiFi“prisijungimo duomenys.

char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";

„BlynkTimer“laikmatis;

// Ši funkcija kas sekundę siunčia „Arduino“budėjimo laiką į virtualųjį kaištį (5).

// Programoje valdiklio skaitymo dažnis turėtų būti nustatytas į PUSH. Tai reiškia, kad jūs nustatote, kaip dažnai siųsti duomenis į „Blynk“programą.

void Sensors () // pagrindinė funkcija skaityti jutiklius ir stumti į blynk

{output_value = analogRead (ground_sensor); // Skaitykite analoginį signalą iš ground_sensor ir apibrėžkite kaip output_value // Išvesties_viksės žemėlapį nustatykite nuo min, maks. reikšmių iki 100, 0 ir apribokite nuo 0 iki 100 // Naudokite mėginio kodą ir nuoseklųjį monitorių, kad surastumėte min ir maksimalios atskiro jutiklio ir dirvožemio tipo vertės, kad būtų geriau kalibruojamas drėgmės lygis = suvaržymas (žemėlapis (išvesties_ vertė, 1000, 4095, 100, 0), 0, 100); plūdė h = dht.readHumidity (); // Skaityti drėgmės plūdę t = dht.readTemperature (); // Skaityti temperatūrą kaip Celsijų (numatytoji) float f = dht.readTemperature (true); // Skaityti temperatūrą kaip Farenheitą (isFahrenheit = true) // Apskaičiuoti šilumos indeksą Farenheitu (numatytasis) float hif = dht.computeHeatIndex (f, h); // Patikrinkite, ar nepavyko nuskaityti, ir išeikite anksčiau (bandykite dar kartą). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Nepavyko nuskaityti iš DHT jutiklio!")); grįžti; } // Tai sujungia vales su virtualiais kaiščiais, apibrėžtais „Blynk“programos valdikliuose „Blynk.virtualWrite“(V5, drėgmės lygis); // Siųsti drėgmės lygį į virtualųjį kaištį 5 „Blynk.virtualWrite“(V6, f); // Siųsti temperatūrą į virtualųjį 6 kaištis Blynk.virtualWrite (V7, h); // Siųsti drėgmę į virtualų kaištį 7 Blynk.virtualWrite (V8, hif); // Siųsti šilumos indeksą į virtualų 8 kaištį

jei (pranešta == 0)

{if (drėgmės lygis <= min_moisture) // Jei drėgmės lygis yra lygus arba mažesnis už min. reikšmę {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Send email to water plant} delay (15000); // „Blynk“el. Laiškų skirtumas turi būti 15 sekundžių. Atidėkite 15000 milisekundžių, jei (f <= min_temperatūra) // Jei temperatūra yra lygi arba mažesnė už min. Reikšmę {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Siųsti el. Laišką, kad temperatūra žema

}

vėlavimas (15000); // „Blynk“el. Laiškų skirtumas turi būti 15 sekundžių. Atidėkite 15000 milisekundžių, jei (h <= min_humidity) // Jei drėgmė lygi arba mažesnė už min. Reikšmę {Blynk.email ("Emial_Here", "Plant Monitor", "Low Drėgmė!"); // Siųsti el. Laišką, kad drėgmė yra maža} pranešta = 1; timer.setTimeout (laiko praleidimas *5, atstatymasNotifikuotas); // daugkartinis laiko atidėjimas pagal norimų minučių skaičių tarp pakartotinių įspėjamųjų el. laiškų}}

void resetNotified () // funkcija iškviesta iš naujo nustatyti el. laiškų dažnį

{pranešta = 0; }

negaliojanti sąranka ()

{Serial.begin (9600); // Derinimo pultas Blynk.begin (auth, ssid, pass); // prisijungti prie blynk timer.setInterval (timedelay, Sensors); // Nustatykite funkciją, kuri bus iškviečiama kas minutę arba koks laiko atidėjimas nustatytas į dht.begin (); // paleisti DHT jutiklį}

// Tuštumos cikle turėtų būti tik blynk.run ir laikmatis

tuštumos kilpa () {Blynk.run (); // Paleisti blynk timer.run (); // Inicijuoja „BlynkTimer“}

Rekomenduojamas: