Përmbajtje:

Monitorimi i bimëve duke përdorur ESP32 Thing dhe Blynk: 5 hapa
Monitorimi i bimëve duke përdorur ESP32 Thing dhe Blynk: 5 hapa

Video: Monitorimi i bimëve duke përdorur ESP32 Thing dhe Blynk: 5 hapa

Video: Monitorimi i bimëve duke përdorur ESP32 Thing dhe Blynk: 5 hapa
Video: Изучите Arduino за 30 минут: примеры и проекты 2024, Qershor
Anonim
Plant Monitor duke përdorur ESP32 Thing dhe Blynk
Plant Monitor duke përdorur ESP32 Thing dhe Blynk
Plant Monitor duke përdorur ESP32 Thing dhe Blynk
Plant Monitor duke përdorur ESP32 Thing dhe Blynk

Vështrim i përgjithshëm

Qëllimi i këtij projekti është të krijojë një pajisje kompakte në gjendje të monitorojë kushtet e një bime shtëpie. Pajisja i mundëson përdoruesit të kontrollojë nivelin e lagështisë së tokës, nivelin e lagështisë, temperaturën dhe temperaturën "e ngjashme" nga një smartphone duke përdorur Aplikacionin Blynk. Për më tepër, përdoruesi do të marrë një paralajmërim me email kur kushtet bëhen të papërshtatshme për uzinën. Për shembull, përdoruesi do të marrë një kujtesë për të ujitur bimën kur nivelet e lagështisë së tokës bien nën një nivel të përshtatshëm.

Hapi 1: Kërkesat

Kërkesat
Kërkesat
Kërkesat
Kërkesat
Kërkesat
Kërkesat

Ky projekt përdor një gjë Sparkfun ESP32, një sensor DHT22 dhe një sensor elektronik të lagështisë së tokës me tulla. Për më tepër, kërkohet një rrjet wifi dhe aplikacioni Blynk. Mundësisht, një rrethim i papërshkueshëm nga uji duhet të krijohet që të përmbajë sendin ESP32. Ndërsa ky shembull përdor një prizë standarde për një burim energjie, shtimi i një baterie të rimbushshme, panelit diellor dhe kontrolluesit të ngarkimit do të mundësonte që pajisja të mundësohet nga energjia e rinovueshme.

Hapi 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Për të qenë, shkarkoni aplikacionin Blynk dhe krijoni një projekt të ri. Merrni parasysh shenjën e vërtetimit-do të përdoret në kod. Krijoni widget të reja të ekranit në aplikacionin Blynk dhe zgjidhni kunjat përkatëse virtuale të përcaktuara në kod. Vendosni intervalin e rifreskimit për të shtyrë. Çdo widget duhet t'i caktohet kunja e vet virtuale.

Hapi 3: Arduino IDE

Arduino IDE
Arduino IDE

Shkarkoni Arduino IDE. Ndiqni udhëzimet e shkarkimit për drejtuesin e gjërave ESP32 dhe demonstrimin për të siguruar lidhjen wifi. Shkarkoni bibliotekat Blynk dhe DHT të përfshira në kod. Plotësoni shenjën e vërtetimit, fjalëkalimin wifi, emrin e përdoruesit wifi dhe emailin në kodin përfundimtar. Përdorni kodin demo për sensorin e lagështisë së tokës për të gjetur vlerat minimale dhe maksimale për llojin e tokës. Regjistroni dhe zëvendësoni këto vlera në kodin përfundimtar. Zëvendësoni vlerat minimale për temperaturën, lagështinë e tokës dhe lagështinë për bimën në kodin përfundimtar. Ngarko kodin.

Hapi 4: Ndërtoni atë

Ndërtojeni atë
Ndërtojeni atë
Ndërtojeni atë
Ndërtojeni atë
Ndërtojeni atë
Ndërtojeni atë

Së pari, lidhni sensorin e lagështisë së tokës me 3.3V, tokëzimin dhe pinin hyrës 34. Shënim, është integrale çelësi është vendosur në A sepse do të përdoret cilësimi analog për këtë sensor. Tjetra, lidhni sensorin DHT me pinin 3.3V, tokëzimin dhe hyrjen 27. Sensori DHT22 kërkon një rezistencë 10K Ohm midis VCC dhe pinit të të dhënave. Sigurohuni që të kontrolloni diagramin DHT për të siguruar që është i lidhur siç duhet. Konfiguroni ESP32 brenda një rrethimi të papërshkueshëm nga uji me sensorin e lagështisë në tokë dhe sensorin DHT mbi sipërfaqe. Lidhuni me një burim energjie dhe shijoni të dhëna për mjedisin e impiantit tuaj.

Hapi 5: Kodi

// Bibliotekat e përfshira

#define BLYNK_PRINT Serial

#përfshi #përfshi #përfshi #përfshi "DHT.h"

// Informacioni i sensorit DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Kodi dixhital i lidhur me sensorin DHT DHT dht (DHTPIN, DHTTYPE); // Filloni sensorin DHT.

// përcaktoni kunjat dhe daljet hyrëse

int -sensori i dheut = 34; // përcaktoni numrin pin të hyrjes analoge të lidhur me sensorin e lagështisë

int output_vlera; // përcakto si dalje

int lagështia; // përcakto si dalje

int i njoftuar = 0; // përcakto notifed si 0

int timedelay = 60000L; // vendosni kohëmatësin për të ekzekutuar marrjen e të dhënave një herë në minutë ose 60, 000 milisekonda

// vendosni vlerat minimale për uzinën

int min_moisture = 20; int min_temperatura = 75; int min_ lagështi = 60;

// Ju duhet të merrni Auth Token në Aplikacionin Blynk.

char auth = "Auth_Token_Here";

// Kredencialet tuaja WiFi.

char ssid = "Wifi_Network_Here"; kaloni char = "Wifi_Password_Here";

Kohëmatës BlynkTimer;

// Ky funksion dërgon kohën e ngritjes së Arduino çdo sekondë në Virtual Pin (5).

// Në aplikacion, frekuenca e leximit të Widget duhet të vendoset në PUSH. Kjo do të thotë // që ju të përcaktoni sa shpesh të dërgoni të dhëna në Blynk App.

sensorë të pavlefshëm () // funksioni kryesor për të lexuar sensorë dhe shtyrë në blynk

{output_value = analogRead (sensor_i tokës); // Lexoni sinjalin analog nga senzori i tokës dhe përcaktoni si vlerë dalëse // Hartoni daljen_vlaue nga min, vlerat maksimale në 100, 0 dhe kufizoni mes 0, 100 // Përdorni kodin e mostrës dhe monitorin serik për të gjetur min dhe vlerat maksimale për sensorin individual dhe llojin e tokës për kalibrim më të mirë niveli i lagështisë = kufizim (hartë (vlera e daljes, 1000, 4095, 100, 0), 0, 100); noton h = dht.readHumidity (); // Lexo lagështinë noton t = dht.readTemperature (); // Lexoni temperaturën si Celsius (parazgjedhja) noton f = dht.readTemperature (e vërtetë); // Lexo temperaturën si Fahrenheit (isFahrenheit = e vërtetë) // Llogarit indeksin e nxehtësisë në Fahrenheit (parazgjedhja) noton hif = dht.computeHeatIndex (f, h); // Kontrolloni nëse ndonjë lexim dështoi dhe dilni herët (për të provuar përsëri). nëse (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Dështoi të lexohet nga sensori DHT!")); kthim; } // Kjo lidh vales me kunjat virtuale të përcaktuara në miniaplikacionet në aplikacionin Blynk Blynk.virtualWrite (V5, niveli i lagështisë); // Dërgo nivelin e lagështisë në kunjin virtual 5 Blynk.virtualWrite (V6, f); // Dërgo temperaturën në virtuale pin 6 Blynk.virtualWrite (V7, h); // Dërgoni lagështi në pinin virtual 7 Blynk.virtualWrite (V8, hif); // Dërgoni indeksin e nxehtësisë në pinin virtual 8

nëse (njoftuar == 0)

{nëse (niveli i lagështisë <= min_moisture) // Nëse niveli i lagështisë është i barabartë me ose nën vlerën min {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Dërgo email tek uzina} vonesë (15000); // Email -et e Blynk duhet të jenë 15 sekonda larg. Vononi 15000 milisekonda nëse (f <= min_temperatura) // Nëse temperatura është e barabartë ose nën vlerën min {Blynk.email ("Email_Here", "Plant Monitor", "Temperatura e ulët!"); // Dërgoni email se temperatura është e ulët

}

vonesë (15000); // Email -et e Blynk duhet të jenë 15 sekonda larg. Vononi 15000 milisekonda nëse (h <= lagështia min) // Nëse lagështia është e barabartë ose nën vlerën min {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // Dërgo email se lagështia është e ulët} njoftuar = 1; timer.setTimeout (afati kohor *5, resetNotified); // shumëfisho vonesën kohore me numrin e minutave të kërkuar midis email -eve paralajmëruese të përsëritura}}

void resetNotified () // funksioni i thirrur për të rivendosur frekuencën e postës elektronike

{i njoftuar = 0; }

void setup ()

{Serial.fillo (9600); // Konzola e korrigjimit Blynk.begin (auth, ssid, pass); // lidheni me kohëmatësin blynk.setInterval (vonesë kohore, Sensorë); // Vendosni një funksion që do të thirret çdo minutë ose atë që vonesa kohore është caktuar në dht.begin (); // drejtoni sensorin DHT}

// Void loop duhet të përmbajë vetëm blynk.run dhe kohëmatës

lak void () {Blynk.run (); // Drejtoni blynk timer.run (); // Nis BlynkTimer}

Recommended: