Innholdsfortegnelse:

Plant Monitor Bruk ESP32 Thing og Blynk: 5 trinn
Plant Monitor Bruk ESP32 Thing og Blynk: 5 trinn

Video: Plant Monitor Bruk ESP32 Thing og Blynk: 5 trinn

Video: Plant Monitor Bruk ESP32 Thing og Blynk: 5 trinn
Video: MIT App Inventor Кнопки Учебники | Серия уроков № 2 2024, Juni
Anonim
Plantmonitor ved bruk av ESP32 Thing og Blynk
Plantmonitor ved bruk av ESP32 Thing og Blynk
Plantmonitor ved bruk av ESP32 Thing og Blynk
Plantmonitor ved bruk av ESP32 Thing og Blynk

Oversikt

Målet med dette prosjektet er å lage en kompakt enhet som kan overvåke forholdene til et husplante. Enheten lar brukeren sjekke jordfuktighetsnivået, fuktighetsnivået, temperaturen og den "føles-lignende" temperaturen fra en smarttelefon ved hjelp av Blynk-appen. I tillegg vil brukeren motta et e -postvarsel når forholdene blir uegnet for anlegget. For eksempel vil brukeren motta en påminnelse om å vanne planten når jordfuktigheten faller under et passende nivå.

Trinn 1: Krav

Krav
Krav
Krav
Krav
Krav
Krav

Dette prosjektet bruker en Sparkfun ESP32 -ting, en DHT22 -sensor og en elektronisk mursteinjordfuktighetssensor. I tillegg kreves et wifi -nettverk og Blynk -appen. Fortrinnsvis bør det lages et vanntett kabinett for å inneholde ESP32 -tingen. Selv om dette eksemplet bruker en standard stikkontakt for en strømkilde, vil tillegg av et oppladbart batteri, solcellepanel og ladekontroller gjøre det mulig for enheten å få strøm fra fornybar energi.

Trinn 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

For å være, last ned Blynk -appen og lag et nytt prosjekt. Legg merke til autentiseringstokenet-det vil bli brukt i koden. Lag nye display -widgets i Blynk -appen, og velg de tilsvarende virtuelle pinnene som er definert i koden. Angi oppdateringsintervallet for å trykke. Hver widget bør tildeles sin egen virtuelle pin.

Trinn 3: Arduino IDE

Arduino IDE
Arduino IDE

Last ned Arduino IDE. Følg nedlastingsinstruksjonene for ESP32 -tingdriveren og demoen for å sikre wifi -tilkobling. Last ned Blynk- og DHT -bibliotekene som er inkludert i koden. Fyll ut godkjenningstoken, wifi -passord, wifi -brukernavn og e -post i den endelige koden. Bruk demokoden for jordfuktighetssensoren for å finne minimums- og maksimumsverdiene for jordtypen. Registrer og erstatt disse verdiene i den endelige koden. Bytt ut minimumsverdiene for temperaturen, jordfuktigheten og fuktigheten for planten i den endelige koden. Last opp koden.

Trinn 4: Bygg den

Bygg det
Bygg det
Bygg det
Bygg det
Bygg det
Bygg det

Koble først jordfuktighetssensoren til 3,3V, jord og inngangspinne 34. Vær oppmerksom på at bryteren er satt til A fordi den analoge innstillingen for denne sensoren vil bli brukt. Deretter kobler du DHT -sensoren til 3,3V, jord og inngangspinne 27. DHT22 -sensoren krever en 10K Ohm motstand mellom VCC og data out -pinnen. Sørg for å sjekke DHT -diagrammet for å sikre at det er riktig kablet. Konfigurer ESP32 inne i et vanntett kabinett med fuktighetssensoren i jorda og DHT -sensoren over overflaten. Koble til en strømkilde og nyt data om anleggets miljø.

Trinn 5: Kode

// Inkludert biblioteker

#define BLYNK_PRINT Serial

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

// DHT -sensorinformasjon

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

// definere inngangspinner og utganger

int jord_sensor = 34; // definere analogt inngangspinnnummer koblet til fuktighetssensor

int output_value; // definere som output

int fuktighetsnivå; // definere som output

int varslet = 0; // definere notifisert som 0

int tidsdager = 60000L; // sett timeren til å kjøre få data en gang hvert minutt eller 60 000 milisekunder

// angi minimumsverdier for anlegg

int min_fuktighet = 20; int min_temperatur = 75; int min_fuktighet = 60;

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

char auth = "Auth_Token_Here";

// WiFi -legitimasjonen din.

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

BlynkTimer timer;

// Denne funksjonen sender Arduinos oppetid hvert sekund til Virtual Pin (5).

// I appen skal widgets lesefrekvens settes til PUSH. Dette betyr // at du definerer hvor ofte data skal sendes til Blynk App.

void Sensors () // hovedfunksjon for å lese sensorer og skyve til blynk

{output_value = analogRead (soil_sensor); // Les analogt signal fra jord_sensor og definer som output_value // Kart output_vlaue fra min, maks verdier til 100, 0 og begrens mellom 0, 100 // Bruk eksempelkode og seriell skjerm for å finne min og maksverdier for individuell sensor og jordtype for bedre kalibrering fuktighetsnivå = begrensning (kart (utgangsverdi, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Les fuktighetsflyter t = dht.readTemperature (); // Les temperaturen som Celsius (standard) float f = dht.readTemperature (true); // Les temperaturen som Fahrenheit (isFahrenheit = true) // Beregn varmeindeksen i Fahrenheit (standard) float hif = dht.computeHeatIndex (f, h); // Kontroller om noen av lesningene mislyktes, og avslutt tidlig (for å prøve igjen). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Kunne ikke lese fra DHT -sensor!")); komme tilbake; } // Dette kobler verdier til virtuelle pinner definert i widgetene i Blynk -appen Blynk.virtualWrite (V5, fuktighetsnivå); // Send fuktighetsnivå til virtuell pin 5 Blynk.virtualWrite (V6, f); // Send temperatur til virtuell pin 6 Blynk.virtualWrite (V7, h); // Send fuktighet til virtuell pin 7 Blynk.virtualWrite (V8, hif); // Send varmeindeks til virtuell pin 8

hvis (varslet == 0)

{if (fuktighetsnivå <= min_fuktighet) // Hvis fuktighetsnivå er lik eller under minverdi {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Send e -post til vannverket} forsinkelse (15000); // Blynk -e -post må være 15 sekunder fra hverandre. Forsink 15000 millisekunder hvis (f <= min_temperatur) // Hvis temperaturen er lik eller under min verdi {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Send e -post om at temperaturen er lav

}

forsinkelse (15000); // Blynk -e -post må være 15 sekunder fra hverandre. Forsink 15000 millisekunder hvis (h <= min_fuktighet) // Hvis fuktigheten er lik eller under min verdi {Blynk.email ("Emial_Here", "Plant Monitor", "Luftfuktighet lav!"); // Send e -post om at fuktigheten er lav} varslet = 1; timer.setTimeout (timedelay *5, resetNotified); // multipliser timedag med antall minutter ønsket mellom gjentatte advarselsmeldinger}}

void resetNotified () // funksjon kalt for å tilbakestille e -postfrekvensen

{varslet = 0; }

ugyldig oppsett ()

{Serial.begin (9600); // Debug -konsoll Blynk.begin (auth, ssid, pass); // koble til blynk timer.setInterval (timedelay, Sensors); // Sett opp en funksjon som skal kalles hvert minutt eller hvilken tidsperiode som er satt til dht.begin (); // kjør DHT -sensor}

// Void loop skal bare inneholde blynk.run og timer

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

Anbefalt: