Bu uygulamamızda Toprak Nem sensöründen alacağımız veriyi Blynk uygulamasında "Value Display" widget ile görüntüleyip, sensör verisine göre belirlediğiniz adrese mail göndereceğiz ve uzaktan röle kontrolü yapacağız.
NOT : Bu uygulamayı yapabilmeniz için NodeMCU kartınızın Arduino IDE arayüzüne tanıtılmış ve Blynk kütüphanesinin kurulmuş olması gerekmektedir.
İlgili yazılara buradan ulaşabilirsiniz.
Bu uygulamada kullanacağımız malzemeler;
NodeMCU
5V Röle Kartı
Toprak Nem Sensör Kartı
Jumper Kablolar
Öncelikle devremizi şemada gördüğümüz şekilde kuruyoruz.
Yazdığımız kodu kartımıza yüklüyoruz. Kod açıklamalarını aşağıda görebilirsiniz.
#define BLYNK_PRINT Serial
// İlgili Kütüphaneler eklendi
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// Projenize ait Auth Token. Uygulama içinden veya mail adresinizden erişebilirsiniz
char auth[] = "Auth Token";
//WiFi ağ adınız ve parolanız
char ssid[] = "Ağ Adınız";
char pass[] = "Ağ Parolanız";
int sensorPin = A0; // Sensör bağlantı pini
int sensorDeger;
bool mail = true;
int role = D5; // GPIO 14
BlynkTimer timer;
//Sensörümüzün verdiği değerleri okuyup verileri uygulamamıza gönderiyoruz.
void sensorOku()
{
sensorDeger = analogRead(sensorPin); // Sensör okunarak alınan veri sensorDeger değişkenine eşitleniyor.
Blynk.virtualWrite(V1, sensorDeger); // sensorDeger verisi Blynk uygulamasında V1 pinine gönderiliyor.
//Sensör verisi 700 ün üstüne çıktığında ve mail değişkeni true oldugunda döngü çalışır.
if (sensorDeger > 700 && mail) {
Blynk.email("mailadresiniz@mail.com", "Subject: Sulama Sistemi", "Bitkinizin suya ihtiyacı var. Sulama sistemini açmak için uygulamaya gidin"); //Mail adresiniz, Konu, İçerik
mail = false;
}
//Sensör verisi 300 ün altında düştüğünde döngü çalışır.
if (sensorDeger < 300) {
digitalWrite(role, LOW); // Bitki yeterince sulandıgında role otomatik olarak kapanır.
mail = true;
}
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(role, OUTPUT); // role pinini ÇIKIŞ olarak ayarlıyoruz
// Saniyede 1 defa sensorOku fonksiyonu çağırıyoruz
timer.setInterval(1000L, sensorOku);
}
void loop()
{
Blynk.run();
timer.run();
}
Blynk uygulamasında öncelikle Value Display widgeti ekleyip ayarlarını yapıyoruz. A0 pininden okuduğumuz Toprak Nem sensör verisini anlık olarak bu widget üzerinde göreceğiz. Bunun için INPUT pini V1 sanal pini, değer aralığı ise 0-1023 olarak ayarlıyoruz.
Sonrasında röleyi kontrol edeceğimiz Styled Button widgeti ekliyoruz. OUTPUT pini kart üzerinde rölenin bağlı bulunduğu pin olan D5 olarak seçiyoruz ve buton modunu switch olarak değiştiriyoruz. Rölenizin açık-kapalı durumuna göre çıkış değerini 0>1 veya 1>0 olarak ayarlıyoruz. Açık ve kapalı durumlarda görmek istediğiniz etiket yazılarını yazıyoruz ve stil ayarlarını yapıyoruz.
Son olarak sensör verisine göre mail göndereceğimiz mail widgeti ekliyoruz. Mail gönderilecek adresi bu widget ayarlarından ya da kodlama kısmından belirleyebilirsiniz.
Widgetlarımızı ekleyip ayarlarını yaptıktan sonra sağ üstteki çalıştır butonu ile uygulamamızı çalıştırıyoruz.
İlgili kütüphaneler;
Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır.
Comments