Indholdsfortegnelse:

Plant Monitor Brug ESP32 Thing og Blynk: 5 trin
Plant Monitor Brug ESP32 Thing og Blynk: 5 trin

Video: Plant Monitor Brug ESP32 Thing og Blynk: 5 trin

Video: Plant Monitor Brug ESP32 Thing og Blynk: 5 trin
Video: Coding Sequential LED Tail Lights! C++/ESP32/Arduino Project 2024, November
Anonim
Plant Monitor ved hjælp af ESP32 Thing og Blynk
Plant Monitor ved hjælp af ESP32 Thing og Blynk
Plant Monitor ved hjælp af ESP32 Thing og Blynk
Plant Monitor ved hjælp af ESP32 Thing og Blynk

Oversigt

Målet med dette projekt er at skabe en kompakt enhed, der er i stand til at overvåge forholdene i et stueplante. Enheden gør det muligt for brugeren at kontrollere jordens fugtighedsniveau, fugtighedsniveau, temperatur og den "føles-lignende" temperatur fra en smartphone ved hjælp af Blynk-appen. Derudover vil brugeren modtage en e -mail -advarsel, når forholdene bliver uegnede for anlægget. For eksempel vil brugeren modtage en påmindelse om at vande planten, når jordens fugtighedsniveau falder til et passende niveau.

Trin 1: Krav

Krav
Krav
Krav
Krav
Krav
Krav

Dette projekt bruger en Sparkfun ESP32 -ting, en DHT22 -sensor og en elektronisk fugtsensor i mursten. Derudover er et wifi -netværk og Blynk -appen påkrævet. Fortrinsvis bør der oprettes et vandtæt kabinet for at indeholde ESP32 -tingen. Selvom dette eksempel anvender en standardstik til en strømkilde, ville tilføjelse af et genopladeligt batteri, solpanel og opladningsregulator gøre det muligt for enheden at blive drevet via vedvarende energi.

Trin 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

For at være, skal du downloade Blynk -appen og oprette et nyt projekt. Bemærk godkendelsestokenet-det vil blive brugt i koden. Opret nye displaywidgets i Blynk -appen, og vælg de tilsvarende virtuelle pins, der er defineret i koden. Indstil opdateringsintervallet til at skubbe. Hver widget skal have sin egen virtuelle pin.

Trin 3: Arduino IDE

Arduino IDE
Arduino IDE

Download Arduino IDE. Følg downloadinstruktionerne til ESP32 -tingdriveren og demoen for at sikre wifi -forbindelse. Download Blynk- og DHT -bibliotekerne, der er inkluderet i koden. Udfyld godkendelsestoken, wifi -adgangskode, wifi -brugernavn og e -mail i den sidste kode. Brug demokoden til jordfugtighedsføleren til at finde minimums- og maksimumværdierne for jordtypen. Registrer og udskift disse værdier i den endelige kode. Udskift minimumsværdierne for temperaturen, jordfugtigheden og fugtigheden for planten i den endelige kode. Upload koden.

Trin 4: Byg det

Byg den
Byg den
Byg den
Byg den
Byg den
Byg den

Tilslut først jordfugtighedsføleren til 3,3V, jord og indgangsstift 34. Bemærk, det er integreret, at kontakten er sat til A, fordi den analoge indstilling for denne sensor vil blive brugt. Tilslut derefter DHT -sensoren til 3,3V, jord og input -pin 27. DHT22 -sensoren kræver en 10K Ohm -modstand mellem VCC og data -out -stiften. Sørg for at kontrollere DHT -diagrammet for at sikre, at det er korrekt forbundet. Konfigurer ESP32 inde i et vandtæt kabinet med fugtføleren i jorden og DHT -sensoren over overfladen. Opret forbindelse til en strømkilde, og nyd data om dit anlægs miljø.

Trin 5: Kode

// Inkluderede biblioteker

#define BLYNK_PRINT Serial

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

// DHT -sensorinformation

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digital pin tilsluttet DHT -sensoren DHT dht (DHTPIN, DHTTYPE); // Initialiser DHT -sensor.

// definere input pins og output

int jord_sensor = 34; // definer analog input -pin -nummer, der er forbundet til fugtføler

int output_value; // definer som output

int fugtighedsniveau; // definer som output

int anmeldt = 0; // definere notificeret som 0

int tidsdage = 60000L; // indstil timeren til at køre få data en gang hvert minut eller 60.000 milisekunder

// sæt minimumsværdier for anlæg

int min_fugtighed = 20; int min_temperatur = 75; int min_fugtighed = 60;

// Du bør få Auth Token i Blynk -appen.

char auth = "Auth_Token_Here";

// Dine WiFi -legitimationsoplysninger.

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

BlynkTimer timer;

// Denne funktion sender Arduinos up -time hvert sekund til Virtual Pin (5).

// I appen skal widgets læsefrekvens indstilles til PUSH. Det betyder //, at du definerer, hvor ofte data skal sendes til Blynk App.

void Sensors () // hovedfunktion til at læse sensorer og skubbe til blynk

{output_value = analogRead (jord_sensor); // Læs analogt signal fra jord_sensor og definer som output_value // Kort output_vlaue fra min, max værdier til 100, 0 og begræns mellem 0, 100 // Brug prøvekode og seriel monitor til at finde min og maks. værdier for individuel sensor og jordtype for bedre kalibrering fugtniveau = begrænsning (kort (output_værdi, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Læs luftfugtighed float t = dht.readTemperature (); // Læs temperaturen som Celsius (standard) float f = dht.readTemperature (true); // Læs temperaturen som Fahrenheit (isFahrenheit = true) // Beregn varmeindeks i Fahrenheit (standard) float hif = dht.computeHeatIndex (f, h); // Kontroller, om nogen læsning mislykkedes, og afslut tidligt (for at prøve igen). hvis (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Kunne ikke læse fra DHT -sensor!")); Vend tilbage; } // Dette forbinder værdier med virtuelle pins, der er defineret i widgets i Blynk -appen Blynk.virtualWrite (V5, fugtighedsniveau); // Send fugtniveau til virtuel pin 5 Blynk.virtualWrite (V6, f); // Send temperatur til virtuel pin 6 Blynk.virtualWrite (V7, h); // Send luftfugtighed til virtuel pin 7 Blynk.virtualWrite (V8, hif); // Send varmeindeks til virtuel pin 8

hvis (meddelt == 0)

{if (fugtighedsniveau <= min_fugtighed) // Hvis fugtighedsniveau er lig med eller under min værdi {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Send e -mail til vandværk} forsinkelse (15000); // Blynk -e -mails skal være 15 sekunder fra hinanden. Forsink 15000 millisekoner hvis (f <= min_temperatur) // Hvis temperaturen er lig med eller under min værdi {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Send e -mail om, at temperaturen er lav

}

forsinkelse (15000); // Blynk -e -mails skal være 15 sekunder fra hinanden. Forsink 15000 millisekunder hvis (h <= min_fugtighed) // Hvis luftfugtigheden er lig med eller under min værdi {Blynk.email ("Emial_Here", "Plant Monitor", "Fugtighed lav!"); // Send e -mail om, at luftfugtigheden er lav} underrettet = 1; timer.setTimeout (timedelay *5, resetNotified); // multiplicere tidsdage med antallet af ønskede minutter mellem gentagne advarselsmails}}

void resetNotified () // funktion kaldet til at nulstille e -mailfrekvens

{meddelt = 0; }

ugyldig opsætning ()

{Serial.begin (9600); // Debug -konsol Blynk.begin (auth, ssid, pass); // opret forbindelse til blynk timer.setInterval (tidsdage, sensorer); // Indstil en funktion, der skal kaldes hvert minut, eller hvilken tidsdage der er indstillet til dht.begin (); // kør DHT -sensor}

// Ugyldig loop bør kun indeholde blynk.run og timer

void loop () {Blynk.run (); // Kør blynk timer.run (); // Starter BlynkTimer}

Anbefalede: