İşyerleri, fabrikalar, evler ve hatta hayvan barınakları… Yaşam alanlarımızı davetsiz misafirlere karşı korumak için kullanılabilecek farklı elektronik sistemler bulunmaktadır. Bu sistemler ev ve işyeri güvenlik sistemleri olarak üretilmekte ve pazarlanmaktadır. Güvenlik kameralarının ürettiği görüntülerin işlenip yorumlandığı sistemlerin yanı sıra insan vücudunu ve hareketlerini sensörler ile tespit edip aksiyon alan güvenlik sistemleri de bulunmaktadır. Güvenlik sistemleri bir nevi çalar saat gibi kurulmakta ve belirlenen bölgede tanımlanamayan bir aktivite tespit edildiğinde sesli ve görsel uyarı vermektedir. İşletmeye veya ev sahibine bildirimde bulunabileceği gibi güvenlik şirketlerine de otomatik bildirimler yapabilmektedir.
Gaz kaçağı, yangın vb. durumlarda zehirlenmelerin önlenmesi amacıyla ev ve işyerlerinde gaz sensörleri kullanılmaktadır. Herhangi bir problem durumunda çevrede yaşayan insanlar yüksek sesli alarm ile uyarılmaktadır.
PicoBricks ile HC-SR501 ve MQ-2 gaz sensörünü kullanarak örnek bir akıllı ev projesi hazırlayacağız. Bu sensör HC-SR501, PIR sensörü olarak da bilinir. Pasif kızılötesi (PIR) sensörler, çevredeki ısı enerjisini tespit etmek için bir çift piroelektrik sensör kullanır. Bu iki sensör yan yana duruyor ve iki sensör arasındaki sinyal farkı değiştiğinde (örneğin odaya bir kişi girdiğinde) sensör devreye giriyor.
Ayrıntılar ve Algoritma
HC-SR501 PIR sensörü hareket algıladığında 3 saniye boyunca dijital çıkış verir. Picoboard kullanacağız, zil ve projedeki buton LED modülü. Tüm parçalar modelde olmalıdır.
Program başladığında, düğme Alarm sistemini etkinleştirmek için tuşuna basılmalıdır. Butona bastıktan sonra elin modelden dışarı çekilmesi için 3 saniye beklemeliyiz. 3 saniye sonunda kırmızı LED yanar ve alarm sistemi devreye girer. Alarm sistemi bir hareket algıladığında kırmızı LED yanıp sönmeye başlayacak ve sesli uyarı alarmı çalacaktır. Sessize almak için PicoBricks'in yeniden başlatılması gerekir.
MQ-2 sensörü her zaman açıktır. Zehirli bir gaz tespit ettiğinde sesli uyarı ve yanıp sönen kırmızı LED ile sizi bilgilendirecektir.
Bileşenler
1X PicoBricks
1X HC-SR501 PIR sensörü
1X MQ-2 Gaz sensörü
1X Mini devre tahtası
Atlama Kabloları
Kolay Bağlantı Kabloları
Bağlantı şeması
Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.
Projenin İnşaat Aşamaları
Projeyi yürütmek için bir karton kutuyu model eve dönüştürmeniz gerekiyor. Makas, kurşun kalem, bant, yapıştırıcı ve maket bıçağına ihtiyacınız olacak. Kutunun üzerine kalemle pencere ve kapılar çizin. Kapı kısmını maket bıçağıyla kesin.
Çatı kısmını yapmak için başka bir karton kullanabilirsiniz.
PicoBricks parçalarının altına çift taraflı köpük bant yapıştırın.
PicoBricks parçalarını model evin içine yerleştirin. PIR sensörünü, kapıyı doğrudan içeriden görecek şekilde konumlandırın. düğme modülünü içeriden kapının hemen üstüne takın.
Pil kutusunu Picoboard'a bağlayıp açtığınızda kod çalışmaya başlayacaktır. Butona bastıktan 3 saniye sonra alarm sistemi devreye girecek ve kırmızı LED yanacaktır. Elinizi kapıya koyduğunuzda zil sesi çalmaya başlayacaktır.
Çakmak gazını evin içinde tuttuğunuzda alarm sisteminin tekrar devreye girmesi beklenir.
PicoBricks'in MicroBlock Kodları
Mikrobloklar Çalıştır sekmesine görseli sürükleyerek veya butonuna tıklayarak projenin Mikroblok kodlarına ulaşabilirsiniz.
PicoBricks'in MicroPython Kodları
makine içe aktarma Pininden, PWM
utime içe aktarma uykusundan
#kütüphaneleri tanımla
PIR = Pin(14, Pin.IN)
MQ2 = Pim(1, Pim.GİRİŞ)
buzzer = PWM(Pin(20, Pin.OUT))
redLed = Pin(7, Pin.OUT)
düğmesi = Pin(10, Pin.IN, Pin.PULL_DOWN)
# çıkış ve giriş pinlerini tanımlayın
etkinleştirildi = 0
gaz = 0
Doğruyken:
eğer düğme.değer() == 1:
etkinleştirildi = 1
gaz = 0
uyku(3)
redLed.value(1)
buzzer.duty_u16(0)
eğer MQ2.value() == 1 ise:
gaz = 1
etkinleştirilirse == 1:
PIR.value() == 1 ise:
buzzer.duty_u16(6000)
buzzer.freq(440)
uyku(0,2)
buzzer.freq(330)
uyku(0,1)
buzzer.freq(494)
uyku(0,15)
buzzer.freq(523)
uyku(0,3)
eğer gaz == 1 ise:
buzzer.duty_u16(6000)
buzzer.freq(330)
uyku(0,5)
redLed.value(1)
buzzer.freq(523)
uyku(0,5)
kırmızıLed.value(0)
# PIR hareket algıladığında veya MQ2 zehirli gaz algıladığında LED yanacak ve sesli uyarı duyulacaktır
,
PicoBricks'in Arduino C Kodları
geçersiz etkinleştirilmiş (){
digitalWrite(7,1);
while(!(digitalRead(14) == 1))
{
_döngü();
}
motion_detected();
}
void motion_detected (){
while(1) {
// zil sesi ayarları
ton(20,262,0,25*1000);
gecikme(0,25*1000);
ton(20,330,0,25*1000);
gecikme(0,25*1000);
ton(20,262,0,25*1000);
gecikme(0,25*1000);
ton(20,349,0,25*1000);
gecikme(0,25*1000);
// PIR bir hareket algıladığında zili çal
_döngü();
}
}
void _delay(float saniye) {
uzun bitişZamanı = millis() + saniye * 1000;
while(millis() < endTime) _loop();
}
geçersiz _loop() {
}
geçersiz döngü () {
_döngü();
}
geçersiz kurulum() {
pinMode(10,INPUT);
pinMode(1,INPUT);
pinMode(20,ÇIKIŞ);
pinMode(7,ÇIKIŞ);
pinMode(14,INPUT);
//giriş ve çıkış pinlerini tanımlıyoruz
while(1) {
if(digitalRead(10) == 1){
_gecikme(3);
aktif();
}
if(digitalRead(1) == 1){
while(!(digitalRead(10) == 1))
{
_döngü();
ton(20,349,0,5*1000);
gecikme(0,5*1000);
digitalWrite(7,1);
_delay(0,5);
ton(20,392,0,5*1000);
gecikme(0,5*1000);
digitalWrite(7,0);
_delay(0,5);
}
}
_döngü();
}
}
GitHub Proje Sayfası