back to top

PicoBricks ile Akıllı Ev Projesi

Akıllı Ev Projesi

Fabrikalar, işyerleri, evler ve hatta hayvan barınakları… Yaşam alanlarımızı davetsiz misafirlere karşı koruyacak birçok farklı elektronik sistem vardır. Bu elektronik sistemler ev veya işyeri güvenlik sistemleri olarak üretilmekte veya pazarlanmaktadır. Güvenlik kameralarının kaydettiği görüntülerin işlenip yorumlanmasını sağlayan sistemlerin yanı sıra insan vücudunun hareketlerini sensörler yardımıyla algılayıp buna göre farklı sistemleri kontrol edebilen güvenlik sistemleri de bulunmaktadır. Güvenlik sistemleri aslında bir çalar saat gibi çalışmakta ve kurulu olduğu bölgede olağan dışı bir aktivite tespit ettiğinde sesli ve görsel uyarı vermektedir. Ev veya işletme sahibine bildirimlerde bulunabileceği gibi aynı zamanda güvenlik birimlerine de otomatik bildirimler yapabilmektedirler.

Yangın veya gaz kaçağı gibi durumlarda zehirlenmelerin önlenmesi amacıyla ev ve işyerlerinde gaz sensörleri de kullanılmaktadır. Herhangi bir sorun durumunda çevrede bulunan insanları yüksek sesli bir alarm ile uyarmaktadır.

PicoBricks ile HC-SR501 ve MQ-2 gaz sensörünü kullanarak bir akıllı ev projesi yapacağız. HC-SR501 sensörü, PIR sensörü olarak da bilinir ve çevredeki ısı enerjisini tespit etmek için bir çift piroelektrik sensör kullanır.  

Detaylar ve Algoritma

HC-SR501 sensörü bir hareket algıladığında 3 saniye boyuca dijital çıkış verir. Bir Picoboard, buzzer ve buton LED modülü kullanarak bir akıllı ev projesi yapacağız.

Program başladığında butona basılarak sistemin aktif hale getirilmesi gerekiyor. Butona bastıktan sonra elimizi sistemin dışına çıkarmak için 3 saniye süre tanınmıştır. 3 saniyenin sonunda LED kırmızı renge döner ve sistemin aktif olduğunu temsil eder. Eğer sistem bir hareket algılarsa LED yanıp sönmeye başlayacak ve buzzer ses çıkaracak. Sistemin kapatılması için PicoBricks’i yeniden başlatmak gerekir.

MQ-2 gaz sensörü ise sürekli aktiftir ve herhangi bir gaz algıladığında buzzer ve LED ile uyarı verir.

Bileşenler

1x PicoBricks

1x HC-SR501 PIR Sensörü

1x MQ-2 Gaz Sensörü

1x Mini Breadboard

Jumper Kablolar

Kolay Bağlantı Kabloları

Devre Şeması

Devre Şeması

Projenin Yapım Aşaması

Projenin sağlıklı çalışabilmesi için kartondan bir ev yapmanız gerekiyor. Bir makas, kalem, bant, yapıştırıcı ve maket bıçağı ile kolayca bir karton ev yapabilirsiniz.

Başka bir karton parçası ile ev için bir çatı yapabilirsiniz.

Çift taraflı bantı PicoBricks Parçalarının altına yapıştırın.

PicoBricks parçalarını yaptığınız kartondan evin içine yerleştirin. PIR sensörünü direkt olarak kapıyı görecek şekilde yerleştirmeyi unutmayın. Buton modülünü hemen kapının üst kısmına yerleştirebilirsiniz.

Bir batarya bağladığınızda ve PicoBricks’i açtığınızda kod çalışmaya başlayacaktır. Butona bastıktan 3 saniye sonra alarm sistemi devreye girecektir. Devreye girdikten sonra elinizi evin içine sokarsanız alarm çalmaya başlar.

Örneğin bir çakmak gazını evin içine tutarsanız alarm sistemi yine devreye girer.

MicroBlocks Kodları

MicroPython Kodları

from machine import Pin, PWM
from utime import sleep
# define libraries
PIR = Pin(14, Pin.IN)
MQ2 = Pin(1, Pin.IN)
buzzer = PWM(Pin(20, Pin.OUT))
redLed = Pin(7, Pin.OUT)
button = Pin(10, Pin.IN, Pin.PULL_DOWN)
# define output and input pins
activated = 0
gas = 0

while True:
    if button.value() == 1:
        activated = 1
        gas = 0
        sleep(3)
        redLed.value(1)
        buzzer.duty_u16(0)

    if MQ2.value() == 1:
        gas = 1

    if activated == 1:
        if PIR.value() == 1:
            buzzer.duty_u16(6000)
            buzzer.freq(440)
            sleep(0.2)
            buzzer.freq(330)
            sleep(0.1)
            buzzer.freq(494)
            sleep(0.15)
            buzzer.freq(523)
            sleep(0.3)

    if gas == 1:
        buzzer.duty_u16(6000)
        buzzer.freq(330)
        sleep(0.5)
        redLed.value(1)
        buzzer.freq(523)
        sleep(0.5)
        redLed.value(0)
        # LED will light and buzzer will sound when PIR detects motion or MQ2 detects toxic gas

Arduino C Kodları

void actived (){
  digitalWrite(7,1);
  while(!(digitalRead(14) == 1))
  {
    _loop();
  }
  motion_detected();
}
void motion_detected (){
  while(1) {
      // buzzer settings
      tone(20,262,0.25*1000);
      delay(0.25*1000);
      tone(20,330,0.25*1000);
      delay(0.25*1000);
      tone(20,262,0.25*1000);
      delay(0.25*1000);
      tone(20,349,0.25*1000);
      delay(0.25*1000);
// sound the buzzer when PIR detected a motion
      _loop();
  }
}
void _delay(float seconds) {
  long endTime = millis() + seconds * 1000;
  while(millis() < endTime) _loop();
}
void _loop() {
}
void loop() {
  _loop();
}
void setup() {
  pinMode(10,INPUT);
  pinMode(1,INPUT);
  pinMode(20,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(14,INPUT);
  // define input and output pins
  while(1) {
      if(digitalRead(10) == 1){
          _delay(3);
          actived();
      }
      if(digitalRead(1) == 1){
          while(!(digitalRead(10) == 1))
          {
            _loop();
            tone(20,349,0.5*1000);
            delay(0.5*1000);
            digitalWrite(7,1);
            _delay(0.5);
            tone(20,392,0.5*1000);
            delay(0.5*1000);
            digitalWrite(7,0);
            _delay(0.5);
          }
      }
      _loop();
  }
}

Son Çıkan Yazılar

CEVAP VER

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