İçindekiler:
Video: ESP32 Thing ve Blynk Kullanan Tesis Monitörü: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
genel bakış
Bu projenin amacı, bir houseplantın koşullarını izleyebilen kompakt bir cihaz oluşturmaktır. Cihaz, kullanıcının Blynk Uygulamasını kullanarak bir akıllı telefondan toprak nem seviyesini, nem seviyesini, sıcaklığı ve "hissedilen" sıcaklığı kontrol etmesini sağlar. Ek olarak, koşullar tesis için uygun olmadığında kullanıcı bir e-posta uyarısı alacaktır. Örneğin, toprak nem seviyeleri uygun bir seviyenin altına düştüğünde, kullanıcı bitkiyi sulaması için bir hatırlatma alacaktır.
Adım 1: Gereksinimler
Bu proje bir Sparkfun ESP32, bir DHT22 sensörü ve bir Elektronik Tuğla Toprak Nem Sensörü kullanıyor. Ek olarak, bir wifi ağı ve Blynk uygulaması gereklidir. Tercihen, ESP32 şeyini içermek için su geçirmez bir muhafaza oluşturulmalıdır. Bu örnekte bir güç kaynağı için standart bir priz kullanılırken, şarj edilebilir bir pil, güneş paneli ve şarj kontrol cihazının eklenmesi, cihazın yenilenebilir enerji ile çalıştırılmasını sağlayacaktır.
2. Adım: Blynk
Olmak için Blynk uygulamasını indirin ve yeni bir proje oluşturun. Kimlik doğrulama belirtecini not edin; kodda kullanılacaktır. Blynk uygulamasında yeni ekran widget'ları oluşturun ve kodda tanımlanan ilgili sanal pinleri seçin. İtmek için yenileme aralığını ayarlayın. Her widget'a kendi sanal pini atanmalıdır.
Adım 3: Arduino IDE'si
Arduino IDE'yi indirin. Wifi bağlantısını sağlamak için ESP32 şey sürücüsü ve demo için indirme talimatlarını izleyin. Kodda bulunan Blynk ve DHT kitaplıklarını indirin. Son kodda kimlik doğrulama jetonunu, wifi şifresini, wifi kullanıcı adını ve e-postayı doldurun. Toprak türü için minimum ve maksimum değerleri bulmak için toprak nem sensörü demo kodunu kullanın. Bu değerleri son kodda kaydedin ve değiştirin. Nihai kodda bitki için sıcaklık, toprak nemi ve nem için minimum değerleri değiştirin. Kodu yükleyin.
Adım 4: İnşa Edin
İlk olarak, toprak nemi sensörünü 3,3V'a, toprağa ve giriş pimi 34'e bağlayın. Bu sensörün analog ayarı kullanılacağından anahtarın A'ya ayarlanmasının ayrılmaz olduğunu unutmayın. Ardından, DHT sensörünü 3,3V, toprak ve giriş pimi 27'ye bağlayın. DHT22 sensörü, VCC ile veri çıkış pimi arasında 10K Ohm'luk bir direnç gerektirir. Doğru şekilde kablolandığından emin olmak için DHT şemasını kontrol ettiğinizden emin olun. ESP32'yi nem sensörü toprakta ve DHT sensörü yüzeyin üzerinde olacak şekilde su geçirmez bir muhafaza içinde yapılandırın. Bir güç kaynağına bağlanın ve tesisinizin ortamındaki verilerin keyfini çıkarın.
Adım 5: Kod
// Dahil edilen kitaplıklar
#define BLYNK_PRINT Seri
#include #include #include #include "DHT.h"
//DHT sensör bilgisi
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // DHT sensörüne bağlı dijital pin DHT dht(DHTPIN, DHTTYPE); // DHT sensörünü başlat.
//giriş pinlerini ve çıkışlarını tanımla
int toprak_algılayıcısı = 34; //nem sensörüne bağlı analog giriş pin numarasını tanımla
int çıktı_değeri;//çıktı olarak tanımla
int nem seviyesi;//çıktı olarak tanımla
int bildirildi = 0; // bildirimi 0 olarak tanımla
int zaman gecikmesi= 60000L; //zamanlayıcıyı dakikada bir veya 60.000 milisaniyede veri almak için çalıştır
// tesis için minimum değerleri ayarla
int min_nem =20; int min_sıcaklık =75; int min_nem =60;
// Blynk Uygulamasında Auth Token almalısınız.
char auth = "Auth_Token_Here";
// WiFi kimlik bilgileriniz.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
BlynkTimer zamanlayıcı;
// Bu fonksiyon Arduino'nun çalışma süresini her saniye Virtual Pin'e (5) gönderir.
// Uygulamada, Widget'ın okuma frekansı PUSH olarak ayarlanmalıdır. Bu, // Blynk Uygulamasına ne sıklıkta veri göndereceğinizi tanımladığınız anlamına gelir.
void Sensors () // sensörleri okumak ve yanıp sönmeye basmak için ana işlev
{ output_value = analogRead(soil_sensor);// toprak_sensöründen gelen analog sinyali okuyun ve output_value olarak tanımlayın // output_vlaue'yi min, maks değerleri 100, 0'a eşleyin ve 0, 100 arasında sınırlandırın //min ve daha iyi kalibrasyon için bireysel sensör ve toprak tipi için maksimum değerler nem seviyesi = kısıtlama (harita(çıktı_değeri, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity(); // Nem şamandırasını oku t = dht.readTemperature(); // Sıcaklığı Celsius olarak oku (varsayılan) float f = dht.readTemperature(true); // Sıcaklığı Fahrenhayt olarak oku (isFahrenheit = true) // Isı indeksini Fahrenhayt cinsinden hesapla (varsayılan) float hif = dht.computeHeatIndex(f, h); // Herhangi bir okumanın başarısız olup olmadığını kontrol edin ve erken çıkın (tekrar denemek için). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("DHT sensöründen okunamadı!")); dönüş; } //Bu, değerleri Blynk uygulamasındaki widget'larda tanımlanan sanal pimlere bağlar Blynk.virtualWrite(V5, nem düzeyi);// Nem seviyesini sanal pim 5'e gönder Blynk.virtualWrite(V6, f);// Sanala sıcaklığı gönder pin 6 Blynk.virtualWrite(V7, h);// Sanal pin 7'ye nem gönder Blynk.virtualWrite(V8, hif);// Sanal pin 8'e ısı indeksi gönder
if (bildirildi==0)
{ if (nem seviyesi <= min_nem) // Nem seviyesi minimum değere eşit veya altındaysa { Blynk.email("Email_Here", "Plant Monitor", "Su Tesisi!"); // Su tesisine e-posta gönder } gecikme (15000); // Blynk e-postaları 15 saniye aralıklarla olmalıdır. Gecikme 15000 milisaniye if (f <= min_temperature) // Sıcaklık minimum değere eşit veya altındaysa { Blynk.email("Email_Here", "Plant Monitor", "Sıcaklık Düşük!"); // Sıcaklığın düşük olduğuna dair e-posta gönder
}
gecikme (15000); // Blynk e-postaları 15 saniye aralıklarla olmalıdır. Gecikme 15000 milisaniye if (h <= min_nem) // Nem minimum değere eşit veya altındaysa { Blynk.email("Emial_Here", "Plant Monitor", "Nem Düşük!"); // Nemin düşük olduğuna dair e-posta gönder } bildirildi = 1; timer.setTimeout(timedelay *5, resetNotified); // zaman gecikmesini tekrar uyarı e-postaları arasında istenen dakika sayısıyla çarp } }
void resetNotified() // e-posta sıklığını sıfırlamak için işlev çağrıldı
{ bildirildi = 0; }
geçersiz kurulum()
{ Serial.başlangıç(9600); // Hata ayıklama konsolu Blynk.begin(auth, ssid, pass); // blynk timer.setInterval'e bağlanın(timedelay, Sensors); // Dakikada bir çağrılacak bir fonksiyon veya hangi zaman gecikmesinin ayarlanacağı dht.begin(); //DHT sensörünü çalıştır }
//Void döngüsü yalnızca blynk.run ve zamanlayıcıyı içermelidir
boşluk döngüsü() { Blynk.run(); // blynk timer.run()'u çalıştır; // BlynkTimer'ı başlatır }
Önerilen:
AutoWaterFlora: Kendi Kendini Sulayan Tesis: 3 Adım
AutoWaterFlora: Kendinden Sulama Tesisi: Belirli bir süre ve belirli aralıklarla pompayı çalıştıracak, kendi kendine sulama yapan bir tesis aparatıdır. belirli aralıklarla
Susuzluk Uyarısı Tesis Alarmı: 13 Adım
Susuzluk Uyarısı Bitki Alarmı: Temize çıkmam gerekiyor - Ben korkunç bir bitki ebeveyniyim. Bunu göğsümden çıkarmak güzel. Fotosentezi biraz fazla mı zorluyor, yoksa eski H2O'yu hafif mi yakıyor, çözemiyorum. Görünüşe göre yaptığım hiçbir şey bu adamı tutamayacak
ESP32 ile Güneş Ağırlığına Dayalı Tesis Yönetimi: 7 Adım (Resimlerle)
ESP32 ile Güneş Ağırlığına Dayalı Bitki Yönetimi: Bitki yetiştirmek eğlencelidir ve onları sulamak ve onlara bakmak gerçekten zor değildir. Sağlıklarını izlemek için mikrodenetleyici uygulamaları internetin her yerinde ve tasarımlarının ilhamı bitkinin statik yapısından ve izleme kolaylığından geliyor
Arduino Kullanan Kendi Kendini Sulayan Tesis: 3 Adım
Arduino Kullanan Kendi Kendini Sulayan Tesis: Projeme hoş geldiniz! Bu, ihtiyacı olduğunu tespit ettiğinde kendine bakma ve kendini sulama yeteneğine sahip bir bitkidir. Bu resim bitirme projemin önden görünüşüdür. Bardak, toprağınıza nemi yapıştırdığınız bitkinizi içerir
Tesis Monitörü: 12 Adım (Resimlerle)
Bitki Monitörü: Bitki monitörünün amacı, verilen analog toprak sensörüne bağlı bir bitkiye gerekirse suyu tarayıp vermektir. Bu proje için gerekli parçalar: 1x Arduino Uno1x LCD Ekran1x Servo Motor1x Toprak Sensör Ünitesi1x Potansiyometre1x Medikal 30c