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, Lipanj
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ćuje korisniku da provjeri vlažnost tla, razinu 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 uvjeti postanu neprikladni za postrojenje. Na primjer, korisnik će dobiti podsjetnik da zalije biljku kad razina vlažnosti tla padne ispod odgovarajuće razine.

Korak 1: Zahtjevi

Zahtjevi
Zahtjevi
Zahtjevi
Zahtjevi
Zahtjevi
Zahtjevi

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 mogućnosti je potrebno stvoriti vodonepropusno 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

Zapravo, preuzmite aplikaciju Blynk i izradite novi projekt. Zabilježite token za provjeru autentičnosti-on će se koristiti u kodu. Izradite nove widgete za prikaz u aplikaciji Blynk i odaberite odgovarajuće virtualne pinove definirane u kodu. Podesite interval osvjež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 upravljačkog programa za ESP32 i demo kako biste osigurali WiFi vezu. Preuzmite biblioteke Blynk i DHT 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 senzora vlažnosti tla pronađite minimalne i maksimalne vrijednosti za vrstu 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. Učitajte kôd.

Korak 4: Izgradite ga

Izgradi ga
Izgradi ga
Izgradi ga
Izgradi ga
Izgradi ga
Izgradi ga

Prvo spojite osjetnik vlažnosti tla na 3,3 V, uzemljenje i ulazni pin 34. Napomena, integralno je da je prekidač postavljen na A jer će se koristiti analogna postavka za ovaj senzor. Zatim spojite DHT osjetnik na 3,3 V, uzemljenje i ulazni pin 27. Za osjetnik DHT22 potreban je otpornik od 10K Ohma između VCC -a i pina za izlaz podataka. Svakako provjerite DHT dijagram kako biste bili sigurni da je pravilno ožičen. Konfigurirajte ESP32 unutar vodonepropusnog kućišta s osjetnikom vlage u tlu i DHT osjetnikom iznad površine. Spojite se na izvor napajanja i uživajte u podacima o okolišu vaše elektrane.

Korak 5: Kodirajte

// Uključene knjižnice

#define BLYNK_PRINT Serijski

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

// Podaci o DHT osjetniku

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

// definiramo ulazne pinove i izlaze

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

int output_value; // definirati kao izlaz

int raven vlage; // definirati kao izlaz

int obaviješten = 0; // definirati prijavljeno kao 0

int timedelay = 60000L; // postavljanje timera za pokretanje dobivanja podataka jednom svake minute ili 60 000 milisekundi

// postavljanje minimalnih vrijednosti za postrojenje

int min_vlaga = 20; int min_temperatura = 75; int min_vlažnost = 60;

// Trebali biste dobiti Auth Token u aplikaciji Blynk.

char auth = "Auth_Token_Here";

// Vaše WiFi vjerodajnice.

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

BlynkTimer mjerač vremena;

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

// U aplikaciji bi učestalost čitanja Widgeta trebala biti postavljena na PUSH. To znači da // definirate koliko često ćete slati podatke aplikaciji Blynk.

void Sensors () // glavna funkcija za očitavanje senzora i guranje na blynk

{output_value = analogRead (ground_sensor); // Očitavanje analognog signala s osjetnika tla i definiranje kao output_value // Mapiranje output_vlaue od min, max vrijednosti do 100, 0 i ograničenje između 0, 100 // Upotrijebite kod uzorka i serijski monitor za pronalaženje min i maksimalne vrijednosti za pojedinačne senzore i vrstu tla radi bolje kalibracije razine 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 (zadano) plovak hif = dht.computeHeatIndex (f, h); // Provjerite neuspjelo čitanje i prijevremeno izađite (za ponovni pokušaj). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Nije uspjelo čitanje s DHT senzora!")); povratak; } // Ovo povezuje vale s virtualnim pinovima definiranim u widgetima u aplikaciji Blynk Blynk.virtualWrite (V5, nivo vlage); // Pošaljite razinu vlage na virtualni pin 5 Blynk.virtualWrite (V6, f); // Pošaljite temperaturu virtualnom 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 (raven vlage <= min_moisture) // Ako je razina vlage jednaka ili ispod minimalne vrijednosti {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Pošaljite e -poruku postrojenju za vodu} delay (15000); // Blynk 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!"); // Slanje e -pošte s niskom vlagom} obaviješteno = 1; timer.setTimeout (timedelay *5, resetNotified); // višestruki vremenski zaostatak prema željenim minutama između ponovljenih poruka upozorenja}}

void resetNotified () // funkcija pozvana za poništavanje učestalosti e -pošte

{notified = 0; }

void setup ()

{Serial.begin (9600); // Konzola za otklanjanje pogrešaka Blynk.begin (auth, ssid, pass); // povezivanje s blynk timer.setInterval (timedelay, Sensors); // Postavljanje funkcije za pozivanje 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čeni: