Sadržaj:

Monitor biljaka pomoću ESP32 Thing and Blynk: 5 koraka
Monitor biljaka pomoću ESP32 Thing and Blynk: 5 koraka

Video: Monitor biljaka pomoću ESP32 Thing and Blynk: 5 koraka

Video: Monitor biljaka pomoću ESP32 Thing and Blynk: 5 koraka
Video: Apa itu? Stepper Motor - Blynk Nodemcu Etching Bucket (Subtittled) 2024, Novembar
Anonim
Monitor biljaka pomoću ESP32 Thing and Blynk
Monitor biljaka pomoću ESP32 Thing and Blynk
Monitor biljaka pomoću ESP32 Thing and Blynk
Monitor biljaka pomoću ESP32 Thing and Blynk

Pregled

Cilj ovog projekta je stvoriti kompaktni uređaj koji može pratiti stanje sobne biljke. Uređaj omogućava korisniku da provjeri vlažnost tla, nivo vlažnosti, temperaturu i temperaturu "nalik osjećaju" sa pametnog telefona pomoću aplikacije Blynk. Osim toga, korisnik će primiti upozorenje putem e -pošte kada uslovi postanu neprikladni za postrojenje. Na primjer, korisnik će dobiti podsjetnik da zalije biljku kada nivo vlage u tlu padne ispod odgovarajuće razine.

Korak 1: Zahtjevi

Zahtevi
Zahtevi
Zahtevi
Zahtevi
Zahtevi
Zahtevi

Ovaj projekt koristi Sparkfun ESP32 stvar, DHT22 senzor i elektronički senzor vlage tla od opeke. Osim toga, potrebna je WiFi mreža i aplikacija Blynk. Poželjno je da se napravi vodootporno kućište koje sadrži ESP32 stvar. Iako ovaj primjer koristi standardnu utičnicu za izvor napajanja, dodavanje punjive baterije, solarne ploče i kontrolera punjenja omogućilo bi napajanje uređaja obnovljivom energijom.

Korak 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

U stvari, preuzmite aplikaciju Blynk i kreirajte novi projekt. Zabilježite token za provjeru autentičnosti-on će se koristiti u kodu. Kreirajte nove widgete za prikaz u aplikaciji Blynk i odaberite odgovarajuće virtualne pinove definirane u kodu. Podesite interval osvežavanja na pritisak. Svakom widgetu treba dodijeliti vlastiti virtualni pin.

Korak 3: Arduino IDE

Arduino IDE
Arduino IDE

Preuzmite Arduino IDE. Slijedite upute za preuzimanje ESP32 upravljačkog programa i demo kako biste osigurali WiFi vezu. Preuzmite Blynk i DHT biblioteke uključene u kôd. U konačni kod unesite token za provjeru autentičnosti, lozinku za WiFi, korisničko ime za WiFi i e -poštu. Pomoću demo koda za senzor vlažnosti tla pronađite minimalne i maksimalne vrijednosti za tip tla. Zapišite i zamijenite ove vrijednosti u konačnom kodu. Zamijenite minimalne vrijednosti temperature, vlažnosti tla i vlažnosti biljke u konačnom kodu. Otpremite kôd.

Korak 4: Izgradite ga

Build It
Build It
Build It
Build It
Build It
Build It

Prvo povežite senzor vlažnosti tla na 3,3 V, uzemljenje i ulazni pin 34. Napomena, integralno je prekidač postavljen na A jer će se koristiti analogna postavka za ovaj senzor. Zatim spojite DHT senzor na 3.3V, masu i ulazni pin 27. DHT22 osjetniku je potreban otpornik od 10K Ohma između VCC -a i pina za izlaz podataka. Obavezno provjerite DHT dijagram kako biste bili sigurni da je pravilno ožičen. Konfigurirajte ESP32 unutar vodootpornog kućišta sa senzorom vlage u tlu i DHT senzorom iznad površine. Priključite se na izvor napajanja i uživajte u podacima o okruženju vaše elektrane.

Korak 5: Kodirajte

// Uključene biblioteke

#define BLYNK_PRINT Serijski

#include #include #include #include "DHT.h"

// Informacije o DHT senzoru

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digitalni pin spojen na DHT senzor DHT dht (DHTPIN, DHTTYPE); // Inicijalizacija DHT senzora.

// definiramo ulazne pinove i izlaze

int tlačni_senzor = 34; // definiramo broj pin -a analognog ulaza spojen na senzor vlage

int output_value; // definirati kao izlaz

int wetlevel; // definiraj kao izlaz

int notified = 0; // definiramo notificirano kao 0

int timedelay = 60000L; // podesite tajmer za pokretanje dobijanja podataka jednom svake minute ili 60 000 milisekundi

// postavljanje minimalnih vrijednosti za postrojenje

int min_moisture = 20; int min_temperature = 75; int min_vlažnost = 60;

// Trebali biste dobiti Auth Token u aplikaciji Blynk.

char auth = "Auth_Token_Here";

// Vaši WiFi akreditivi.

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

BlynkTimer timer;

// Ova funkcija svake sekunde šalje vrijeme rada Arduina na Virtual Pin (5).

// U aplikaciji, učestalost čitanja Widgeta treba postaviti na PUSH. To znači // da definirate koliko često ćete slati podatke aplikaciji Blynk.

void Sensors () // glavna funkcija za očitavanje senzora i pritiskanje za brisanje

{output_value = analogRead (ground_sensor); // Očitavanje analognog signala sa senzora_tla i definiranje kao output_value // Mapiranje output_vlaue od min, max vrijednosti do 100, 0 i ograničenje između 0, 100 // Upotreba uzorka koda i serijskog monitora za pronalaženje min i maksimalne vrijednosti za pojedinačni senzor i tip tla za bolju kalibraciju nivoa vlage = ograničenje (karta (vrijednost_izlaza, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Očitavanje plovka vlažnosti t = dht.readTemperature (); // Očitavanje temperature kao Celsius (zadano) float f = dht.readTemperature (true); // Očitavanje temperature kao Fahrenheita (isFahrenheit = true) // Izračunavanje toplinskog indeksa u Fahrenheitu (zadani) plovak hif = dht.computeHeatIndex (f, h); // Provjerite da li neko čitanje nije uspjelo i izađite ranije (da pokušate ponovo). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Očitavanje nije uspjelo sa DHT senzora!")); return; } // Ovo povezuje vale s virtualnim pinovima definiranim u widgetima u aplikaciji Blynk.ly Blynk.virtualWrite (V5, nivo vlage); // Pošaljite razinu vlage na virtualni pin 5 Blynk.virtualWrite (V6, f); // Pošaljite temperaturu na virtual pin 6 Blynk.virtualWrite (V7, h); // Pošaljite vlažnost na virtualni pin 7 Blynk.virtualWrite (V8, hif); // Pošaljite indeks topline na virtualni pin 8

ako (obaviješteno == 0)

{if (nivo vlage <= min_moisture) // Ako je nivo vlage jednak ili ispod minimalne vrijednosti {Blynk.email ("Email_Here", "Monitor biljaka", "Vodovod!"); // Pošaljite e -poruku postrojenju za vodu} delay (15000); // Neispravne e -poruke moraju biti udaljene 15 sekundi. Odgodi 15000 milisekona ako (f <= min_temperature) // Ako je temperatura jednaka ili ispod minimalne vrijednosti {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Pošaljite e -poruku da je temperatura niska

}

kašnjenje (15000); // Blynk e -poruke moraju biti udaljene 15 sekundi. Odgodite 15000 milisekona ako (h <= min_ vlažnosti) // Ako je vlažnost jednaka ili ispod minimalne vrijednosti {Blynk.email ("Emial_Here", "Monitor postrojenja", "Vlažnost niska!"); // Pošaljite e -poštu da je vlažnost niska} notified = 1; timer.setTimeout (timedelay *5, resetNotified); // višestruko kašnjenje u vremenu prema željenim minutama između ponovljenih e -poruka upozorenja}}

void resetNotified () // funkcija pozvana za resetiranje frekvencije e -pošte

{notified = 0; }

void setup ()

{Serial.begin (9600); // Konzola za otklanjanje grešaka Blynk.begin (auth, ssid, pass); // povezivanje sa blynk timer.setInterval (timedelay, Sensors); // Postavljanje funkcije koja će se pozivati svake minute ili vremenski zastoj postavljen na dht.begin (); // pokrenite DHT senzor}

// Prazna petlja treba sadržavati samo blynk.run i mjerač vremena

void loop () {Blynk.run (); // Pokreni blynk timer.run (); // Pokreće BlynkTimer}

Preporučuje se: