MPU6050 6 Eksen İvme ve Gyro Sensörü Kullanarak Deprem Alarmı Yapımı.(GitHub Linkli - Arduino #19)

 Deprem alarmı yapımı ciddi bir konudur ve güvenlik açısından çok hassas bir uygulamadır. Bu nedenle, bu tür bir projeyi gerçekleştirmeden önce, ilgili alanlarda uzmanlık gerektiğini ve geliştirilen sistemlerin güvenilir olması için detaylı testlerin yapılması gerektiğini unutmayın. Ayrıca, bu tür projeleri geliştirirken bölgesel güvenlik standartlarına uymak önemlidir. Buraya tıklayarak gitHub sayfasına ulaşabilirsiniz.

 MPU6050 sensörü, 6 eksenli ivme ve gyro verilerini ölçebilen bir sensördür ve potansiyel olarak deprem gibi hareketleri algılamak için kullanılabilir. Ancak, gerçek bir deprem algılama sistemi tasarlamak oldukça karmaşık bir süreçtir ve sadece bir sensör kullanmak yeterli değildir.

 İşte basit bir şekilde MPU6050 ile ivme verisini kullanarak bir deprem alarmı yapımına yönelik temel adımlar:

Gerekli Malzemeler: 

  • MPU6050 sensörü 
  • Arduino
  • Breadboard
  • Jumper kabloları
  • Dirnç
  • Led
  • Aktif Buzzer
 
Adım 1: Devre Tasarımı 
 MPU6050 sensörünü Arduino'ya bağlayın. MPU6050'in VCC pinini 5V a, GND pinini GND ye, SCL pinini arduino üzerindeki SCL pinine, SDA pinini de arduino üzerindeki SDA pinine. Ledin uzun bacağını 220 veya 330 direce, direncin diğer ucunu ise 11. pine. Aktif buzzerın uzun bacağına 220 veya 330 dirence, direncin diğer ucunu ise 10. pine bağlanılmalıdır.






Adım 2: Arduino Kütüphanesini Ekleyin 
 Arduino IDE'de MPU6050 sensörünü okumak için kullanılacak olan MPU6050 kütüphanesini ekleyin. Bu kütüphaneyi Arduino IDE Kütüphane Yöneticisi'nden indirebilirsiniz.

Adım 3: Arduino Kodunu Yazın 
 Aşağıda, MPU6050 sensöründen alınan ivme verilerini kullanarak basit bir deprem alarmı yapmak için kullanılabilecek temel bir Arduino kodu örneği bulunmaktadır. Bu kod, belirli bir ivme eşiğini aştığında bir alarm sinyali üretecektir.


#include <MPU6050.h>

#include <Wire.h>
MPU6050 MPU;
int GyroX , GyroY , GyroZ;
int buzzer = 10;
void setup() {
  pinMode(11,OUTPUT);
  Serial.begin(9600);
  Wire.begin();
  MPU.initialize();
}
void loop() {
  MPU.getRotation(&GyroX, &GyroY, &GyroZ);
  if(GyroX< -2000 ||GyroX> 1000 || GyroY>1000 || GyroY< -1000 || GyroZ >1000 || GyroZ < -1000 ) {
  tone(buzzer,1000);
  digitalWrite(11,HIGH);
  delay(1000);
  } else {
  noTone(buzzer);
  digitalWrite(11,LOW);
  }
}




                                                                                                          

Yorum Gönder

0 Yorumlar