Sisukord:

Taimemonitor ESP32 Thing ja Blynk abil: 5 sammu
Taimemonitor ESP32 Thing ja Blynk abil: 5 sammu

Video: Taimemonitor ESP32 Thing ja Blynk abil: 5 sammu

Video: Taimemonitor ESP32 Thing ja Blynk abil: 5 sammu
Video: #299 Tricks to get NTP time for the ESP32 and the ESP8266 incl. Summer- and Daylight Saving time 2024, November
Anonim
Taimemonitor, kasutades ESP32 Thing ja Blynk
Taimemonitor, kasutades ESP32 Thing ja Blynk
Taimemonitor, kasutades ESP32 Thing ja Blynk
Taimemonitor, kasutades ESP32 Thing ja Blynk

Ülevaade

Selle projekti eesmärk on luua kompaktne seade, mis suudab jälgida toalille tingimusi. Seade võimaldab kasutajal Blynk Appi abil nutitelefonist kontrollida mulla niiskustaset, niiskustaset, temperatuuri ja temperatuuri. Lisaks saab kasutaja e -postiga märguande, kui tingimused muutuvad tehase jaoks ebasobivaks. Näiteks saab kasutaja meeldetuletuse taime kastmiseks, kui mulla niiskus langeb alla sobiva taseme.

Samm: nõuded

Nõuded
Nõuded
Nõuded
Nõuded
Nõuded
Nõuded

See projekt kasutab Sparkfun ESP32 asja, DHT22 andurit ja elektroonilist telliskivimulla niiskuseandurit. Lisaks on vaja WiFi -võrku ja rakendust Blynk. Eelistatavalt tuleks luua ESP32 asja sisaldav veekindel ümbris. Kuigi see näide kasutab toiteallika jaoks tavalist pistikupesa, võimaldaks laetava aku, päikesepaneeli ja laadimiskontrolleri lisamine seadet toita taastuvenergia abil.

2. samm: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Laadige alla rakendus Blynk ja looge uus projekt. Võtke teadmiseks autentimismärk-seda kasutatakse koodis. Looge rakenduses Blynk uued kuvavidinad ja valige koodis määratletud vastavad virtuaalsed tihvtid. Seadistage värskendamise intervall, mida vajutada. Igale vidinale tuleks määrata oma virtuaalne tihvt.

Samm: Arduino IDE

Arduino IDE
Arduino IDE

Laadige alla Arduino IDE. WiFi -ühenduse tagamiseks järgige ESP32 asja draiveri ja demo allalaadimisjuhiseid. Laadige alla koodis sisalduvad Blynk ja DHT teegid. Täitke lõplikus koodis autentimismärk, wifi parool, wifi kasutajanimi ja e -post. Kasutage mullatüübi miinimum- ja maksimumväärtuste leidmiseks mulla niiskusanduri demokoodi. Salvestage ja asendage need väärtused lõplikus koodis. Asendage lõplikus koodis taime temperatuuri, mulla niiskuse ja niiskuse miinimumväärtused. Laadige kood üles.

4. samm: ehitage see üles

Ehitage see
Ehitage see
Ehitage see
Ehitage see
Ehitage see
Ehitage see

Kõigepealt ühendage mulla niiskusandur 3,3 V, maanduse ja sisendpinniga 34. Pange tähele, et lüliti on asendis A, kuna kasutatakse selle anduri analoogseadet. Seejärel ühendage DHT -andur 3,3 V, maandus- ja sisendpinniga 27. DHT22 andur vajab VKC ja andmeväljundi tihvti vahel 10K oomi takistit. Kontrollige kindlasti DHT -diagrammi, et veenduda, et see on korralikult ühendatud. Seadistage ESP32 veekindla korpuse sisse nii, et mullas olev niiskusandur ja pinna kohal olev DHT -andur. Ühendage toiteallikaga ja nautige andmeid oma tehase keskkonna kohta.

Samm: kood

// Kaasatud raamatukogud

#define BLYNK_PRINT seeria

#kaasama #kaasama #kaasama #kaasama "DHT.h"

// DHT -anduri teave

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // DHT -anduriga ühendatud digitaalne tihvt DHT dht (DHTPIN, DHTTYPE); // DHT -anduri lähtestamine.

// sisendpistikute ja väljundite määratlemine

int pinnase_andur = 34; // määrake niiskussensoriga ühendatud analoogsisendi pin -number

int output_value; // määratle väljundina

int niiskuse tase; // määratletakse väljundina

int teavitatud = 0; // defineeri märge 0

int ajaviide = 60000L; // seadista taimer tööle, et saada andmeid üks kord minutis või 60 000 millisekundit

// määrake taime miinimumväärtused

int min_niiskus = 20; int min_temperatuur = 75; int min_niiskus = 60;

// Te peaksite saama Blynk -rakenduses autentimisloa.

char auth = "Auth_Token_Here";

// Teie WiFi volikirjad.

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

BlynkTimer taimer;

// See funktsioon saadab Arduino tööaja iga sekund Virtual Pin (5).

// Rakenduses tuleks vidina lugemissageduseks seada PUSH. See tähendab, // et määrate, kui tihti andmeid Blynk Appi saata.

void Sensors () // põhifunktsioon andurite lugemiseks ja blynk -i vajutamiseks

{output_value = analogRead (dirt_sensor); // Loe analoogsignaali pinnas_andurilt ja määratle väljundväärtusena // Kaardista output_vlaue alates min, max väärtustest kuni 100, 0 ja piira vahemikku 0, 100 // Kasutage proovikoodi ja jadamonitori, et leida min ja maksimaalsed väärtused individuaalse anduri ja mullatüübi jaoks paremaks kalibreerimiseks niiskustase = piirang (kaart (väljundväärtus, 1000, 4095, 100, 0), 0, 100); ujuk h = dht.readHumidity (); // Niiskuse ujuki lugemine t = dht.readTemperature (); // Temperatuuri lugemine Celsiuse järgi (vaikimisi) float f = dht.readTemperature (true); // Temperatuuri lugemine Fahrenheiti järgi (isFahrenheit = tõene) // Soojusindeksi arvutamine Fahrenheiti järgi (vaikimisi) float hif = dht.computeHeatIndex (f, h); // Kontrollige, kas mõni lugemine ebaõnnestus, ja väljuge varakult (uuesti proovimiseks). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("DHT -andurilt ei õnnestunud lugeda!")); tagasipöördumine; } // See ühendab valesid virtuaalsete nööpnõeltega, mis on määratletud rakenduse Blynk vidinate vidinates Blynk.virtualWrite (V5, niiskuse tase); // Niiskuse taseme saatmine virtuaalsele tihvtile 5 Blynk.virtualWrite (V6, f); // Saada temperatuur virtuaalsele tihvt 6 Blynk.virtualWrite (V7, h); // Niiskuse saatmine virtuaalsele tihvtile 7 Blynk.virtualWrite (V8, hif); // Soojusindeksi saatmine virtuaalsele tihvtile 8

kui (teavitatud == 0)

{if (niiskustase <= min_koste) // Kui niiskuse tase on võrdne või väiksem min väärtusest {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Saada e -kiri veevabrikule} delay (15000); // Blynk e -kirjade vahe peab olema 15 sekundit. Hiline 15000 millisekundit, kui (f <= min_temperature) // Kui temperatuur on võrdne või madalam min väärtusest {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Saada meil, et temperatuur on madal

}

viivitus (15000); // Blynk e -kirjade vahe peab olema 15 sekundit. Viivitage 15000 millisekundit, kui (h <= min_niiskus) // Kui niiskus on võrdne või väiksem min väärtusest {Blynk.email ("Emial_Here", "Plant Monitor", "Niiskus madal!"); // Saada meil, et niiskus on madal} teavitatud = 1; timer.setTimeout (ajaviide *5, lähtestamine); // mitmekordne ajaviide kordushoiatuskirjade vahel soovitud minutite arvu järgi}}

void resetNotified () // funktsioon kutsuti e -posti sageduse lähtestamiseks

{teavitatud = 0; }

tühine seadistus ()

{Serial.begin (9600); // Silumiskonsool Blynk.begin (auth, ssid, pass); // ühenda blynk timer.setInterval (timedelay, Sensorid); // Seadistage funktsioon, mida kutsutakse iga minuti tagant või milline ajaviide on seatud väärtusele dht.begin (); // käivita DHT sensor}

// Void loop peaks sisaldama ainult blynk.run ja taimerit

void loop () {Blynk.run (); // Käivita blynk timer.run (); // Alustab BlynkTimer}

Soovitan: