Obsah:

Monitor rastlín pomocou veci ESP32 a Blynk: 5 krokov
Monitor rastlín pomocou veci ESP32 a Blynk: 5 krokov

Video: Monitor rastlín pomocou veci ESP32 a Blynk: 5 krokov

Video: Monitor rastlín pomocou veci ESP32 a Blynk: 5 krokov
Video: SKR Pro v1.2 - TMC5160 SPI 2024, November
Anonim
Monitor rastlín používajúci vec ESP32 a Blynk
Monitor rastlín používajúci vec ESP32 a Blynk
Monitor rastlín používajúci vec ESP32 a Blynk
Monitor rastlín používajúci vec ESP32 a Blynk

Prehľad

Cieľom tohto projektu je vytvoriť kompaktné zariadenie schopné monitorovať podmienky izbovej rastliny. Zariadenie umožňuje používateľovi pomocou aplikácie Blynk kontrolovať úroveň pôdnej vlhkosti, úroveň vlhkosti, teplotu a „pocitovú“teplotu zo smartfónu. Okrem toho používateľ dostane e -mailové upozornenie, keď sa podmienky stanú nevhodnými pre závod. Používateľ napríklad dostane pripomienku na zalievanie rastliny, keď úroveň pôdnej vlhkosti klesne pod vhodnú úroveň.

Krok 1: Požiadavky

Požiadavky
Požiadavky
Požiadavky
Požiadavky
Požiadavky
Požiadavky

Tento projekt používa vec Sparkfun ESP32, snímač DHT22 a elektronický snímač vlhkosti tehlovej pôdy. Okrem toho je potrebná sieť Wi -Fi a aplikácia Blynk. Prednostne by mal byť vytvorený vodotesný kryt, ktorý bude obsahovať vec ESP32. Aj keď tento príklad používa štandardnú zásuvku pre zdroj energie, pridanie nabíjateľnej batérie, solárneho panelu a regulátora nabíjania by umožnilo napájanie zariadenia prostredníctvom obnoviteľnej energie.

Krok 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Ak chcete, stiahnite si aplikáciu Blynk a vytvorte nový projekt. Všímajte si autentifikačný token-bude použitý v kóde. V aplikácii Blynk vytvorte nové zobrazovacie miniaplikácie a vyberte zodpovedajúce virtuálne piny definované v kóde. Nastavte interval obnovenia na stlačenie. Každý widget by mal mať priradený svoj vlastný virtuálny pin.

Krok 3: Arduino IDE

Arduino IDE
Arduino IDE

Stiahnite si Arduino IDE. Pripojenie wifi zabezpečte podľa pokynov na stiahnutie ovládača veci ESP32 a ukážky. Stiahnite si knižnice Blynk a DHT zahrnuté v kóde. Vyplňte autentifikačný token, heslo wifi, užívateľské meno wifi a e -mail do konečného kódu. Pomocou demo kódu pre snímač pôdnej vlhkosti vyhľadajte minimálne a maximálne hodnoty pre typ pôdy. Tieto hodnoty zaznamenajte a nahraďte v konečnom kóde. V konečnom kóde nahraďte minimálne hodnoty teploty, pôdnej vlhkosti a vlhkosti pre rastlinu. Nahrajte kód.

Krok 4: Postavte to

Postavte to
Postavte to
Postavte to
Postavte to
Postavte to
Postavte to

Najprv pripojte snímač pôdnej vlhkosti k 3,3 V, uzemneniu a vstupnému kolíku 34. Všimnite si, že je integrálny, prepínač je nastavený do polohy A, pretože pre tento snímač sa použije analógové nastavenie. Potom pripojte snímač DHT k 3,3 V, uzemneniu a vstupnému kolíku 27. Snímač DHT22 vyžaduje 10 V ohmový odpor medzi VCC a dátovým výstupným pinom. Nezabudnite skontrolovať diagram DHT, aby ste sa presvedčili, že je správne zapojený. Konfigurujte ESP32 vo vodotesnom kryte so snímačom vlhkosti v pôde a snímačom DHT nad povrchom. Pripojte zdroj napájania a vychutnajte si údaje o prostredí vášho zariadenia.

Krok 5: Kód

// Zahrnuté knižnice

#define BLYNK_PRINT Sériové číslo

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

// Informácie o snímači DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digitálny pin pripojený k snímaču DHT DHT dht (DHTPIN, DHTTYPE); // Inicializácia snímača DHT.

// definujte vstupné piny a výstupy

int earth_sensor = 34; // definujte číslo pinu analógového vstupu pripojeného k senzoru vlhkosti

int output_value; // definuje ako výstup

int vlhkosť vzduchu; // definovať ako výstup

int oznámenia = 0; // definujte upozornenie ako 0

int časové oneskorenie = 60 000 L; // nastavenie časovača na spustenie získavania údajov raz za minútu alebo 60 000 milisekúnd

// nastavenie minimálnych hodnôt pre závod

int min_vlhkost = 20; int min_teplota = 75; vnútorná minimálna vlhkosť = 60;

// V aplikácii Blynk by ste mali dostať Auth Token.

char auth = "Auth_Token_Here";

// Vaše poverenia WiFi.

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

Časovač BlynkTimer;

// Táto funkcia posiela každú sekundu čas prevádzky Arduina na Virtual Pin (5).

// V aplikácii by mala byť frekvencia čítania widgetu nastavená na PUSH. To znamená, že // definujete, ako často sa majú údaje odosielať do aplikácie Blynk.

void Sensors () // hlavná funkcia na čítanie senzorov a stlačenie na blynk

{output_value = analogRead (earth_sensor); // Načítanie analógového signálu zo zariadenia earth_sensor a definovanie ako output_value // Map output_vlaue z min., max. hodnôt na 100, 0 a obmedzenie medzi 0, 100 // Na nájdenie min. a min. maximálne hodnoty pre individuálny senzor a typ pôdy pre lepšiu kalibráciu úroveň vlhkosti = obmedzenie (mapa (výstupná_hodnota, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Čítanie vlhkosti float t = dht.readTemperature (); // Čítanie teploty ako Celzia (predvolené) float f = dht.readTemperature (true); // Prečítajte teplotu ako Fahrenheit (isFahrenheit = true) // Vypočítajte tepelný index vo Fahrenheite (predvolené) float hif = dht.computeHeatIndex (f, h); // Skontrolujte, či niektoré čítanie zlyhalo, a ukončite operáciu predčasne (skúste to znova). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Failed reading from DHT sensor!")); návrat; } // Toto prepojí hodnoty s virtuálnymi kolíkmi definovanými vo widgetoch v aplikácii Blynk Blynk.virtualWrite (V5, vlhkosť); // Odoslanie úrovne vlhkosti na virtuálny kolík 5 Blynk.virtualWrite (V6, f); // Odoslanie teploty do virtuálnej pin 6 Blynk.virtualWrite (V7, h); // Odoslanie vlhkosti na virtuálny pin 7 Blynk.virtualWrite (V8, hif); // Odoslanie indexu tepla na virtuálny pin 8

ak (oznámené == 0)

{if (hladina vlhkosti <= min_vlhkosť) // Ak je úroveň vlhkosti rovná alebo nižšia ako minimálna hodnota {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // odoslanie e -mailu na vodnú rastlinu} zdržanie (15 000); // Blynkove e -maily musia mať odstup 15 sekúnd. Oneskorenie 15 000 milisekónov, ak (f <= min_teplota) // Ak je teplota rovnaká alebo nižšia ako minimálna hodnota {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Pošlite e -mail, že teplota je nízka

}

oneskorenie (15 000); // Blynkove e -maily musia mať odstup 15 sekúnd. Oneskorenie 15 000 milisekúnd, ak (h <= min. Vlhkosť) // Ak je vlhkosť rovná alebo nižšia ako minimálna hodnota {Blynk.email ("Emial_Here", "Monitor zariadenia", "Vlhkosť nízka!"); // Odoslať e -mail, že vlhkosť je nízka} upozornenie = 1; timer.setTimeout (timedelay *5, resetNotified); // vynásobenie časového oneskorenia počtom požadovaných minút medzi opakovanými výstražnými e -mailmi}}

void resetNotified () // funkcia volaná na resetovanie frekvencie e -mailov

{notifikované = 0; }

neplatné nastavenie ()

{Serial.begin (9600); // Konzola ladenia Blynk.begin (auth, ssid, pass); // pripojenie k blynk timer.setInterval (timedelay, Sensors); // Nastavte funkciu, ktorá sa má volať každú minútu alebo aké časové oneskorenie je nastavené na dht.begin (); // spustenie senzora DHT}

// Prázdna slučka by mala obsahovať iba blynk.run a časovač

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

Odporúča: