PIR Sensör ile NRF24L01 Üzerinden Kablosuz Alarm Sistemi Yapımı

2 5.852

Önceki projelerimizde harekete duyarlı alarm sistemi yapmıştık. Bu projede de NRF24L01 PIR sensörün hareket durumunu alıp alarm sistemine aktaracak. Hareket algılandığında alıcı devredeki buzzer ile alarm çalacak ve led yanacak. Kısacası önceki yapmış olduğumuz alarm sistemini bu projede rf ile kablosuz hale getireceğiz. NRF24L01 ile yapılmış diğer projelere de buradan bakabilirsiniz. >> NRF24L01 Projeleri

Projeyi Satın AL

Malzemeler;

Verici Devresi İçin:

  1. Arduino Uno
  2. Hc-sr501 PIR Sensör
  3. NRF24L01 RF Modülü
  4. Pil

Alıcı Devresi İçin:

  1. Arduino Uno
  2. NRF24L01 RF Modülü
  3. Buzzer
  4. Led
  5. Pil

Verici Devre Şeması:

Alıcı Devre Şeması:

NRF24L01 SPI üzerinden haberleşme yaptığı için kullanacağınız arduino modülün SPI pinlerine göre takınız.

Verici Arduino Kodu:

//SCK -> 13
//MISO -> 12
//MOSI -> 11
//CSN -> 10
//CE -> 9
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int inputPin = 2; // hareket sensörü sinyal pini
int pirState = LOW; // hareket algılama başlangıç durumu
int val = 0; // pinden gelen veri

int durum[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;


void setup(void){
Serial.begin(9600);
pinMode(inputPin, INPUT);
radio.begin();
radio.openWritingPipe(pipe);}

void loop(void){
val = digitalRead(inputPin);
if (val == HIGH){
durum[0] = 150;
radio.write(durum, 1);
}
}

Alıcı Arduino Kodu:

//SCK -> 13
//MISO -> 12
//MOSI -> 11
//CSN -> 10
//CE -> 9
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int durum[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int led = 6;

int buzzer_pin = 5; //buzzer pwm pini
void setup(void){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
pinMode(buzzer_pin, OUTPUT);
pinMode(led, OUTPUT);
}

void loop(void){
if (radio.available()){
bool done = false;
while (!done){
done = radio.read(durum, 1);
Serial.println(durum[0]);
if (durum[0] == 150){
delay(15);
alarm(400);
digitalWrite(led, HIGH);

}
else {
digitalWrite(led, LOW);
digitalWrite(buzzer_pin, LOW);
}
delay(15);
}
}
}

void alarm(unsigned char zaman){
analogWrite(buzzer_pin, 255);
delay(zaman);
analogWrite(buzzer_pin, 0);
delay(zaman);

}
Projedeki buzzer pasif modeldir. Yani çalışmadığı zaman LOW verir. Sizdeki aktif buzzer pasif haldeyken HIGH konumunda olacağı için, alıcı kodundaki else ifadesinin altında bu satırdaki  digitalWrite(buzzer_pin, LOW); LOW yerini HIGH yaparak değiştirin.
Bunlar da İlgini Çekebilir
Cevap bırakın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Yorum
  1. emrullah yazar

    iyi günler senin olsun . ücret karşılıgı bilgi desteyine ihtiyacim var. rf kuman da alıcısı hazır modülleriyle bir arkadaşın yaptıgı aktif olarak kullandıgımız ışık ve renk algılayıcı bir sistem. bu sistemi aktif hale getire bilmem icin bilgi desteyine ihtiyacım var. yardımcı olabilirmisiniz.

  2. Ilgaz

    Allah razı olsun çok yardımınız oldu