INHOUDSOPGAWE:

Plantmonitor met behulp van ESP32 Thing en Blynk: 5 stappe
Plantmonitor met behulp van ESP32 Thing en Blynk: 5 stappe

Video: Plantmonitor met behulp van ESP32 Thing en Blynk: 5 stappe

Video: Plantmonitor met behulp van ESP32 Thing en Blynk: 5 stappe
Video: Мониторинг солнечных панелей с помощью blynk iot 2.0 2024, Junie
Anonim
Plantmonitor met behulp van ESP32 Thing en Blynk
Plantmonitor met behulp van ESP32 Thing en Blynk
Plantmonitor met behulp van ESP32 Thing en Blynk
Plantmonitor met behulp van ESP32 Thing en Blynk

Oorsig

Die doel van hierdie projek is om 'n kompakte toestel te skep wat die toestande van 'n kamerplant kan monitor. Die toestel stel die gebruiker in staat om die grondvogvlak, humiditeitsvlak, temperatuur en die "voelagtige" temperatuur vanaf 'n slimfoon met behulp van die Blynk-app na te gaan. Die gebruiker sal ook 'n e -pos -waarskuwing ontvang wanneer toestande ongeskik raak vir die aanleg. Die gebruiker sal byvoorbeeld 'n herinnering ontvang om die plant nat te maak wanneer grondvogvlakke onder 'n geskikte vlak daal.

Stap 1: Vereistes

Vereistes
Vereistes
Vereistes
Vereistes
Vereistes
Vereistes

Hierdie projek gebruik 'n Sparkfun ESP32 -ding, 'n DHT22 -sensor en 'n elektroniese baksteengrondvogsensor. Boonop is 'n wifi -netwerk en die Blynk -app nodig. Verkieslik moet 'n waterdigte omhulsel geskep word om die ESP32 -ding te bevat. Alhoewel hierdie voorbeeld 'n standaardaansluiting vir 'n kragbron gebruik, sou die toevoeging van 'n herlaaibare battery, sonpaneel en laaibestuurder die toestel in staat stel om deur hernubare energie aangedryf te word.

Stap 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Laai eers die Blynk -app af en skep 'n nuwe projek. Let op die verifikasietoken-dit sal in die kode gebruik word. Skep nuwe skerm -widgets in die Blynk -app en kies die ooreenstemmende virtuele penne wat in die kode gedefinieer word. Stel die verversingsinterval in om te druk. Elke widget moet sy eie virtuele pen toewys.

Stap 3: Arduino IDE

Arduino IDE
Arduino IDE

Laai Arduino IDE af. Volg die aflaai -instruksies vir die ESP32 ding -bestuurder en die demo om wifi -verbinding te verseker. Laai die Blynk- en DHT -biblioteke af wat in die kode ingesluit is. Vul die verifikasieteken, wifi -wagwoord, wifi -gebruikersnaam en e -posadres in met die finale kode. Gebruik die demokode vir die grondvogsensor om die minimum en maksimum waardes vir die grondsoort te vind. Teken hierdie waardes op en vervang dit in die finale kode. Vervang die minimum waardes vir die temperatuur, grondvog en humiditeit vir die plant in die finale kode. Laai die kode op.

Stap 4: Bou dit

Bou dit
Bou dit
Bou dit
Bou dit
Bou dit
Bou dit

Koppel eers die grondvogsensor aan op 3.3V, grond en invoerpen 34. Let op: die skakelaar is op A ingeskakel omdat die analooginstelling vir hierdie sensor gebruik sal word. Koppel dan die DHT -sensor aan 3.3V, grond en invoerpen 27. Die DHT22 sensor benodig 'n 10K Ohm weerstand tussen die VCC en die data out pin. Kontroleer die DHT -diagram om seker te maak dat dit behoorlik bedraad is. Stel die ESP32 in 'n waterdigte omhulsel op met die vogsensor in die grond en die DHT -sensor bo die oppervlak. Koppel aan 'n kragbron en geniet data oor die omgewing van u aanleg.

Stap 5: Kode

// Ingesluit biblioteke

#define BLYNK_PRINT reeks

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

// DHT sensor inligting

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digitale pen gekoppel aan die DHT sensor DHT dht (DHTPIN, DHTTYPE); // Initialiseer DHT -sensor.

// definieer invoerpenne en uitsette

int soil_sensor = 34; // definieer analoog invoerpen nommer wat gekoppel is aan vogsensor

int output_value; // definieer as uitvoer

int vochtvlak; // definieer as uitset

int aangemeld = 0; // definieer aangemeld as 0

int tydsduur = 60000L; // stel die timer in om data uit te voer, kry elke minuut of 60 000 milisekondes

// stel minimum waardes vir plant

int min_vocht = 20; int min_temperatuur = 75; int min_ humiditeit = 60;

// U moet Auth Token in die Blynk -app kry.

char auth = "Auth_Token_Here";

// U WiFi -geloofsbriewe.

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

BlynkTimer timer;

// Hierdie funksie stuur die sekuriteit van Arduino elke sekonde na Virtual Pin (5).

// In die app moet die leesfrekwensie van Widget op PUSH gestel word. Dit beteken dat u bepaal hoe gereeld data na die Blynk -app gestuur moet word.

void Sensors () // hooffunksie om sensors te lees en na blynk te druk

{output_value = analogRead (soil_sensor); // Lees analoog sein van soil_sensor en definieer as output_value // Map output_vlaue van min, maksimum waardes tot 100, 0 en beperk tussen 0, 100 // Gebruik voorbeeldkode en seriële monitor om min en maksimum waardes vir individuele sensor en grondsoort vir 'n beter kalibrasie vogvlak = beperking (kaart (afvoerwaarde, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Lees humiditeit float t = dht.readTemperature (); // Lees temperatuur as Celsius (die standaard) float f = dht.readTemperature (true); // Lees temperatuur as Fahrenheit (isFahrenheit = true) // Bereken hitte -indeks in Fahrenheit (die standaard) float hif = dht.computeHeatIndex (f, h); // Kontroleer of enige lees misluk het en vertrek vroeg (om weer te probeer). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Kan nie lees van DHT -sensor nie!")); terugkeer; } // Dit verbind valse met virtuele penne wat in die widgets in die Blynk -app gedefinieer word Blynk.virtualWrite (V5, vogvlak); // Stuur vogvlak na virtuele pen 5 Blynk.virtualWrite (V6, f); // Stuur temperatuur na virtuele pen 6 Blynk.virtualWrite (V7, h); // Stuur humiditeit na virtuele pen 7 Blynk.virtualWrite (V8, hif); // Stuur hitte -indeks na virtuele pen 8

as (in kennis gestel == 0)

{if (moisturelevel <= min_vochtigheid) // As moisturelevel gelyk is aan of onder min waarde {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Stuur e -pos aan wateraanleg} vertraging (15000); // Blynk -e -posse moet 15 sekondes van mekaar wees. Vertraag 15000 millisekons as (f <= min_temperatuur) // As temperatuur gelyk is aan of onder min waarde {Blynk.email ("E -pos_Hier", "Plantmonitor", "Temperatuur laag!"); // Stuur 'n e -pos dat die temperatuur laag is

}

vertraging (15000); // Blynk -e -posse moet 15 sekondes van mekaar wees. Vertraag 15000 millisekons as (h <= min_vochtigheid) // As die humiditeit gelyk is aan of onder die min waarde {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // Stuur e -pos dat die humiditeit laag is} kennisgewings = 1; timer.setTimeout (tydsduur *5, resetNotified); // vermenigvuldig die tydsduur met die aantal minute tussen herhalende waarskuwings -e -posse}}}

leegte resetNotified () // funksie geroep om die e -posfrekwensie terug te stel

{kennisgewing = 0; }

leemte opstelling ()

{Serial.begin (9600); // Ontfout konsole Blynk.begin (auth, ssid, pass); // maak verbinding met blynk timer.setInterval (tydsdag, sensors); // Stel 'n funksie op wat elke minuut genoem moet word, of watter tydsduur op dht.begin () ingestel is; // hardloop DHT -sensor}

// Die nietige lus moet slegs blynk.run en timer bevat

leemte -lus () {Blynk.run (); // Begin blynk timer.run (); // Begin BlynkTimer}

Aanbeveel: