Kazalo:

Monitor rastlin z uporabo ESP32 Thing and Blynk: 5 korakov
Monitor rastlin z uporabo ESP32 Thing and Blynk: 5 korakov

Video: Monitor rastlin z uporabo ESP32 Thing and Blynk: 5 korakov

Video: Monitor rastlin z uporabo ESP32 Thing and Blynk: 5 korakov
Video: SKR Pro v1.2 — TMC2226 UART с бездатчиковым возвратом в исходное положение 2024, November
Anonim
Monitor rastlin z uporabo ESP32 Thing in Blynk
Monitor rastlin z uporabo ESP32 Thing in Blynk
Monitor rastlin z uporabo ESP32 Thing in Blynk
Monitor rastlin z uporabo ESP32 Thing in Blynk

Pregled

Cilj tega projekta je ustvariti kompaktno napravo, ki bo lahko spremljala pogoje sobne rastline. Naprava omogoča uporabniku, da s pomočjo aplikacije Blynk preveri stopnjo vlažnosti tal, stopnjo vlažnosti, temperaturo in temperaturo "po občutku". Poleg tega bo uporabnik po e -pošti prejel opozorilo, ko razmere postanejo neprimerne za obrat. Na primer, uporabnik bo prejel opomnik, da rastlino zalije, ko raven vlage v tleh pade pod ustrezno raven.

1. korak: Zahteve

Zahteve
Zahteve
Zahteve
Zahteve
Zahteve
Zahteve

Ta projekt uporablja stvar Sparkfun ESP32, senzor DHT22 in elektronski senzor vlažnosti tal iz opeke. Poleg tega sta potrebna omrežje WiFi in aplikacija Blynk. Prednostno je treba ustvariti vodotesno ohišje, ki bo vsebovalo stvar ESP32. Medtem ko ta primer uporablja standardno vtičnico za vir energije, bi dodajanje baterije za ponovno polnjenje, sončne celice in krmilnika polnjenja omogočilo, da se naprava napaja iz obnovljivih virov energije.

2. korak: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Prenesite aplikacijo Blynk in ustvarite nov projekt. Upoštevajte žeton za preverjanje pristnosti-uporabljen bo v kodi. Ustvarite nove pripomočke za prikaz v aplikaciji Blynk in izberite ustrezne navidezne zatiče, opredeljene v kodi. Interval osveževanja nastavite na pritisk. Vsakemu pripomočku je treba dodeliti svoj virtualni pin.

3. korak: Arduino IDE

Arduino IDE
Arduino IDE

Prenesite Arduino IDE. Sledite navodilom za prenos gonilnika stvari ESP32 in predstavitvi, da zagotovite brezžično povezavo. Prenesite knjižnici Blynk in DHT, vključeni v kodo. V končno kodo vnesite žeton za preverjanje pristnosti, geslo za wifi, uporabniško ime za wifi in e -pošto. Z demo kodo senzorja vlažnosti tal poiščite najmanjše in največje vrednosti za tip tal. Zapišite in zamenjajte te vrednosti v končni kodi. V končni kodi zamenjajte minimalne vrednosti temperature, vlažnosti tal in vlažnosti rastline. Naložite kodo.

4. korak: Zgradite ga

Zgradi ga
Zgradi ga
Zgradi ga
Zgradi ga
Zgradi ga
Zgradi ga

Najprej priključite senzor vlažnosti tal na 3,3 V, ozemljitev in vhodni zatič 34. Upoštevajte, da je integralno stikalo nastavljeno na A, ker bo uporabljena analogna nastavitev za ta senzor. Nato priključite senzor DHT na 3.3V, ozemljitev in vhodni zatič 27. Za senzor DHT22 je potreben upor 10K Ohm med VCC in izhodom podatkovnega zatiča. Preverite diagram DHT, da se prepričate, da je pravilno ožičen. ESP32 konfigurirajte v vodotesnem ohišju s senzorjem vlage v tleh in senzorjem DHT nad površino. Priključite se na vir napajanja in uživajte v podatkih o okolju vaše naprave.

5. korak: Koda

// Vključene knjižnice

#define BLYNK_PRINT Serijska številka

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

// Informacije o senzorju DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digitalni pin, povezan s tipalom DHT DHT dht (DHTPIN, DHTTYPE); // Inicializirajte senzor DHT.

// definiramo vhodne zatiče in izhode

int tlačni_senzor = 34; // določimo številko pin analognega vhoda, priključeno na senzor vlage

int output_value; // definiraj kot output

int raven vlage; // definiraj kot izhod

int notified = 0; // opredelimo notificirano kot 0

int časovni zamik = 60000L; // nastavite časovnik za izvajanje pridobivanja podatkov enkrat na minuto ali 60 000 milisekund

// nastavimo minimalne vrednosti za obrat

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

// V aplikaciji Blynk bi morali dobiti žeton za preverjanje pristnosti.

char auth = "Auth_Token_Here";

// Vaše poverilnice WiFi.

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

Časovnik BlynkTimer;

// Ta funkcija vsako sekundo pošlje čas delovanja Arduina na Virtual Pin (5).

// V aplikaciji je treba frekvenco branja gradnika nastaviti na PUSH. To pomeni, da // določite, kako pogosto želite pošiljati podatke v aplikacijo Blynk.

void Sensors () // glavna funkcija za branje senzorjev in pritisk na blynk

{output_value = analogRead (pressure_sensor); // preberite analogni signal iz sensor_sensor in ga definirajte kot output_value // preslikajte output_vlaue od min, max vrednosti do 100, 0 in omejite med 0, 100 // Uporabite vzorčno kodo in serijski monitor za iskanje min in največje vrednosti za posamezen senzor in tip tal za boljšo kalibracijo ravni vlage = omeji (zemljevid (vrednost_izhoda, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Odčitavanje plavajoče vlažnosti t = dht.readTemperature (); // Temperatura se bere kot Celzij (privzeto) float f = dht.readTemperature (true); // Temperatura se bere kot Fahrenheit (isFahrenheit = true) // Izračunamo toplotni indeks v Fahrenheitu (privzeto) float hif = dht.computeHeatIndex (f, h); // Preverim, ali kakšno branje ni uspelo, in izstopite zgodaj (poskusite znova). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Ni bilo mogoče prebrati s senzorja DHT!")); vrnitev; } // S tem povežete doline z navideznimi zatiči, določenimi v pripomočkih v aplikaciji Blynk Blynk.virtualWrite (V5, raven vlažnosti); // Pošljite raven vlažnosti na virtualni pin 5 Blynk.virtualWrite (V6, f); // Pošljite temperaturo na virtualno pin 6 Blynk.virtualWrite (V7, h); // Pošlji vlažnost na virtualni pin 7 Blynk.virtualWrite (V8, hif); // Pošlji indeks toplote na virtualni pin 8

če (obvestilo == 0)

{if (raven vlage <= min_moisture) // Če je raven vlage enaka ali nižja od minimalne vrednosti {Blynk.email ("Email_Here", "Monitor Plant", "Water Plant!"); // Pošlji e -pošto vodni tovarni} zamuda (15000); // Blynk e -poštna sporočila morajo biti narazen 15 sekund. Zamuda 15000 milisekonov if (f <= min_temperature) // Če je temperatura enaka ali nižja od minimalne vrednosti {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Pošlji e -pošto, da je temperatura nizka

}

zamuda (15000); // Blynk e -poštna sporočila morajo biti narazen 15 sekund. Zakasnite 15000 milisekonov if (h <= min_humidity) // Če je vlažnost enaka ali nižja od minimalne vrednosti {Blynk.email ("Emial_Here", "Monitor rastline", "Vlažnost nizka!"); // Pošlji e -poštno sporočilo, da je nizka vlažnost} notified = 1; timer.setTimeout (timedelay *5, resetNotified); // večkratni časovni zamik glede na želene minute med ponavljajočimi se opozorilnimi e -poštnimi sporočili}}

void resetNotified () // funkcija poklicana za ponastavitev frekvence e -pošte

{notified = 0; }

void setup ()

{Serial.begin (9600); // konzola za odpravljanje napak Blynk.begin (auth, ssid, pass); // povežite se z blynk timer.setInterval (timedelay, Sensors); // Nastavitev funkcije za klic vsako minuto ali časovni zamik nastavljen na dht.begin (); // zaženite senzor DHT}

// Void zanka naj vsebuje samo blynk.run in časomer

void loop () {Blynk.run (); // Zaženi blynk timer.run (); // Zažene BlynkTimer}

Priporočena: