top of page

NodeMCU ile Gaz Sensörü Uyarı Sistemi ve Blynk Notification(Bildirimler)

Güncelleme tarihi: 22 Nis 2020

Bu uygulamamızda Gaz sensöründen alacağımız veriyi Blynk uygulamasında Value Display widget ile görüntüleyip, sensör verisine göre telefonumuza bildirim göndereceğiz ve kartımıza bağlı buzzerın uyarı vermesini sağlayacağı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

  • Buzzer

  • Gaz Sensör Kartı (MQ4)

  • 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;
int buzzer = D5; //GPIO 14
bool bildirim = true;

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 300 ün altına düştüğünde ve bildirim değişkeni true oldugunda döngü çalışır.
  if (sensorDeger < 300 && bildirim) {
    Blynk.notify("DİKKAT! Zararlı Gaz Uyarısı"); // Telefonumuza belirlediğimiz içerikte bildirim gönderiliyor.

    //for döngüsünde D5 pinine bağlı buzzerın 5 kere uyarı vermesini sağlıyoruz.
    for (int i = 0; i < 5; i++) {
      digitalWrite(buzzer, HIGH);
      delay(300);
      digitalWrite(buzzer, LOW);
      delay(300);
    }
    bildirim = false;
  }

  //Sensör verisi 700 ün üzerinde çıktığında döngü çalışır.
  if (sensorDeger > 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.
  pinMode(buzzer, OUTPUT); // buzzer 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 Gaz 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.



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

banner300900.gif
banner300900.gif
bottom of page