Daftar Isi:

Plant Monitor Menggunakan ESP32 Thing dan Blynk: 5 Langkah
Plant Monitor Menggunakan ESP32 Thing dan Blynk: 5 Langkah

Video: Plant Monitor Menggunakan ESP32 Thing dan Blynk: 5 Langkah

Video: Plant Monitor Menggunakan ESP32 Thing dan Blynk: 5 Langkah
Video: How to make a plant watering system with ESP32 board and Blynk app #sritu_hobby #esp32project 2024, Juni
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

Tujuan dari proyek ini adalah untuk membuat perangkat kompak yang dapat memantau kondisi tanaman hias. Perangkat ini memungkinkan pengguna untuk memeriksa tingkat kelembaban tanah, tingkat kelembaban, suhu, dan suhu "terasa seperti" dari smartphone menggunakan Aplikasi Blynk. Selain itu, pengguna akan menerima peringatan email ketika kondisi menjadi tidak cocok untuk pabrik. Misalnya, pengguna akan menerima pengingat untuk menyirami tanaman ketika tingkat kelembaban tanah turun di bawah tingkat yang sesuai.

Langkah 1: Persyaratan

Persyaratan
Persyaratan
Persyaratan
Persyaratan
Persyaratan
Persyaratan

Proyek ini menggunakan hal Sparkfun ESP32, sensor DHT22, dan Sensor Kelembaban Tanah Bata Elektronik. Selain itu, jaringan wifi dan aplikasi Blynk diperlukan. Lebih disukai, penutup kedap air harus dibuat untuk menampung benda ESP32. Meskipun contoh ini menggunakan stopkontak standar untuk sumber daya, penambahan baterai isi ulang, panel surya, dan pengontrol pengisian daya akan memungkinkan perangkat diberi daya melalui energi terbarukan.

Langkah 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Untuk menjadi, unduh aplikasi Blynk dan buat proyek baru. Catat token autentikasi--ini akan digunakan dalam kode. Buat widget tampilan baru di aplikasi Blynk dan pilih pin virtual terkait yang ditentukan dalam kode. Atur interval penyegaran ke push. Setiap widget harus diberi pin virtualnya sendiri.

Langkah 3: Arduino IDE

Arduino IDE
Arduino IDE

Unduh Arduino IDE. Ikuti petunjuk pengunduhan untuk driver hal ESP32 dan demo untuk memastikan konektivitas wifi. Unduh pustaka Blynk dan DHT yang disertakan dalam kode. Isi token otentikasi, kata sandi wifi, nama pengguna wifi, dan email di kode terakhir. Gunakan kode demo untuk sensor kelembaban tanah untuk menemukan nilai minimum dan maksimum untuk jenis tanah. Catat dan ganti nilai-nilai ini dalam kode akhir. Ganti nilai minimum untuk suhu, kelembaban tanah, dan kelembaban untuk tanaman dalam kode akhir. Unggah kode.

Langkah 4: Bangun Itu

Bangun itu
Bangun itu
Bangun itu
Bangun itu
Bangun itu
Bangun itu

Pertama, hubungkan sensor kelembaban tanah ke 3.3V, ground, dan pin input 34. Perhatikan, sakelar diset ke A karena pengaturan analog untuk sensor ini akan digunakan. Selanjutnya, sambungkan sensor DHT ke 3.3V, ground, dan pin input 27. Sensor DHT22 membutuhkan resistor 10K Ohm antara VCC dan pin data out. Pastikan untuk memeriksa diagram DHT untuk memastikannya terhubung dengan benar. Konfigurasikan ESP32 di dalam selungkup kedap air dengan sensor kelembapan di dalam tanah dan sensor DHT di atas permukaan. Hubungkan ke sumber listrik dan nikmati data di lingkungan pabrik Anda.

Langkah 5: Kode

//Termasuk perpustakaan

#tentukan Serial BLYNK_PRINT

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

//informasi sensor DHT

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

//menentukan pin input dan output

int sensor_tanah = 34; // tentukan nomor pin input analog yang terhubung ke sensor kelembaban

int output_value;//define sebagai output

int moisturelevel;//define as output

int diberitahu = 0; //tentukan notifikasi sebagai 0

int waktu tunda = 60000L; //set timer untuk menjalankan dapatkan data sekali setiap menit atau 60.000 milidetik

//set nilai minimum untuk plant

int min_kelembaban =20; int suhu_min =75; int min_kelembaban =60;

// Anda harus mendapatkan Token Auth di Aplikasi Blynk.

char auth = "Auth_Token_Di Sini";

// Kredensial WiFi Anda.

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

Timer BlynkTimer;

// Fungsi ini mengirimkan waktu aktif Arduino setiap detik ke Pin Virtual (5).

// Dalam aplikasi, frekuensi membaca Widget harus disetel ke PUSH. Ini berarti // bahwa Anda menentukan seberapa sering mengirim data ke Aplikasi Blynk.

void Sensors () //fungsi utama untuk membaca sensor dan push to blynk

{ output_value = analogRead(soil_sensor);// Baca sinyal analog dari soil_sensor dan tentukan sebagai output_value //Petakan output_vlaue dari min, nilai maks ke 100, 0 dan batasi antara 0, 100 //Gunakan kode sampel dan monitor serial untuk menemukan min dan nilai maks untuk masing-masing sensor dan jenis tanah untuk kalibrasi yang lebih baik tingkat kelembaban = kendala (peta(nilai_output, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity(); // Baca kelembaban float t = dht.readTemperature(); // Baca suhu sebagai Celsius (default) float f = dht.readTemperature(true); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) // Hitung indeks panas dalam Fahrenheit (default) float hif = dht.computeHeatIndex(f, h); // Periksa apakah ada pembacaan yang gagal dan keluar lebih awal (untuk mencoba lagi). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Gagal membaca dari sensor DHT!")); kembali; } //Ini menghubungkan vales ke pin virtual yang ditentukan dalam widget di aplikasi Blynk Blynk.virtualWrite(V5, moisturelevel);// Kirim tingkat kelembapan ke pin virtual 5 Blynk.virtualWrite(V6, f);// Kirim suhu ke virtual pin 6 Blynk.virtualWrite(V7, h);// Kirim kelembapan ke pin virtual 7 Blynk.virtualWrite(V8, hif);// Kirim indeks panas ke pin virtual 8

jika (diberitahu==0)

{ if (tingkat kelembaban <= min_moisture) // Jika tingkat kelembaban sama dengan atau di bawah nilai min { Blynk.email("Email_Here", "Plant Monitor", "Water Plant!"); // Kirim email ke water plant } delay (15000); // Email Blynk harus berjarak 15 detik. Delay 15000 milidetik if (f <= min_temperature) // Jika suhu sama dengan atau di bawah nilai min { Blynk.email("Email_Here", "Plant Monitor", "Temperature Low!"); // Kirim email bahwa suhunya rendah

}

penundaan (15000); // Email Blynk harus berjarak 15 detik. Delay 15000 milidetik if (h <= min_humidity) // Jika kelembaban sama dengan atau di bawah nilai min { Blynk.email("Emial_Here", "Plant Monitor", "Humidity Low!"); // Kirim email bahwa kelembapan rendah } notified = 1; timer.setTimeout(penundaan waktu *5, resetNotified); // mengalikan waktu tunda dengan jumlah menit yang diinginkan antara email peringatan berulang } }

void resetNotified() //fungsi dipanggil untuk mereset frekuensi email

{ diberitahu = 0; }

batalkan pengaturan()

{ Serial.begin(9600); // Debug konsol Blynk.begin(auth, ssid, pass); // terhubung ke blynk timer.setInterval(penundaan waktu, Sensor); // Atur fungsi yang akan dipanggil setiap menit atau waktu tunda yang diatur ke dht.begin(); //jalankan sensor DHT }

//Void loop seharusnya hanya berisi blynk.run dan timer

void loop() { Blynk.run(); // Jalankan blynk timer.run(); // Memulai BlynkTimer }

Direkomendasikan: