Innehållsförteckning:

Växtmonitor med ESP32 Thing och Blynk: 5 steg
Växtmonitor med ESP32 Thing och Blynk: 5 steg

Video: Växtmonitor med ESP32 Thing och Blynk: 5 steg

Video: Växtmonitor med ESP32 Thing och Blynk: 5 steg
Video: Säg Time | Hantera din tid och öka produktiviteten 2024, November
Anonim
Växtmonitor med hjälp av ESP32 Thing och Blynk
Växtmonitor med hjälp av ESP32 Thing och Blynk
Växtmonitor med hjälp av ESP32 Thing och Blynk
Växtmonitor med hjälp av ESP32 Thing och Blynk

Översikt

Målet med detta projekt är att skapa en kompakt enhet som kan övervaka villkoren för en krukväxt. Enheten gör det möjligt för användaren att kontrollera markfuktighetsnivån, fuktighetsnivån, temperaturen och den "känns" temperaturen från en smartphone med hjälp av Blynk-appen. Dessutom kommer användaren att få ett e -postmeddelande när förhållandena blir olämpliga för anläggningen. Till exempel får användaren en påminnelse om att vattna växten när markens fuktnivåer sjunker under en lämplig nivå.

Steg 1: Krav

Krav
Krav
Krav
Krav
Krav
Krav

Det här projektet använder en Sparkfun ESP32 -sak, en DHT22 -sensor och en elektronisk muringsjordfuktighetssensor. Dessutom krävs ett wifi -nätverk och Blynk -appen. Helst bör ett vattentätt hölje skapas för att innehålla ESP32 -saken. Även om detta exempel använder ett standarduttag för en strömkälla, skulle tillägget av ett uppladdningsbart batteri, solpanel och laddningsregulator möjliggöra att enheten drivs med förnybar energi.

Steg 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

För att vara, ladda ner Blynk -appen och skapa ett nytt projekt. Notera autentiseringstoken-den kommer att användas i koden. Skapa nya bildskärmswidgets i Blynk -appen och välj motsvarande virtuella stift som definieras i koden. Ställ in uppdateringsintervallet för att pusha. Varje widget bör tilldelas sin egen virtuella pin.

Steg 3: Arduino IDE

Arduino IDE
Arduino IDE

Ladda ner Arduino IDE. Följ nedladdningsinstruktionerna för ESP32 -sakdrivrutinen och demon för att säkerställa wifi -anslutning. Ladda ner Blynk- och DHT -biblioteken som ingår i koden. Fyll i autentiseringstoken, wifi -lösenordet, wifi -användarnamnet och e -postmeddelandet i den slutliga koden. Använd demokoden för jordfuktighetssensorn för att hitta minimi- och maxvärden för jordtypen. Spela in och ersätt dessa värden i den slutliga koden. Ersätt minimivärdena för temperaturen, markfuktigheten och fuktigheten för växten i den slutliga koden. Ladda upp koden.

Steg 4: Bygg det

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

Anslut först jordfuktighetssensorn till 3,3V, jord och ingångsstift 34. Observera att det är integrerat att omkopplaren är inställd på A eftersom den analoga inställningen för denna sensor kommer att användas. Anslut sedan DHT -sensorn till 3,3V, jord och ingångsstift 27. DHT22 -sensorn kräver ett 10K Ohm -motstånd mellan VCC och data -ut -stiftet. Var noga med att kontrollera DHT -diagrammet för att se till att det är korrekt anslutet. Konfigurera ESP32 inuti ett vattentätt hölje med fuktsensorn i jorden och DHT -sensorn ovanför ytan. Anslut till en strömkälla och njut av data om din anläggningsmiljö.

Steg 5: Kod

// Inkluderade bibliotek

#define BLYNK_PRINT Serial

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

// DHT -sensorinformation

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digital pin ansluten till DHT -sensorn DHT dht (DHTPIN, DHTTYPE); // Initiera DHT -sensorn.

// definiera ingångsstiften och utgångarna

int jord_sensor = 34; // definiera det analoga ingångsstiftnumret som är anslutet till fuktsensorn

int output_value; // definiera som output

int fuktnivå; // definiera som output

int anmält = 0; // definiera anmält som 0

int timedelay = 60000L; // ställ in timern för att köra hämta data en gång varje minut eller 60 000 milisekunder

// ange minimivärden för anläggningen

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";

// Dina WiFi -uppgifter.

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

BlynkTimer -timer;

// Denna funktion skickar Arduinos upptid varje sekund till Virtual Pin (5).

// I appen ska widgets läsfrekvens ställas in på PUSH. Det betyder // att du definierar hur ofta du ska skicka data till Blynk App.

void Sensors () // huvudfunktion för att läsa sensorer och trycka till blynk

{output_value = analogRead (soil_sensor); // Läs analog signal från jord_sensor och definiera som output_value // Map output_vlaue från min, maxvärden till 100, 0 och begränsa mellan 0, 100 // Använd provkod och seriell bildskärm för att hitta min och maxvärden för individuell sensor och jordtyp för bättre kalibrering fuktnivå = begränsning (map (output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Läs luftfuktighet float t = dht.readTemperature (); // Läs temperaturen som Celsius (standard) float f = dht.readTemperature (true); // Läs temperaturen som Fahrenheit (isFahrenheit = true) // Beräkna värmeindex i Fahrenheit (standard) float hif = dht.computeHeatIndex (f, h); // Kontrollera om någon läsning misslyckades och avsluta tidigt (för att försöka igen). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Det gick inte att läsa från DHT -sensor!")); lämna tillbaka; } // Detta ansluter värden till virtuella stift definierade i widgetarna i Blynk -appen Blynk.virtualWrite (V5, fuktnivå); // Skicka fuktnivå till virtuell pin 5 Blynk.virtualWrite (V6, f); // Skicka temperatur till virtuell pin 6 Blynk.virtualWrite (V7, h); // Skicka fuktighet till virtuell pin 7 Blynk.virtualWrite (V8, hif); // Skicka värmeindex till virtuell pin 8

om (meddelat == 0)

{if (fuktnivå <= min_fuktighet) // Om fuktnivå är lika med eller lägre än minvärdet {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Skicka e -post till vattenverk} fördröjning (15000); // Blynk -e -postmeddelanden måste vara 15 sekunder från varandra. Fördröj 15000 millisekoner om (f <= min_temperatur) // Om temperaturen är lika med eller under minvärdet {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Skicka e -post om att temperaturen är låg

}

fördröjning (15000); // Blynk -mejl måste ha 15 sekunders mellanrum. Fördröj 15000 millisekoner om (h <= min_fuktighet) // Om luftfuktigheten är lika med eller under minvärdet {Blynk.email ("Emial_Here", "Plant Monitor", "Luftfuktighet låg!"); // Skicka e -post om att luftfuktigheten är låg} aviserad = 1; timer.setTimeout (timedelay *5, resetNotified); // multiplicera tidsdag med antalet minuter som önskas mellan upprepade varningsmeddelanden}}

void resetNotified () // funktion kallad för att återställa e -postfrekvensen

{anmält = 0; }

void setup ()

{Serial.begin (9600); // Debug -konsolen Blynk.begin (auth, ssid, pass); // ansluta till blynk timer.setInterval (timedelay, Sensors); // Ställ in en funktion som ska kallas varje minut eller vilken tidsperiod som är inställd på dht.begin (); // kör DHT -sensor}

// Void loop ska bara innehålla blynk.run och timer

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

Rekommenderad: