Sisällysluettelo:

Kasvimonitori ESP32 Thingin ja Blynkin avulla: 5 vaihetta
Kasvimonitori ESP32 Thingin ja Blynkin avulla: 5 vaihetta

Video: Kasvimonitori ESP32 Thingin ja Blynkin avulla: 5 vaihetta

Video: Kasvimonitori ESP32 Thingin ja Blynkin avulla: 5 vaihetta
Video: Мониторинг солнечных панелей с помощью blynk iot 2.0 2024, Kesäkuu
Anonim
Kasvimonitori ESP32 Thingin ja Blynkin avulla
Kasvimonitori ESP32 Thingin ja Blynkin avulla
Kasvimonitori ESP32 Thingin ja Blynkin avulla
Kasvimonitori ESP32 Thingin ja Blynkin avulla

Yleiskatsaus

Tämän projektin tavoitteena on luoda kompakti laite, joka pystyy seuraamaan huonekasvin olosuhteita. Laitteen avulla käyttäjä voi tarkistaa maaperän kosteustason, kosteustason, lämpötilan ja "tuntuvan" lämpötilan älypuhelimesta Blynk-sovelluksen avulla. Lisäksi käyttäjä saa sähköposti -ilmoituksen, kun olosuhteet muuttuvat laitokselle sopimattomiksi. Käyttäjä saa esimerkiksi muistutuksen kastaa kasvia, kun maaperän kosteustaso laskee sopivan tason alle.

Vaihe 1: Vaatimukset

Vaatimukset
Vaatimukset
Vaatimukset
Vaatimukset
Vaatimukset
Vaatimukset

Tässä projektissa käytetään Sparkfun ESP32 -laitetta, DHT22 -anturia ja elektronista tiilimaaperän kosteusanturia. Lisäksi vaaditaan wifi -verkko ja Blynk -sovellus. Edullisesti tulisi luoda vedenpitävä kotelo, joka sisältää ESP32 -esineen. Vaikka tässä esimerkissä käytetään virtalähteen vakiopistorasiaa, ladattavan akun, aurinkopaneelin ja latausohjaimen lisääminen mahdollistaisi laitteen käyttämisen uusiutuvalla energialla.

Vaihe 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Lataa Blynk -sovellus ja luo uusi projekti. Huomaa todennusmerkki-sitä käytetään koodissa. Luo uusia näyttöpienoisohjelmia Blynk -sovellukseen ja valitse koodissa määritetyt vastaavat virtuaaliset nastat. Aseta päivitysväli työntääksesi. Jokaiselle widgetille on määritettävä oma virtuaalinen pin.

Vaihe 3: Arduino IDE

Arduino IDE
Arduino IDE

Lataa Arduino IDE. Noudata ESP32 -esineohjaimen ja esittelyn latausohjeita varmistaaksesi wifi -yhteyden. Lataa koodiin sisältyvät Blynk- ja DHT -kirjastot. Täytä todennusmerkki, wifi -salasana, wifi -käyttäjänimi ja sähköposti lopulliseen koodiin. Käytä maaperän kosteusanturin demokoodia löytääksesi maaperätyypin minimi- ja maksimiarvot. Kirjaa ja korvaa nämä arvot lopulliseen koodiin. Korvaa lämpötilan, maaperän kosteuden ja kasvien vähimmäisarvot lopullisessa koodissa. Lataa koodi.

Vaihe 4: Rakenna se

Rakentaa se
Rakentaa se
Rakentaa se
Rakentaa se
Rakentaa se
Rakentaa se

Liitä ensin maaperän kosteusanturi jännitteeseen 3.3V, maahan ja tulotappiin 34. Huomaa, että kytkin on asennossa A, koska sen anturin analogista asetusta käytetään. Liitä seuraavaksi DHT -anturi 3,3 V: n, maadoitus- ja tulotappiin 27. DHT22 -anturi vaatii 10 K ohmin vastuksen VCC: n ja tiedonsiirtotapin välille. Muista tarkistaa DHT -kaavio, että se on kytketty oikein. Määritä ESP32 vedenpitävän kotelon sisään siten, että kosteusanturi on maaperässä ja DHT -anturi pinnan yläpuolella. Yhdistä virtalähteeseen ja nauti laitoksen ympäristön tiedoista.

Vaihe 5: Koodi

// Mukana olevat kirjastot

#define BLYNK_PRINT -sarja

#Sisällytä #Sisällytä #Sisällytä #Sisällytä "DHT.h"

// DHT -anturin tiedot

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // DHT -anturiin kytketty digitaalinen nasta DHT dht (DHTPIN, DHTTYPE); // Alusta DHT -anturi.

// määritä tulonapit ja -lähdöt

int maaperäanturi = 34; // määritä kosteusanturiin kytketty analogisen tulon nasta

int output_value; // määrittele tulostuksena

int kosteustaso; // määritetään ulostulona

int ilmoitettu = 0; // määrittele ilmoitettu arvoksi 0

int aikaviive = 60000L; // aseta ajastin toimimaan, niin saat tietoja kerran minuutissa tai 60 000 millisekuntia

// aseta laitoksen vähimmäisarvot

int min_kosteus = 20; int min_lämpötila = 75; int min_kosteus = 60;

// Sinun pitäisi saada todennustunnus Blynk -sovelluksessa.

char auth = "Auth_Token_Here";

// WiFi -kirjautumistietosi.

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

BlynkTimer -ajastin;

// Tämä toiminto lähettää Arduinon nousuajan joka sekunti Virtual Pinille (5).

// Sovelluksessa Widgetin lukutaajuudeksi on asetettava PUSH. Tämä tarkoittaa // että määrität kuinka usein tiedot lähetetään Blynk -sovellukseen.

void Sensors () // päätehtävä antureiden lukemiseen ja työntämiseen blynkiin

{output_value = analogRead (ground_sensor); // Lue analoginen signaali maaperän_anturilta ja määritä output_value // Kartta output_vlaue min, max arvoista 100, 0 ja rajoita 0, 100 // Käytä näytteen koodia ja sarjamonitoria löytääksesi min ja yksittäisen anturin ja maaperätyypin enimmäisarvot paremman kalibroinnin saavuttamiseksi float h = dht.readHumidity (); // Lue kosteus float t = dht.readTemperature (); // Lue lämpötila celsiusasteina (oletus) float f = dht.readTemperature (true); // Lue lämpötila Fahrenheitina (isFahrenheit = true) // Laske lämpöindeksi Fahrenheit -asteina (oletus) float hif = dht.computeHeatIndex (f, h); // Tarkista, jos jokin lukeminen epäonnistui, ja poistu aikaisin (yritä uudelleen). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("DHT -anturin lukeminen epäonnistui!")); palata; } // Tämä yhdistää vales virtuaalisiin nastoihin, jotka on määritetty Blynk -sovelluksen widgetteissä Blynk.virtualWrite (V5, kosteustaso); // Lähetä kosteustaso virtuaaliseen nastaan 5 Blynk.virtualWrite (V6, f); // Lähetä lämpötila virtuaaliseen nasta 6 Blynk.virtualWrite (V7, h); // Lähetä kosteus virtuaaliseen nastaan 7 Blynk.virtualWrite (V8, hif); // Lähetä lämpöindeksi virtuaaliseen nastaan 8

jos (ilmoitettu == 0)

{if (kosteustaso <= min_kosteus) // Jos kosteustaso on vähintään miniarvo {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Lähetä sähköposti vesilaitokselle} delay (15000); // Blynk -sähköpostien on oltava 15 sekunnin välein. Viive 15000 millisekuntia, jos (f <= min_temperature) // Jos lämpötila on yhtä suuri tai pienempi kuin miniarvo {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Lähetä sähköpostia, että lämpötila on alhainen

}

viive (15000); // Blynk -sähköpostien on oltava 15 sekunnin välein. Viive 15000 millisekuntia, jos (h <= min_kosteus) // Jos kosteus on yhtä suuri tai pienempi kuin miniarvo {Blynk.email ("Emial_Here", "Plant Monitor", "Kosteus alhainen!"); // Lähetä sähköpostia, että kosteus on alhainen} ilmoitettu = 1; timer.setTimeout (aikaviive *5, resetNotified); // moninkertainen aikaviive haluttujen minuuttien määrällä toistuvien varoitussähköpostien välillä}}

void resetNotified () // -toiminto kutsuttiin nollaamaan sähköpostin taajuus

{ilmoitettu = 0; }

mitätön asennus ()

{Serial.begin (9600); // Debug -konsoli Blynk.begin (auth, ssid, pass); // muodosta yhteys blynk timer.setInterval (aikaviive, anturit); // Määritä toiminto, jota kutsutaan joka minuutti tai mikä aikaviive on asetettu arvoon dht.begin (); // suorita DHT -anturi}

// Tyhjän silmukan tulisi sisältää vain blynk.run ja ajastin

tyhjä silmukka () {Blynk.run (); // Suorita blynk timer.run (); // Käynnistää BlynkTimer}

Suositeltava: