Tartalomjegyzék:

Ü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

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

Videó: Üzemi monitor ESP32 Thing és Blynk használatával: 5 lépés
Videó: Lesson 76: Using one or more VL6180X 20cm Time-of-Flight proximity sensor with Arduino 2024, November
Anonim
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: