Obsah:

Monitor rostlin pomocí ESP32 Thing a Blynk: 5 kroků
Monitor rostlin pomocí ESP32 Thing a Blynk: 5 kroků

Video: Monitor rostlin pomocí ESP32 Thing a Blynk: 5 kroků

Video: Monitor rostlin pomocí ESP32 Thing a Blynk: 5 kroků
Video: ESP32 Tutorial 4 - Data types Define Variable Int, bool, char, Serial Monitor-ESP32 IoT Learnig kit 2024, Listopad
Anonim
Monitor rostlin pomocí ESP32 Thing a Blynk
Monitor rostlin pomocí ESP32 Thing a Blynk
Monitor rostlin pomocí ESP32 Thing a Blynk
Monitor rostlin pomocí ESP32 Thing a Blynk

Přehled

Cílem tohoto projektu je vytvořit kompaktní zařízení schopné monitorovat podmínky pokojové rostliny. Zařízení umožňuje uživateli pomocí smartphonu pomocí aplikace Blynk kontrolovat úroveň půdní vlhkosti, úroveň vlhkosti, teplotu a „pocitovou“teplotu. Kromě toho uživatel obdrží e -mailové upozornění, když se podmínky stanou nevhodnými pro závod. Uživatel například obdrží připomenutí zalévat rostlinu, když úroveň půdní vlhkosti klesne pod vhodnou úroveň.

Krok 1: Požadavky

Požadavky
Požadavky
Požadavky
Požadavky
Požadavky
Požadavky

Tento projekt používá věc Sparkfun ESP32, snímač DHT22 a elektronický snímač vlhkosti cihelné půdy. Kromě toho je vyžadována síť Wi -Fi a aplikace Blynk. Přednostně by měl být vytvořen vodotěsný kryt, který bude obsahovat věc ESP32. I když tento příklad používá standardní zásuvku pro zdroj energie, přidání dobíjecí baterie, solárního panelu a regulátoru nabíjení by umožnilo napájení zařízení pomocí obnovitelné energie.

Krok 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Chcete -li být, stáhněte si aplikaci Blynk a vytvořte nový projekt. Vezměte na vědomí ověřovací token-bude použit v kódu. V aplikaci Blynk vytvořte nové widgety pro zobrazení a vyberte odpovídající virtuální piny definované v kódu. Nastavte interval aktualizace na stisknutí. Každému widgetu by měl být přiřazen vlastní virtuální pin.

Krok 3: Arduino IDE

Arduino IDE
Arduino IDE

Stáhněte si Arduino IDE. Podle pokynů ke stažení ovladače ESP32 a ukázky zajistěte připojení k wifi. Stáhněte si knihovny Blynk a DHT zahrnuté v kódu. Vyplňte ověřovací token, heslo wifi, uživatelské jméno wifi a e -mail v konečném kódu. Pomocí demo kódu senzoru půdní vlhkosti vyhledejte minimální a maximální hodnoty pro typ půdy. Zaznamenejte a nahraďte tyto hodnoty v konečném kódu. V konečném kódu nahraďte minimální hodnoty teploty, půdní vlhkosti a vlhkosti pro rostlinu. Nahrajte kód.

Krok 4: Postavte to

Postav to
Postav to
Postav to
Postav to
Postav to
Postav to

Nejprve připojte snímač půdní vlhkosti k 3,3 V, uzemnění a vstupnímu kolíku 34. Všimněte si, že je integrální, přepínač je nastaven na A, protože pro toto čidlo bude použito analogové nastavení. Dále připojte snímač DHT k 3,3 V, uzemnění a vstupnímu kolíku 27. Senzor DHT22 vyžaduje mezi VCC a datovým výstupem odpor 10 K Ohm. Nezapomeňte zkontrolovat diagram DHT, abyste se ujistili, že je správně zapojen. Konfigurujte ESP32 uvnitř vodotěsného krytu se snímačem vlhkosti v půdě a snímačem DHT nad povrchem. Připojte se ke zdroji energie a užívejte si data o prostředí vašeho závodu.

Krok 5: Kód

// Zahrnuté knihovny

#define BLYNK_PRINT Sériové číslo

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

// Informace o senzoru DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digitální pin připojený k senzoru DHT DHT dht (DHTPIN, DHTTYPE); // Inicializace snímače DHT.

// definujte vstupní piny a výstupy

int earth_sensor = 34; // definujte číslo analogového vstupního pinu připojeného k čidlu vlhkosti

int output_value; // definovat jako výstup

int vlhkostní úroveň; // definovat jako výstup

int oznámeno = 0; // definujte upozornění jako 0

int časová prodleva = 60000L; // nastavení časovače pro spuštění získávání dat jednou za minutu nebo 60 000 milisekund

// nastavení minimálních hodnot pro závod

int min_vlhkost = 20; int min_teplota = 75; int min_vlhkost = 60;

// V aplikaci Blynk byste měli získat Auth Token.

char auth = "Auth_Token_Here";

// Vaše pověření WiFi.

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

Časovač BlynkTimer;

// Tato funkce posílá každou sekundu dobu zapnutí Arduina na Virtual Pin (5).

// V aplikaci by měla být frekvence čtení widgetu nastavena na PUSH. To znamená, že // definujete, jak často chcete odesílat data do aplikace Blynk.

void Sensors () // hlavní funkce pro čtení senzorů a push to blynk

{output_value = analogRead (earth_sensor); // Načte analogový signál z earth_sensor a definujte jako output_value // Map output_vlaue z min, max hodnot na 100, 0 a omezte mezi 0, 100 // Pomocí ukázkového kódu a sériového monitoru najděte min. maximální hodnoty pro jednotlivý senzor a typ půdy pro lepší kalibraci úroveň vlhkosti = omezení (mapa (výstupní_hodnota, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Čtení vlhkosti float t = dht.readTemperature (); // Čtení teploty jako Celsia (výchozí) float f = dht.readTemperature (true); // Odečtěte teplotu jako Fahrenheit (isFahrenheit = true) // Vypočítejte tepelný index ve Fahrenheite (výchozí) float hif = dht.computeHeatIndex (f, h); // Zkontrolujte, zda některá čtení selhala, a ukončete předčasné (zkuste to znovu). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Failed to reading from DHT sensor!")); vrátit se; } // Tím se spojí hodnoty s virtuálními piny definovanými ve widgetech v aplikaci Blynk Blynk.virtualWrite (V5, vlhkostní úroveň); // Odeslání úrovně vlhkosti na virtuální kolík 5 Blynk.virtualWrite (V6, f); // Odeslání teploty na virtuální pin 6 Blynk.virtualWrite (V7, h); // Odeslání vlhkosti na virtuální pin 7 Blynk.virtualWrite (V8, hif); // Odeslání indexu tepla na virtuální pin 8

pokud (oznámeno == 0)

{if (hladina vlhkosti <= min_vlhkost) // Pokud je úroveň vlhkosti stejná nebo nižší než minimální hodnota {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // odeslání e -mailu na vodní elektrárnu} zpoždění (15 000); // Blynkovy e -maily musí být od sebe vzdáleny 15 sekund. Zpoždění 15 000 milisekund, pokud (f <= min_teplota) // Pokud je teplota stejná nebo nižší než minimální hodnota {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Pošlete e -mail s nízkou teplotou

}

zpoždění (15 000); // Blynkovy e -maily musí být od sebe vzdáleny 15 sekund. Zpoždění 15 000 milisekund, pokud (h <= min_vlhkost) // Pokud je vlhkost rovna nebo nižší než minimální hodnota {Blynk.email ("Emial_Here", "Plant Monitor", "Vlhkost nízká!"); // Odeslat e -mail, že vlhkost je nízká} oznámeno = 1; timer.setTimeout (timedelay *5, resetNotified); // znásobení časového zpoždění počtem požadovaných minut mezi opakovanými varovnými e -maily}}

void resetNotified () // funkce volána k resetování frekvence e -mailu

{oznámeno = 0; }

neplatné nastavení ()

{Serial.begin (9600); // Konzola ladění Blynk.begin (auth, ssid, pass); // připojení k blynk timer.setInterval (timedelay, Sensors); // Nastavení funkce, která se bude volat každou minutu nebo jaké časové zpoždění je nastaveno na dht.begin (); // spustit snímač DHT}

// Prázdná smyčka by měla obsahovat pouze blynk.run a časovač

void loop () {Blynk.run (); // Spustit blynk timer.run (); // Inicializuje BlynkTimer}

Doporučuje: