Üzemi monitor ESP32 Thing és Blynk használatával: 5 lépés
Üzemi monitor ESP32 Thing és Blynk használatával: 5 lépés
Plant Monitor ESP32 Thing és Blynk használatával
Plant Monitor ESP32 Thing és Blynk használatával
Plant Monitor ESP32 Thing és Blynk használatával
Plant Monitor ESP32 Thing és Blynk használatával

Áttekintés

A projekt célja egy kompakt készülék létrehozása, amely képes megfigyelni a szobanövény állapotát. A készülék lehetővé teszi a felhasználó számára, hogy okostelefonjáról ellenőrizze a talaj nedvességtartalmát, páratartalmát, hőmérsékletét és az "érezhető" hőmérsékletet a Blynk App segítségével. Ezenkívül a felhasználó e -mailben értesítést kap, ha a körülmények alkalmatlanná válnak az üzem számára. Például a felhasználó emlékeztetőt kap a növény öntözésére, ha a talaj nedvességtartalma megfelelő szint alá csökken.

1. lépés: Követelmények

Követelmények
Követelmények
Követelmények
Követelmények
Követelmények
Követelmények

Ez a projekt egy Sparkfun ESP32 dolgot, egy DHT22 érzékelőt és egy elektronikus tégla talajnedvesség -érzékelőt használ. Ezenkívül wifi -hálózat és a Blynk alkalmazás is szükséges. Lehetőleg vízálló burkolatot kell létrehozni az ESP32 dolog tárolására. Míg ez a példa egy szabványos hálózati aljzatot használ az áramforráshoz, az újratölthető akkumulátor, a napelem és a töltésvezérlő hozzáadása lehetővé tenné az eszköz megújuló energiaforrásokról történő működtetését.

2. lépés: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Ehhez töltse le a Blynk alkalmazást, és hozzon létre egy új projektet. Vegye figyelembe a hitelesítési tokent-ezt fogja használni a kódban. Hozzon létre új megjelenítő modulokat a Blynk alkalmazásban, és válassza ki a kódban meghatározott megfelelő virtuális csapokat. Állítsa be a frissítés intervallumát. Minden widgethez hozzá kell rendelni a saját virtuális PIN -kódját.

3. lépés: Arduino IDE

Arduino IDE
Arduino IDE

Töltse le az Arduino IDE -t. Kövesse a letöltési utasításokat az ESP32 dolog illesztőprogramjához és a bemutatóhoz a wifi kapcsolat biztosítása érdekében. Töltse le a kódban található Blynk és DHT könyvtárakat. Töltse ki a hitelesítési tokent, a wifi jelszót, a wifi felhasználónevet és az e -mailt a végső kódban. Használja a talajnedvesség -érzékelő demókódját, hogy megtalálja a talajtípus minimális és maximális értékeit. Jegyezze fel és cserélje ki ezeket az értékeket a végső kódban. A végső kódban cserélje ki a növény hőmérsékletének, talajnedvességének és páratartalmának minimális értékeit. Töltse fel a kódot.

4. lépés: Építsd fel

Építsd meg
Építsd meg
Építsd meg
Építsd meg
Építsd meg
Építsd meg

Először csatlakoztassa a talajnedvesség -érzékelőt a 3,3 V -os földeléshez és a 34 -es bemenethez. Megjegyzés: integrált, hogy a kapcsoló A állásban van, mert ennek az érzékelőnek az analóg beállítását kell használni. Ezután csatlakoztassa a DHT érzékelőt a 3,3 V -os földeléshez és a 27 -es bemeneti tüskéhez. A DHT22 érzékelőnek 10 K ohmos ellenállásra van szüksége a VCC és az adatkimeneti tű között. Feltétlenül ellenőrizze a DHT diagramot, hogy megbizonyosodjon arról, hogy megfelelően van -e bekötve. Állítsa be az ESP32 -t egy vízálló burkolatban, a talajban lévő nedvességérzékelővel és a DHT -érzékelővel a felszín felett. Csatlakozzon egy áramforráshoz, és élvezze az üzem környezetével kapcsolatos adatokat.

5. lépés: Kód

// Tartalmazott könyvtárak

#define BLYNK_PRINT sorozat

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

// DHT érzékelő információ

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // DHT érzékelőhöz csatlakoztatott digitális tű DHT dht (DHTPIN, DHTTYPE); // Inicializálja a DHT érzékelőt.

// bemeneti csapok és kimenetek meghatározása

int talaj_érzékelő = 34; // határozza meg a nedvességérzékelőhöz csatlakoztatott analóg bemeneti tű számát

int output_value; // kimenetként határozza meg

int nedvességszint; // kimenetként határozza meg

int bejelentett = 0; // definiálja a notifed -et 0 -ként

int időzítés = 60000L; // állítsa be az időzítőt, hogy futtassa az adatokat percenként vagy 60 000 ezredmásodpercenként

// minimális értékek beállítása az üzem számára

int min_nedvesség = 20; int min_hőmérséklet = 75; int min_nedvesség = 60;

// A Blynk alkalmazásban meg kell szereznie az Auth Token -t.

char auth = "Auth_Token_Here";

// WiFi hitelesítő adatai.

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

BlynkTimer időzítő;

// Ez a funkció minden másodpercben elküldi az Arduino felkelési idejét a Virtual Pin (5) -re.

// Az alkalmazásban a Widget olvasási gyakoriságát PUSH értékre kell állítani. Ez azt jelenti, // hogy Ön határozza meg, hogy milyen gyakran kell adatokat küldeni a Blynk App alkalmazásba.

void Sensors () // fő funkció az érzékelők olvasásához és a blynk -hez való nyomáshoz

{output_value = analogRead (dirt_sensor); // Olvassa el az analóg jelet a dirt_sensor -tól és határozza meg output_value -ként // A output_vlaue értéket min, max értékről 100 -ra, és korlátozza 0, 100 között // Mintakód és soros monitor használatával keresse meg a min és max. értékek az egyedi érzékelőhöz és a talajtípushoz a jobb kalibrálás érdekében nedvességszint = korlátozás (térkép (output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // páratartalom lebegés leolvasása t = dht.readTemperature (); // A hőmérséklet olvasása Celsius -ban (alapértelmezett) float f = dht.readTemperature (true); // A hőmérséklet leolvasása Fahrenheit -ként (isFahrenheit = igaz) // Hőindex kiszámítása Fahrenheitben (alapértelmezett) float hif = dht.computeHeatIndex (f, h); // Ellenőrizze, hogy valamelyik olvasás nem sikerült -e, és lépjen ki korán (újrapróbálkozáshoz). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Nem sikerült leolvasni a DHT szenzorból!")); Visszatérés; } // Ez összeköti a vales -t a Blynk alkalmazás kütyüiben definiált virtuális csapokkal Blynk.virtualWrite (V5, niiskási szint); // Nedvességszint küldése a virtuális 5 -ös tüskére Blynk.virtualWrite (V6, f); // Hőmérséklet küldése a virtuálisnak 6. tüske Blynk.virtualWrite (V7, h); // Küldje el a páratartalmat a virtuális 7 -es csapnak Blynk.virtualWrite (V8, hif); // Hőindex küldése a virtuális 8 -as érintkezőre

ha (értesítve == 0)

{if (nedvességszint <= min_nedvesség) // Ha a nedvességszint egyenlő vagy alacsonyabb a min értéknél {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // E -mail küldése a vízműnek} delay (15000); // A Blynk e -maileknek 15 másodperc távolságra kell lenniük egymástól. Késleltesse a 15000 ezredmásodpercet, ha (f <= min_temperature) // Ha a hőmérséklet megegyezik a min értékkel vagy az alatt van {Blynk.email ("Email_Here", "Plant Monitor", "Low Temperature!"); // E -mail küldése arról, hogy a hőmérséklet alacsony

}

késleltetés (15000); // A Blynk e -maileknek 15 másodperc távolságra kell lenniük egymástól. Késleltesse a 15000 milliszekundumot, ha (h <= min_páratartalom) // Ha a páratartalom megegyezik a min értékkel {Blynk.email ("Emial_Here", "Plant Monitor", "Nedvesség alacsony!") Vagy az alatt van; // E -mail küldése alacsony páratartalomról} értesített = 1; timer.setTimeout (timedelay *5, resetNotified); // többpontos időzítés késleltetett percek számával az ismétlődő figyelmeztető e -mailek között}}

void resetNotified () // függvény az e -mail gyakoriságának visszaállításához

{értesített = 0; }

üres beállítás ()

{Serial.begin (9600); // Hibakereső konzol Blynk.begin (auth, ssid, pass); // csatlakozás a blynk timer.setInterval (időzítés, érzékelők); // Állítson be egy percenként meghívandó függvényt vagy azt, hogy milyen időzítésre van beállítva a dht.begin (); // DHT érzékelő futtatása}

// Az üres ciklusnak csak a blynk.run -t és az időzítőt kell tartalmaznia

void loop () {Blynk.run (); // Fuss blynk timer.run (); // BlynkTimer kezdeményezése}

Ajánlott: