Arduino Project: Earthquake Sensor

Rifqi Naufal Abdjul
4 min readApr 9, 2023

--

Ilustrasi gempa bumi (sumber: www.istockphoto.com)

Gempa adalah fenomena alam yang sering terjadi di Indonesia. Gempa memiliki potensi bahaya yang sangat tinggi, seperti kerusakan bangunan dan hilangnya nyawa manusia. Oleh karena itu, penting untuk memiliki sensor gempa yang dapat memberikan peringatan dini jika gempa terjadi.

Dalam artikel ini, kita akan membahas cara membuat sensor gempa dengan menggunakan Arduino dan sensor tilt dan vibrate. Sensor tilt akan digunakan untuk mendeteksi perubahan sudut dan sensor vibrate akan digunakan untuk mendeteksi getaran.

Persiapan

Bahan-bahan yang dibutuhkan:

  1. Arduino Uno
  2. Breadboard
  3. 1 Buah Resistor 10K Ohm
  4. 1 Buah Push Button
  5. 1 Buah Vibration Sensor
  6. 1 Buah Tilt Sensor
  7. Jumper Wires
  8. 1 Buah Buzzer

Sebelum memulai proyek, pastikan bahwa Arduino IDE telah diunduh dan diinstal di komputer Anda.

Rangkaian

Secara singkat, berikut adalah langkah-langkah membuat earthquake sensor dengan Arduino:

  1. Siapkan breadboard dan letakkan Arduino Uno di atasnya.
  2. Sambungkan resistor 10K ohm ke pin 3 pada Arduino.
  3. Sambungkan push button ke pin 3 pada breadboard dan pin ground pada Arduino.
  4. Sambungkan vibration sensor ke pin analog 0 pada Arduino.
  5. Sambungkan tilt sensor ke pin analog 1 pada Arduino.
  6. Sambungkan buzzer ke pin 6 pada Arduino.
  7. Sambungkan kabel jumper dari pin 6 pada buzzer ke breadboard.
  8. Sambungkan kabel jumper dari pin ground pada buzzer ke breadboard.
  9. Sambungkan kabel jumper dari pin ground pada Arduino ke breadboard.
  10. Sambungkan kabel jumper dari pin 5V pada Arduino ke breadboard.
  11. Sambungkan kabel jumper dari pin 3 pada Arduino ke breadboard.
  12. Sambungkan kabel jumper dari pin analog 0 pada Arduino ke breadboard.
  13. Sambungkan kabel jumper dari pin analog 1 pada Arduino ke breadboard.
  14. Buatlah program pada Arduino IDE dengan kode yang telah disediakan.
  15. Upload program ke board Arduino Uno.
  16. Pasang sensor pada posisi yang diinginkan untuk mendeteksi gempa bumi.
  17. Atur sensitivitas deteksi melalui input serial pada Arduino.

Jika berhasil melakukan seluruh langkah-langkah tersebut, kalian akan mendapatkan hasil seperti gambar berikut.

Rangkaian Akhir Arduino

Program

Setelah perangkat terpasang, buka Arduino IDE dan buat sketsa baru. Kemudian, masukkan kode program di bawah dan unggah ke Arduino Uno.

int vib_pin = 0;
int button_pin = 3;
int buzzer_pin = 6; // 6
int tilt_pin = 1;
bool is_trigger = false;

int vib_threshold = 500, tilt_threshold = 900;
void setup() {
Serial.begin(9600);
Serial.setTimeout(10);
pinMode(vib_pin, INPUT);
pinMode(tilt_pin, INPUT);
pinMode(button_pin, INPUT);
pinMode(buzzer_pin, OUTPUT);
}

void executeCommand(const String& s) {
int spaceIdx = s.indexOf(" ");
String command = s.substring(0, spaceIdx);
if (command.equals("vibrate")) {
Serial.print("Setting vibration threshold to ");
vib_threshold = s.substring(spaceIdx).toInt();
Serial.println(vib_threshold);
} else if (command.equals("tilt")) {
Serial.print("Setting tilt threshold to ");
tilt_threshold = s.substring(spaceIdx).toInt();
Serial.println(tilt_threshold);
} else if (spaceIdx != -1) {
Serial.println("Undefined command!");
}
}

void loop() {
String x = Serial.readString();
executeCommand(x);
if (is_trigger) {
int button_val = digitalRead(button_pin);
Serial.print("Button: ");
Serial.print(button_val);
Serial.println();
if (button_val == 1) {
is_trigger = false;
digitalWrite(buzzer_pin, LOW);
delay(3000);
}
} else {
int vib_val = analogRead(vib_pin);
int tilt_val = analogRead(tilt_pin);
Serial.print("Vib: ");
Serial.print(vib_val);
Serial.print(" | Tilt: ");
Serial.print(tilt_val);
Serial.println();
if (vib_val > vib_threshold && tilt_val > tilt_threshold) {
digitalWrite(buzzer_pin, HIGH);
is_trigger = true;
} else
digitalWrite(buzzer_pin, LOW);
}
}

Pada kode program di atas, kita menggunakan tiga sensor: sensor vibrate, sensor tilt, dan push button. Kita juga menggunakan buzzer untuk memberikan peringatan jika gempa terdeteksi.

Dalam loop() function, kita membaca nilai dari sensor vibrate dan sensor tilt. Jika nilai yang dibaca dari kedua sensor melebihi batas tertentu (vib_threshold dan tilt_threshold), maka buzzer akan berbunyi dan push button akan digunakan untuk mematikan buzzer.

Kita juga dapat mengatur sensitivitas sensor vibrate dan sensor tilt dengan mengirimkan perintah melalui Serial Monitor. Dalam executeCommand() function, kita membaca perintah yang dikirimkan melalui Serial Monitor dan mengatur nilai vib_threshold atau tilt_threshold sesuai dengan perintah yang diberikan.

Sekarang, sensor gempa dengan menggunakan sensor tilt dan vibrate sudah siap digunakan. Anda dapat menguji perangkat dengan menggerakkan sensor tilt atau sensor vibrate untuk melihat apakah buzzer berbunyi atau tidak.

Tampilan Arduino IDE

Video

Berikut adalah video terkait projek yang dibuat,

Kesimpulan

Dalam artikel ini, kita telah membahas cara membuat sensor gempa dengan menggunakan Arduino dan sensor tilt dan vibrate. Proyek ini dapat membantu mengurangi dampak buruk gempa dengan memberikan peringatan dini jika terjadi gempa. Selain itu, proyek ini juga dapat membantu Anda memahami cara kerja sensor tilt dan vibrate serta cara menghubungkan sensor tersebut ke Arduino Uno.

--

--