Satura rādītājs:

Augu monitors, izmantojot ESP32 Thing un Blynk: 5 soļi
Augu monitors, izmantojot ESP32 Thing un Blynk: 5 soļi

Video: Augu monitors, izmantojot ESP32 Thing un Blynk: 5 soļi

Video: Augu monitors, izmantojot ESP32 Thing un Blynk: 5 soļi
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, Jūnijs
Anonim
Augu monitors, izmantojot ESP32 Thing un Blynk
Augu monitors, izmantojot ESP32 Thing un Blynk
Augu monitors, izmantojot ESP32 Thing un Blynk
Augu monitors, izmantojot ESP32 Thing un Blynk

Pārskats

Šī projekta mērķis ir izveidot kompaktu ierīci, kas spēj uzraudzīt istabas auga apstākļus. Ierīce ļauj lietotājam pārbaudīt viedtālruņa augsnes mitruma līmeni, mitruma līmeni, temperatūru un "jūtamo" temperatūru, izmantojot lietotni Blynk. Turklāt lietotājs saņems e -pasta brīdinājumu, ja apstākļi kļūs nepiemēroti rūpnīcai. Piemēram, lietotājs saņems atgādinājumu par augu laistīšanu, kad augsnes mitruma līmenis nokrītas zem piemērota līmeņa.

1. darbība. Prasības

Prasības
Prasības
Prasības
Prasības
Prasības
Prasības

Šajā projektā tiek izmantota lieta Sparkfun ESP32, DHT22 sensors un elektroniskais ķieģeļu augsnes mitruma sensors. Turklāt ir nepieciešams wifi tīkls un lietotne Blynk. Vēlams izveidot ūdensnecaurlaidīgu korpusu, kas satur ESP32 lietu. Lai gan šajā piemērā strāvas avotam tiek izmantota standarta kontaktligzda, uzlādējama akumulatora, saules paneļa un uzlādes kontrollera pievienošana ļautu ierīci darbināt, izmantojot atjaunojamo enerģiju.

2. solis: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Lai to izdarītu, lejupielādējiet lietotni Blynk un izveidojiet jaunu projektu. Ņemiet vērā autentifikācijas marķieri-tas tiks izmantots kodā. Izveidojiet jaunus displeja logrīkus lietotnē Blynk un atlasiet atbilstošās virtuālās tapas, kas definētas kodā. Iestatiet atsvaidzināšanas intervālu. Katram logrīkam jāpiešķir sava virtuālā tapa.

3. darbība: Arduino IDE

Arduino IDE
Arduino IDE

Lejupielādējiet Arduino IDE. Izpildiet lejupielādes instrukcijas ESP32 lietas draiverim un demonstrācijai, lai nodrošinātu wifi savienojumu. Lejupielādējiet kodā iekļautās Blynk un DHT bibliotēkas. Galīgajā kodā ievadiet autentifikācijas marķieri, wifi paroli, wifi lietotājvārdu un e -pastu. Izmantojiet augsnes mitruma sensora demonstrācijas kodu, lai atrastu minimālās un maksimālās vērtības augsnes tipam. Ierakstiet un nomainiet šīs vērtības galīgajā kodā. Galīgajā kodā nomainiet augu minimālās temperatūras, augsnes mitruma un mitruma vērtības. Augšupielādējiet kodu.

4. solis: izveidojiet to

Veidojiet to
Veidojiet to
Veidojiet to
Veidojiet to
Veidojiet to
Veidojiet to

Vispirms pieslēdziet augsnes mitruma sensoru pie 3.3V, zemes un ieejas tapas 34. Ņemiet vērā, ka slēdzis ir integrēts stāvoklī A, jo tiks izmantots šī sensora analogais iestatījums. Pēc tam pievienojiet DHT sensoru pie 3.3V, zemes un ieejas tapas 27. DHT22 sensoram ir nepieciešams 10K omu rezistors starp VCC un datu izvades tapu. Noteikti pārbaudiet DHT diagrammu, lai pārliecinātos, ka tā ir pareizi pievienota vadiem. Konfigurējiet ESP32 ūdensnecaurlaidīgā korpusā ar mitruma sensoru augsnē un DHT sensoru virs virsmas. Pievienojieties strāvas avotam un izbaudiet datus par savas iekārtas vidi.

5. darbība: kods

// Iekļautās bibliotēkas

#define BLYNK_PRINT Seriāls

#iekļaut #iekļaut #iekļaut #iekļaut "DHT.h"

// DHT sensora informācija

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digitālā tapa, kas savienota ar DHT sensoru DHT dht (DHTPIN, DHTTYPE); // Inicializēt DHT sensoru.

// definēt ievades tapas un izejas

int augsnes_sensors = 34; // definējiet mitruma sensoram pievienoto analogās ieejas tapas numuru

int output_value; // definēt kā izvadi

int mitruma līmenis; // definēt kā izvadi

int paziņots = 0; // definēt notifed kā 0

int laika kavēšanās = 60000L; // iestatiet taimeri, lai tas darbotos, iegūstiet datus reizi minūtē vai 60 000 milisekundēs

// iestatiet augu minimālās vērtības

int min_mitrums = 20; int min_temperatūra = 75; int min_mitrums = 60;

// Jums vajadzētu iegūt autentifikācijas marķieri lietotnē Blynk.

char auth = "Auth_Token_Here";

// Jūsu WiFi akreditācijas dati.

char ssid = "Wifi_tīkla_šeit"; char pass = "Wifi_Password_Here";

BlynkTimer taimeris;

// Šī funkcija katru sekundi nosūta Arduino darbības laiku uz virtuālo tapu (5).

// Lietotnē logrīka lasīšanas biežumam jābūt iestatītam uz PUSH. Tas nozīmē //, ka jūs definējat, cik bieži sūtīt datus uz lietotni Blynk.

void Sensors () // galvenā funkcija sensoru nolasīšanai un piespiešanai pie blynk

{output_value = analogRead (ground_sensor); // Lasiet analogo signālu no ground_sensor un definējiet kā output_value // Kartējiet output_vlaue no min, max vērtības līdz 100, 0 un ierobežojiet starp 0, 100 // Izmantojiet parauga kodu un sērijas monitoru, lai atrastu min un maksimālās vērtības atsevišķam sensoram un augsnes tipam labākai kalibrēšanai mitruma līmenis = ierobežojums (karte (izejas vērtība, 1000, 4095, 100, 0), 0, 100); pludiņš h = dht.readHumidity (); // Nolasīt mitruma pludiņu t = dht.readTemperature (); // Temperatūras lasīšana pēc Celsija (noklusējuma) float f = dht.readTemperature (true); // Lasīt temperatūru pēc Fārenheita (isFahrenheit = true) // Aprēķināt siltuma indeksu pēc Fārenheita (noklusējuma) float hif = dht.computeHeatIndex (f, h); // Pārbaudiet, vai kāda nolasīšana neizdevās, un izejiet agri (lai mēģinātu vēlreiz). ja (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Neizdevās nolasīt no DHT sensora!")); atgriešanās; } // Tas savieno vales ar virtuālajām tapām, kas definētas lietotnes Blynk logrīkos Blynk.virtualWrite (V5, mitruma līmenis); // Nosūtīt mitruma līmeni virtuālajai tapai 5 Blynk.virtualWrite (V6, f); // Nosūtīt temperatūru uz virtuālo 6. tapa Blynk.virtualWrite (V7, h); // Nosūtīt mitrumu uz virtuālo tapu 7 Blynk.virtualWrite (V8, hif); // Sūtīt siltuma indeksu uz virtuālo tapu 8

ja (paziņots == 0)

{if (mitruma līmenis <= min_moisture) // Ja mitruma līmenis ir vienāds ar vai mazāks par min vērtību {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Sūtīt e -pastu uz ūdens iekārtu} delay (15000); // Blynk e -pasta ziņojumiem jābūt 15 sekunžu intervālam. Aizkavēt 15000 milisekundes, ja (f <= min_temperatūra) // Ja temperatūra ir vienāda ar vai zemāka par minimālo vērtību {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Sūtīt e -pastu, ka temperatūra ir zema

}

kavēšanās (15000); // Blynk e -pasta ziņojumiem jābūt 15 sekunžu intervālam. Aizkavēt 15000 milisekundes, ja (h <= min_hididity) // Ja mitrums ir vienāds ar vai mazāks par min vērtību {Blynk.email ("Emial_Here", "Plant Monitor", "Low Moidity!"); // Sūtīt e -pastu, ka mitrums ir zems} paziņots = 1; timer.setTimeout (timedelay *5, resetNotified); // vairākkārtēja laika aizture pēc vēlamo minūšu skaita starp atkārtotiem brīdinājuma e -pasta ziņojumiem}}

void resetNotified () // funkcija izsaukta, lai atiestatītu e -pasta biežumu

{paziņots = 0; }

anulēts iestatījums ()

{Sērijas sākums (9600); // Atkļūdošanas konsole Blynk.begin (auth, ssid, pass); // pieslēgties pie blynk timer.setInterval (timedelay, Sensors); // Iestatiet funkciju, kas jāizsauc katru minūti, vai kāda laika aizture ir iestatīta uz dht.begin (); // palaist DHT sensoru}

// Void loop vajadzētu saturēt tikai blynk.run un taimeri

void loop () {Blynk.run (); // Palaist blynk timer.run (); // Uzsāk BlynkTimer}

Ieteicams: