NodeMCU ile LDR - Röle Kontrolü ve Blynk Notification(Bildirimler)

Güncelleme tarihi: 17 Nis 2020

Bu uygulamamızda LDR sensörden alacağımız veriyi Blynk uygulamasında "Gauge" widget ile görüntüleyip, sensör verisine göre telefonumuza bildirim 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ı

  • LDR Sensör Kartı

  • Jumper Kablolar

Öncelikle devremizi şemada gördüğümüz şekilde kuruyoruz.






Rölemizi direk olarak Blynk uygulamasında oluşturacağımız "Styled Button" widget ile kontrol edeceğiz. Bu nedenle IDE üzerinde röle için ayrıca bir kod yazmanız gerekmiyor.


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 ldrPin = A0; // LDR bağlantı pini 
int ldrDeger;
bool bildirim = true;

BlynkTimer timer;

//LDR Sensörümüzün verdiği değerleri okuyup verileri uygulamamıza gönderiyoruz.
void sensorOku()
{
  ldrDeger = analogRead(ldrPin); // LDR sensör okunarak alınan veri ldrDeger değişkenine eşitleniyor. 
  
  Blynk.virtualWrite(V1, ldrDeger); // ldrDeger verisi Blynk uygulamasında V1 pinine gönderiliyor. 

  //LDR verisi 300 ün altına düştüğünde (karanlık) ve bildirim değişkeni true oldugunda döngü çalışır.
  if (ldrDeger < 300 && bildirim) {
    Blynk.notify("Karanlık algılandı. Işıkları açmak için uygulamaya gidin"); // Telefonumuza belirlediğimiz içerikte bildirim gönderiliyor.
    bildirim = false; 
  }

  //LDR verisi 700 ün üzerinde çıktığında (aydınlık) döngü çalışır.
  if (ldrDeger > 700) {
    bildirim = true; 
  }
}


void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  Blynk.notify("Cihaz Açıldı"); // Başlangıçta Cihaz Açıldı bildirimi gönder.

  // Saniyede 1 defa sensorOku fonksiyonu çağırıyoruz
  timer.setInterval(1000L, sensorOku);
}

void loop()
{
  Blynk.run();
  timer.run();
}


Blynk uygulamasında öncelikle Gauge widgeti ekleyip ayarlarını yapıyoruz. A0 pininden okuduğumuz LDR 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 bildirim almak istediğimiz için Notification widgeti ekliyoruz. Bildirim sesini ve öncelik ayarını yaparak tamamlıyoruz.




Widgetlarımızı ekleyip ayarlarını yaptıktan sonra sağ üstteki çalıştır butonu ile uygulamamızı çalıştırıyoruz. Bildirimler widgeti telefonunuz kilit ekranında dahi çalışmaya devam edecektir.






İ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.

Son Paylaşımlar