Cuprins:
Video: Monitor de plante folosind ESP32 Thing și Blynk: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Prezentare generală
Scopul acestui proiect este de a crea un dispozitiv compact capabil să monitorizeze condițiile unei plante de apartament. Dispozitivul permite utilizatorului să verifice nivelul de umiditate al solului, nivelul de umiditate, temperatura și temperatura „simțită” de pe un smartphone folosind aplicația Blynk. În plus, utilizatorul va primi o alertă prin e-mail atunci când condițiile devin inadecvate pentru uzină. De exemplu, utilizatorul va primi un memento pentru a uda planta când nivelurile de umiditate ale solului scad sub un nivel adecvat.
Pasul 1: Cerințe
Acest proiect folosește un obiect Sparkfun ESP32, un senzor DHT22 și un senzor electronic de umiditate a cărămizii. În plus, sunt necesare o rețea wifi și aplicația Blynk. De preferință, ar trebui creată o incintă impermeabilă pentru a conține elementul ESP32. În timp ce acest exemplu folosește o priză standard pentru o sursă de alimentare, adăugarea unei baterii reîncărcabile, a unui panou solar și a unui controler de încărcare ar permite dispozitivului să fie alimentat prin energie regenerabilă.
Pasul 2: Blynk
Pentru a fi, descărcați aplicația Blynk și creați un proiect nou. Rețineți jetonul de autentificare - acesta va fi utilizat în cod. Creați widget-uri de afișare noi în aplicația Blynk și selectați pinii virtuali corespunzători definiți în cod. Setați intervalul de reîmprospătare pentru a împinge. Fiecărui widget i se va atribui propriul pin virtual.
Pasul 3: Arduino IDE
Descărcați Arduino IDE. Urmați instrucțiunile de descărcare pentru driverul ESP32 și demo pentru a vă asigura conectivitatea wifi. Descărcați bibliotecile Blynk și DHT incluse în cod. Completați simbolul de autentificare, parola wifi, numele de utilizator wifi și e-mailul în codul final. Utilizați codul demonstrativ pentru senzorul de umiditate al solului pentru a găsi valorile minime și maxime pentru tipul de sol. Înregistrați și înlocuiți aceste valori în codul final. Înlocuiți valorile minime pentru temperatură, umiditatea solului și umiditatea plantei din codul final. Încărcați codul.
Pasul 4: Construiește-l
Mai întâi, conectați senzorul de umiditate a solului la 3,3V, la masă și pinul de intrare 34. Notă, este integral, comutatorul este setat la A, deoarece va fi utilizată setarea analogică pentru acest senzor. Apoi, conectați senzorul DHT la 3,3V, la masă și pinul de intrare 27. Senzorul DHT22 necesită un rezistor de 10K Ohm între VCC și pinul de ieșire a datelor. Asigurați-vă că verificați diagrama DHT pentru a vă asigura că este bine conectată. Configurați ESP32 în interiorul unei carcase impermeabile cu senzorul de umiditate din sol și senzorul DHT deasupra suprafeței. Conectați-vă la o sursă de alimentare și bucurați-vă de date despre mediul instalației dvs.
Pasul 5: Cod
// Biblioteci incluse
#define BLYNK_PRINT Serial
#include #include #include #include "DHT.h"
// Informații despre senzorul DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Pin digital conectat la senzorul DHT DHT dht (DHTPIN, DHTTYPE); // Inițializați senzorul DHT.
// definiți pinii și ieșirile de intrare
int soil_sensor = 34; // definiți numărul pinului de intrare analogic conectat la senzorul de umiditate
int output_value; // definește ca output
int moisturelevel; // definește ca ieșire
int notificat = 0; // definește notificat ca 0
int timedelay = 60000L; // setați temporizatorul să ruleze obțineți date o dată pe minut sau 60 000 de milisecunde
// setați valori minime pentru plantă
int min_moisture = 20; int min_temperature = 75; int min_umiditate = 60;
// Ar trebui să obțineți Auth Token în aplicația Blynk.
char auth = "Auth_Token_Here";
// Acreditările dvs. WiFi.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
Temporizator BlynkTimer;
// Această funcție trimite timpul de funcționare al Arduino în fiecare secundă la Virtual Pin (5).
// În aplicație, frecvența de citire a widgetului trebuie setată la PUSH. Aceasta înseamnă // că definiți cât de des trimiteți date către aplicația Blynk.
void Sensors () // funcția principală pentru citirea senzorilor și împingerea la blynk
{output_value = analogRead (soil_sensor); // Citiți semnalul analogic de la soil_sensor și definiți ca output_value // Harta output_vlaue de la valorile min, max la 100, 0 și constrângeți între 0, 100 // Utilizați codul eșantion și monitorul serial pentru a găsi min și valorile maxime pentru senzorul individual și tipul de sol pentru o calibrare mai bună umiditate = constrângere (hartă (valoare_output, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Citește umiditatea float t = dht.readTemperature (); // Citiți temperatura ca Celsius (implicit) float f = dht.readTemperature (adevărat); // Citiți temperatura ca Fahrenheit (isFahrenheit = true) // Calculați indicele de căldură în Fahrenheit (implicit) float hif = dht.computeHeatIndex (f, h); // Verificați dacă citirile au eșuat și ieșiți devreme (pentru a încerca din nou). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Nu s-a citit de la senzorul DHT!")); întoarcere; } // Aceasta conectează valele la pinii virtuali definiți în widgeturile din aplicația Blynk Blynk.virtualWrite (V5, moisturelevel); // Trimiteți nivelul de umiditate la pinul virtual 5 Blynk.virtualWrite (V6, f); // Trimiteți temperatura la virtual pinul 6 Blynk.virtualWrite (V7, h); // Trimiteți umiditatea pinului virtual 7 Blynk.virtualWrite (V8, hif); // Trimiteți indexul de căldură pinului virtual 8
if (notificat == 0)
{if (moisturelevel <= min_moisture) // Dacă moisturelevel este egal sau sub valoarea minimă {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Trimiteți e-mail la instalația de apă} delay (15000); // E-mailurile Blynk trebuie să fie la distanță de 15 secunde. Întârziați 15000 de milisecunde dacă (f <= min_temperature) // Dacă temperatura este egală cu sau sub valoarea minimă {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Trimiteți un e-mail că temperatura este scăzută
}
întârziere (15000); // E-mailurile Blynk trebuie să fie la distanță de 15 secunde. Întârziați 15000 de milisecunde dacă (h <= min_humiditate) // Dacă umiditatea este egală cu sau sub valoarea minimă {Blynk.email ("Emial_Here", "Monitorul plantei", "Umiditate scăzută!"); // Trimiteți un e-mail că umiditatea este scăzută} notificat = 1; timer.setTimeout (timedelay * 5, resetNotified); // înmulțirea temporizării cu numărul de minute dorite între e-mailurile de avertizare repetate}}
void reset Notificat () // funcție apelată pentru a reseta frecvența e-mailului
{notificat = 0; }
configurare nulă ()
{Serial.begin (9600); // Consola de depanare Blynk.begin (auth, ssid, pass); // conectați-vă la blynk timer.setInterval (timedelay, senzori); // Configurați o funcție care să fie apelată în fiecare minut sau ce temporizare este setată la dht.begin (); // rulați senzorul DHT}
// Bucla de vid trebuie să conțină numai blynk.run și timer
bucla void () {Blynk.run (); // Rulați blynk timer.run (); // Inițiază BlynkTimer}
Recomandat:
Monitor inteligent pentru plante de interior - Aflați când planta dvs. are nevoie de udare: 8 pași (cu imagini)
Monitor inteligent pentru plante de interior - Știți când planta dvs. are nevoie de udare: acum câteva luni, am realizat un stick de monitorizare a umidității solului care este alimentat cu baterii și care poate fi blocat în sol în vasul plantei dvs. de interior pentru a vă oferi câteva informații utile despre sol nivelul de umiditate și LED-urile blițului pentru a vă spune când trebuie să
Sistemul de irigare automat pentru plante: 8 pași
Sistema De Irrigação Automático Para Plantas: A irrigação é uma das tecnologias mais utiladas por agricultores pois esta atividade independe da ocorrência de chuvas, garante uma safra uniforme, reduz a falha humana, minimiza o consumo de água (folosind apenas when necessário) e minimiza os
Grădină inteligentă de plante interioare: 6 pași (cu imagini)
Grădină inteligentă de plante interioare: În acest instructiv, vă voi arăta cum am făcut grădina mea inteligentă de plante interioare! Am avut câteva inspirații pentru acest proiect, prima fiind că am avut ceva interes pentru modelele Aerogarden de acasă. În plus, am avut un Arduino Mega w neutilizat
Ghiveci automat pentru plante - Grădina mică: 13 pași (cu imagini)
Ghiveci automat pentru plante - Little Garden: Sunt student la tehnologia multimedia și de comunicare la Howest Kortrijk. Pentru misiunea noastră finală, a trebuit să dezvoltăm un proiect IoT la alegere. Privind în jur după idei, am decis să fac ceva util mamei mele care iubește cultivarea
Construiți o oală de auto-udare DIY cu WiFi - Apă plante automat și trimite alerte când apa este scăzută: 19 pași
Construiți o oală de auto-udare DIY cu WiFi - Apă plantele în mod automat și trimite alerte când apa este scăzută: Acest tutorial vă arată cum să construiți o jardinieră personalizată conectată la Wi-Fi folosind o jardinieră veche, un coș de gunoi, o parte din adeziv și un auto Set de subansamble ghivece de udare de la Adosia