Merhaba arkadaşlar, bu yazımızda gaz kaçağı alarmı yapacağız birlikte. Bu proje için gerekli malzemeler;

Daha önce NodeMCU ile gaz sensörünü ve rgb ledi ayrı ayrı kullanmıştık. Daha detaylı bilgi için onlara bakabilirsiniz.

🚀RGB led yazısı için https://akademi.robolinkmarket.com/iot-baslangic-seti-5-nodemcu-ile-rgb-led-kontrolu/

🚀Gaz sensörü yazısı için, https://akademi.robolinkmarket.com/iot-baslangic-seti-3-nodemcu-ile-gaz-sensoru/

İsterseniz devre kurulumuna geçeli daha sonra kodlara bakalım.

gaz alarmi

🚀Nodemcu ile Gaz Alarmı Kodları

//Sensör pinlerimizi tanımlıyoruz:
#define sensor_pin A0
#define buzzer_pin 5
//RGB LED'imizin çıkış pinlerini tanımlıyoruz:
#define kirmizi_led 14
#define yesil_led 12
#define mavi_led 13

void setup()
{
  //Alarm için kullanacağımız buzzer ve LED'leri çıkış olarak tanımlıyoruz
  pinMode(buzzer_pin, OUTPUT);
  pinMode(kirmizi_led, OUTPUT);
  pinMode(yesil_led, OUTPUT);
  pinMode(mavi_led, OUTPUT);
  //Varsayılan olarak LED'in sönük kalmasını sağlıyoruz
  digitalWrite(kirmizi_led, HIGH);
  digitalWrite(yesil_led, HIGH);
  digitalWrite(mavi_led, HIGH);
  
  Serial.begin(9600); //seri port ekranı veri alımı için haberleşme sağlanıyor.
  digitalWrite(mavi_led, LOW); // 7 saniye sensörün ısınmasını beklerken mavi ışık yanmakta
  delay(7000);
  digitalWrite(mavi_led, HIGH); //7 saniye sonra mavi ledi söndürecdek
  delay(1000);
}

void loop() 
{
  //analogRead() fonksiyonu ile sensör değerini ölçüyoruz ve bir değişken içerisinde tutuyoruz:
  int sensorDeger = analogRead(sensor_pin);
  //Sensör değeri belirlediğimiz eşik değerinden yüksek ise alarm() fonksiyonunu çağırıyoruz:
  if (sensorDeger >= 300) //sensör değeri 300ü geçince alarm fonksiyonunu çağrıyoruz
    alarm(100);
  //Alarmın çalmadığı durumda LED'in yeşil yanmasını istiyoruz:
  else
    digitalWrite(yesil_led, LOW);
  Serial.println(sensorDeger); //seri port ekranında değerleri görmek için yazdırıyoruz.
  delay(1);
}

//Alarm fonksiyonumuzu tanımlıyoruz. Bu fonksiyon parametre olarak buzzerın ötüp ve LED'in yanıp söneceği süreyi almakta.

void alarm(unsigned int duration)
{
  tone(buzzer_pin, 493); //Buzzer 493Hz de si notası çıkaracaktır. 
  //normal durumda yeşil yanmaktaydı alarm durumuna geçerken yeşil ledi söndürüp kırmızı ledi yakıyoruz.
  digitalWrite(kirmizi_led, LOW);
  digitalWrite(yesil_led, HIGH);
  delay(duration);
  noTone(buzzer_pin);
  digitalWrite(kirmizi_led, HIGH);
  digitalWrite(yesil_led, HIGH);
  delay(duration);
}

RGB ledinizin PWM pinlerine bağladığınızdan emin olun ve ortak anot mu, ortak katot mu olduğuna karar verip ona göre devrenize bağlayın. eğer hangisi olduğunu bilmiyorsanız ortak ucu bir GND ye bağlayarak deneyin olmuyorsa güç pinine bağlayın. Biraz da deneme yanılma yapalım yani. 🙂

Gaz sensörünüz kartlı ise D0 pinini boş bırakabilirsiniz. Fakat A0 çıkışını nodeMCU üzerindeki analog pine bağlamanız önemli çünkü verileri bu pin üzerinden alıp okuyacağız.

Buzzera geçersek (-) ucunu GND ye, (+) ucunu da nodeMCU üzerinden digital pinlerden birine bağlayabilirsiniz.

Siz eğer buzzerınızın başka notalarda ötmesini istiyorsanız aşağıya bırakacağım nota değerlerini kullanabilirsiniz.

  • DO   : 262
  • RE    : 294
  • Mİ    : 330
  • FA    : 349
  • SOL  : 392
  • LA    : 440
  • Sİ    : 493
  • DO   : 523

Projemizin çalışma şekli kod içerisinde belirlediğimiz eşik değerine göre, değerin altındaysa yeşil ışık yanmaktadır. Ama değerin eşiğin üzerine çıkmasıyla alarm durumu devreye girer ve buzzzer ile led birlikte çalışıp kırmızı ışık yanar.  

🚀İşte Nodemcu ile gaz alarmı projemiz hazır artık. 🙂 İstediğiniz gibi kullanabilirsiniz. 

🚀Bu proje ve çok daha fazlası için Robolink Akademi‘yi, devrelerde kullanılan kompanentler içinde Robolink Market‘i ziyaret edebilirsiniz.

Herkese iyi çalışmalar dilerim. 🙂

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz