Isi kandungan:

Monitor Tumbuhan Menggunakan Perkara ESP32 dan Blynk: 5 Langkah
Monitor Tumbuhan Menggunakan Perkara ESP32 dan Blynk: 5 Langkah

Video: Monitor Tumbuhan Menggunakan Perkara ESP32 dan Blynk: 5 Langkah

Video: Monitor Tumbuhan Menggunakan Perkara ESP32 dan Blynk: 5 Langkah
Video: Monitoring Kelembaban Tanah dengan ESP32, LCD 16x2, dan Blynk IoT 2024, Jun
Anonim
Monitor Tanaman Menggunakan ESP32 Thing dan Blynk
Monitor Tanaman Menggunakan ESP32 Thing dan Blynk
Monitor Tanaman Menggunakan ESP32 Thing dan Blynk
Monitor Tanaman Menggunakan ESP32 Thing dan Blynk

Gambaran keseluruhan

Matlamat projek ini adalah untuk membuat peranti kompak yang dapat memantau keadaan tanaman rumah. Peranti ini membolehkan pengguna memeriksa tahap kelembapan tanah, tahap kelembapan, suhu, dan suhu "terasa seperti" dari telefon pintar menggunakan Aplikasi Blynk. Selain itu, pengguna akan menerima amaran e-mel apabila keadaan menjadi tidak sesuai untuk kilang. Sebagai contoh, pengguna akan menerima peringatan untuk menyiram tanaman apabila tahap kelembapan tanah turun di bawah tahap yang sesuai.

Langkah 1: Keperluan

Keperluan
Keperluan
Keperluan
Keperluan
Keperluan
Keperluan

Projek ini menggunakan benda Sparkfun ESP32, sensor DHT22, dan Sensor Kelembapan Tanah Bata Elektronik. Selain itu, rangkaian wifi dan aplikasi Blynk diperlukan. Sebaiknya, penutup kalis air harus dibuat untuk mengandungi barang ESP32. Walaupun contoh ini menggunakan outlet standard untuk sumber kuasa, penambahan bateri yang boleh dicas semula, panel solar, dan pengawal cas akan membolehkan peranti dihidupkan melalui tenaga yang boleh diperbaharui.

Langkah 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Untuk menjadi, muat turun aplikasi Blynk dan buat projek baru. Perhatikan token pengesahan - ia akan digunakan dalam kod. Buat widget paparan baru di aplikasi Blynk dan pilih pin maya yang sesuai yang ditentukan dalam kod. Tetapkan selang penyegaran ke tolak. Setiap widget harus diberikan pin maya sendiri.

Langkah 3: Arduino IDE

Arduino IDE
Arduino IDE

Muat turun Arduino IDE. Ikuti arahan muat turun untuk pemacu perkara dan demo ESP32 untuk memastikan sambungan wifi. Muat turun perpustakaan Blynk dan DHT yang termasuk dalam kod. Isi token pengesahan, kata laluan wifi, nama pengguna wifi, dan e-mel dalam kod akhir. Gunakan kod demo untuk sensor kelembapan tanah untuk mencari nilai minimum dan maksimum untuk jenis tanah. Catat dan gantikan nilai-nilai ini dalam kod akhir. Ganti nilai minimum untuk suhu, kelembapan tanah, dan kelembapan untuk tanaman dalam kod akhir. Muat naik kod.

Langkah 4: Bina

Bangunlah
Bangunlah
Bangunlah
Bangunlah
Bangunlah
Bangunlah

Pertama, sambungkan sensor kelembapan tanah ke 3.3V, ground, dan pin input 34. Perhatikan, ia adalah integral suis diatur ke A kerana tetapan analog untuk sensor ini akan digunakan. Seterusnya, sambungkan sensor DHT ke 3.3V, ground, dan pin input 27. Sensor DHT22 memerlukan perintang 10K Ohm antara VCC dan pin keluar data. Pastikan untuk memeriksa rajah DHT untuk memastikannya disambungkan dengan betul. Konfigurasikan ESP32 di dalam penutup kalis air dengan sensor kelembapan di dalam tanah dan sensor DHT di atas permukaan. Sambungkan ke sumber kuasa dan nikmati data di persekitaran kilang anda.

Langkah 5: Kod

// Perpustakaan yang disertakan

#tentukan seri BLYNK_PRINT

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

// Maklumat sensor DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Pin digital yang disambungkan ke sensor DHT DHT dht (DHTPIN, DHTTYPE); // Memulakan sensor DHT.

// tentukan pin input dan output

int tanah_sensor = 34; // tentukan nombor pin input analog yang disambungkan ke sensor kelembapan

int output_value; // tentukan sebagai output

int moisturelevel; // tentukan sebagai output

int diberitahu = 0; // definisikan sebagai 0

int timedelay = 60000L; // tetapkan pemasa untuk menjalankan mendapatkan data sekali setiap minit atau 60, 000 milisaat

// tetapkan nilai minimum untuk tanaman

int min_moisture = 20; int min_temperature = 75; int min_humidity = 60;

// Anda harus mendapatkan Auth Token di Aplikasi Blynk.

char auth = "Auth_Token_Here";

// Kelayakan WiFi anda.

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

Pemasa BlynkTimer;

// Fungsi ini menghantar waktu naik Arduino setiap saat ke Virtual Pin (5).

// Dalam aplikasi, frekuensi membaca Widget harus ditetapkan ke PUSH. Ini bermaksud // bahawa anda menentukan kekerapan menghantar data ke Aplikasi Blynk.

void Sensors () // fungsi utama untuk membaca sensor dan mendorong ke blynk

{output_value = analogRead (tanah_sensor); // Baca isyarat analog dari tanah_sensor dan tentukan sebagai output_value // Peta output_vlaue dari min, nilai maksimum hingga 100, 0 dan had antara 0, 100 // Gunakan contoh kod dan monitor bersiri untuk mencari min dan nilai maksimum untuk sensor individu dan jenis tanah untuk penentukuran kelembapan yang lebih baik = had (peta (output_value, 1000, 4095, 100, 0), 0, 100); apungan h = dht.readHumidity (); // Baca kelembapan kelembapan t = dht.readTemperature (); // Baca suhu sebagai Celsius (lalai) apungan f = dht.readTemperature (benar); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) // Hitung indeks haba di Fahrenheit (lalai) float hif = dht.computeHeatIndex (f, h); // Periksa sama ada bacaan gagal dan keluar lebih awal (untuk mencuba lagi). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Gagal membaca dari sensor DHT!")); kembali; } // Ini menghubungkan vales ke pin maya yang ditentukan dalam widget di aplikasi Blynk Blynk.virtualWrite (V5, moisturelevel); // Kirim tahap kelembapan ke pin maya 5 Blynk.virtualWrite (V6, f); // Kirim suhu ke maya pin 6 Blynk.virtualWrite (V7, h); // Kirim kelembapan ke pin maya 7 Blynk.virtualWrite (V8, hif); // Hantar indeks haba ke pin maya 8

jika (diberitahu == 0)

{if (moisturelevel <= min_moisture) // Sekiranya moisturelevel sama dengan atau di bawah nilai min {Blynk.email ("Email_Here", "Monitor Loji", "Loji Air!"); // Hantar e-mel ke loji air} kelewatan (15000); // E-mel Blynk mesti berjarak 15 saat. Kelewatan 15000 milisaat jika (f <= min_temperature) // Sekiranya suhu sama dengan atau di bawah nilai min {Blynk.email ("Email_Here", "Monitor Loji", "Suhu Rendah!"); // Hantar e-mel bahawa suhu rendah

}

kelewatan (15000); // E-mel Blynk mesti berjarak 15 saat. Kelewatan 15000 milisaat jika (h <= min_humidity) // Sekiranya kelembapan sama dengan atau di bawah nilai min {Blynk.email ("Emial_Here", "Monitor Tanaman", "Kelembapan Rendah!"); // Hantar e-mel bahawa kelembapan rendah} diberitahu = 1; timer.setTimeout (timedelay * 5, resetNotified); // darabkan masa dengan jumlah minit yang dikehendaki antara e-mel amaran berulang}}

void resetNotified () // fungsi dipanggil untuk menetapkan semula frekuensi e-mel

{diberitahu = 0; }

persediaan tidak sah ()

{Serial.begin (9600); // Konsol debug Blynk.begin (auth, ssid, pass); // sambungkan ke blynk timer.setInterval (timedelay, Sensor); // Siapkan fungsi yang akan dipanggil setiap minit atau waktu yang ditetapkan ke dht.begin (); // jalankan sensor DHT}

// Gelung kekosongan hanya boleh mengandungi blynk.run dan pemasa

gelung kekosongan () {Blynk.run (); // Jalankan blynk timer.run (); // Memulakan BlynkTimer}

Disyorkan: