Arduino Hareket ve Gaz Sensörlerinin Birlikte Kullanımı


22.02.2019 09:23:40 Elektronik Projeler Bilgi Yolunda

Bu projemizde Hc-sr501(Hareket) ve Mq-7(Gaz) sensörlerini yapmış olduğumuz akıllı ev projemize yerleştireceğiz.

Projemizi gerçekleştirmeden önce sensörlerimiz hakkında kısa bilgi vermek istiyorum.

Hc-sr501(Hareket Sensörü):Kızıl ötesi ışınlarla çalışır.Nesnelerin hareket etmesini algılamaz sıcaklığa göre işlem gerçekleştirir.Termal kameralarla kısmen benzerlik gösterir.

Mq-7(Gaz Sensörü):Havadaki zararlı gazları algılayarak bize analog bir sinyal döndürür biz bunu digital sinyale çevirip projelerimizde kullanırız.Metan,COvb. bir çok gazı algılama özelliğine sahiptir.

Gerekli Malzemeler

-Arduino Uno

-Hc-sr501 sensör

-Mq-7 gaz sensör

-Rgb Led

-Buzzer

-Jumper kablolar

-BreadBoard

Devre Şeması

Devre Kodları

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//Sensör pinlerimizi tanımlıyoruz:
#define sensor_pin A0
#define buzzer_pin 9
//RGB LED'imizin çıkış pinlerini tanımlıyoruz:
#define led_r 5
#define led_g 6
#define led_b 7
int pirPin = 3;
int deger  = 0;

//Sensörün çalışması için gerekli ön ısıtma süresini 5sn olarak belirliyoruz
#define preheat_time 5000
//Alarmın çalması için gerekli eşik değerini 300 olarak belirliyoruz.
#define threshold 100

void setup()
{
//Alarm için kullanacağımız buzzer ve LED'leri çıkış olarak tanımlıyoruz
pinMode(buzzer_pin, OUTPUT);
pinMode(pirPin, INPUT);
pinMode(led_r, OUTPUT);
pinMode(led_g, OUTPUT);
pinMode(led_b, OUTPUT);
//Varsayılan olarak LED in hepsinin yanmasını sağlıyoruz.
digitalWrite(led_r, HIGH);
digitalWrite(led_g, HIGH);
digitalWrite(led_b, HIGH);
//Sensör değerini seri monitörden görebilmemiz için seri haberleşmeyi başlatıyoruz:
Serial.begin(9600);
//İlk 5sn boyunca sensörün ısınmasını bekliyoruz. Bu esnada LED mavi renkte yanıyor:
Serial.println("Sensor isitiliyor...");
digitalWrite(led_b, LOW);
delay(preheat_time);
//Isıma işlemi için gereken 5sn süre tamamlandığında mavi LED'i söndürüyoruz:
digitalWrite(led_b, HIGH);
delay(1000);
}

void loop()
{
  deger = digitalRead(pirPin);
  if (deger == HIGH) {
    alarm2();
    noTone(buzzer_pin);
}
else{
  digitalWrite(led_g, LOW);
  digitalWrite(led_r, LOW);
  digitalWrite(led_b, HIGH);
 // Eğer okunan değer 0 ise LED söndürülüyor.
digitalWrite(buzzer_pin, LOW); // Eğer okunan değer 0 ise BUZZER susuyor.
}
//analogRead() fonksiyonu ile snsör değerini ölçüyoruz ve bir değişken içerisinde tutuyoruz:
int sensorValue = analogRead(sensor_pin);
//Sensör değeri belirlediğimiz eşik değerinden yüksek ise alarm() fonksiyonunu çağırıyoruz:
if (sensorValue >= threshold)
alarm(100);
//Alarmın çalmadığı durumda LED'in yeşil yanmasını istiyoruz:
else
digitalWrite(led_g, LOW);
digitalWrite(led_r, LOW);
digitalWrite(led_b, HIGH);

//Sensör değerini bilgisayarımızdan görebilmek için seri monitöre yazıyoruz:
Serial.println(sensorValue);
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)
{
//Buzzer'ın 440Hz'te (la notası) ses üretmesini istiyoruz:
tone(buzzer_pin, 440);
digitalWrite(led_r, LOW);
digitalWrite(led_g, HIGH);
delay(duration);
noTone(buzzer_pin);
digitalWrite(led_r, HIGH);
digitalWrite(led_g, LOW);
delay(duration);
}
void alarm2()
{
//Buzzer'ın 440Hz'te (la notası) ses üretmesini istiyoruz:
tone(buzzer_pin, 440);
//Normal durumda yeşil yanmakta olan LED'i söndürüp kırmızı renkte yakıyoruz:
digitalWrite(led_r, HIGH);
digitalWrite(led_g, LOW);
digitalWrite(led_b, LOW);
delay(5000);
}





Yorum Yap :


29.03.2019 10:52:48

Geliştirilebilir başaralı bir proje olmuş ellerinize sağlık


Site içi Arama


En Çok Okunanlar

Sorusu Olan Varmı?

Paylaştıgım video,dosya yada projelerle ilgili sorularınızı buradan sorabilirsiniz.
Not:Projemi siz yaparmısınız demeyin lütfen :)

Sorunuz mu var?