- Komponen yang Dibutuhkan:
- Penjelasan Kerja:
- Penjelasan Sirkuit:
- Penjelasan Pemrograman:
- Desain Sirkuit dan PCB menggunakan EasyEDA:
- Menghitung dan Memesan Sampel secara online:
Gempa bumi adalah bencana alam yang tidak dapat diprediksi yang menyebabkan kerusakan pada kehidupan dan harta benda. Itu terjadi secara tiba-tiba dan kita tidak dapat menghentikannya tetapi kita dapat disiagakan darinya. Saat ini, banyak teknologi yang dapat digunakan untuk mendeteksi guncangan dan guncangan kecil, sehingga kita dapat berhati-hati sebelum terjadinya beberapa getaran besar di bumi. Di sini kami menggunakan Accelerometer ADXL335 untuk mendeteksi getaran sebelum gempa. Akselerometer ADXL335 sangat sensitif terhadap getar dan getaran bersama dengan ketiga sumbu. Di sini kami membangun Detektor Gempa Bumi berbasis Arduino menggunakan Accelerometer.
Kami di sini membangun detektor Gempa ini sebagai Arduino Shield pada PCB dan juga akan menampilkan Grafik Getaran di komputer menggunakan Pemrosesan.
Komponen yang Dibutuhkan:
- Arduino UNO
- Akselerometer ADXL335
- LCD 16x2
- Bel
- Transistor BC547
- Resistor 1k
- 10K POT
- LED
- Catu Daya 9v / 12v
- Berg tongkat pria / wanita
Akselerometer:
Pin Deskripsi accelerometer:
- Suplai Vcc 5 volt harus terhubung pada pin ini.
- X-OUT Pin ini memberikan keluaran Analog dalam arah x
- Y-OUT Pin ini memberikan Output Analog dalam arah y
- Z-OUT Pin ini memberikan Output Analog dalam arah z
- GND Ground
- ST Pin ini digunakan untuk mengatur sensitivitas sensor
Periksa juga proyek kami yang lain menggunakan Accelerometer:
- Game Ping Pong menggunakan Arduino
- Robot Kontrol Gerakan Tangan Berbasis Akselerometer.
- Sistem Peringatan Kecelakaan Kendaraan Berbasis Arduino menggunakan GPS, GSM dan Accelerometer
Penjelasan Kerja:
Cara kerja Detektor Gempa Bumi ini sederhana. Seperti yang kami sebutkan sebelumnya bahwa kami telah menggunakan Akselerometer untuk mendeteksi getaran gempa bumi di sepanjang salah satu dari tiga sumbu sehingga setiap kali getaran terjadi, akselerometer merasakan getaran itu dan mengubahnya menjadi nilai ADC yang setara. Kemudian nilai ADC ini dibaca oleh Arduino dan ditampilkan pada LCD 16x2. Kami juga telah menunjukkan nilai-nilai ini pada Grafik menggunakan Pemrosesan. Pelajari lebih lanjut tentang Akselerometer dengan melihat proyek Akselerometer kami yang lain di sini.
Pertama kita perlu mengkalibrasi Accelerometer dengan mengambil sampel getaran di sekitar setiap kali Arduino Powers. Kemudian kita perlu mengurangi nilai sampel tersebut dari pembacaan aktual untuk mendapatkan pembacaan yang sebenarnya. Kalibrasi ini diperlukan agar tidak menunjukkan peringatan sehubungan dengan getaran normal di sekitarnya. Setelah menemukan pembacaan nyata, Arduino membandingkan nilai-nilai ini dengan nilai maks dan min yang telah ditentukan sebelumnya. Jika Arduino menemukan ada perubahan nilai lebih dari atau kurang dari nilai yang telah ditentukan dari sumbu manapun di kedua arah (negatif dan positif) maka Arduino memicu bel dan menunjukkan status peringatan pada LCD 16x2 dan LED juga menyala. Kita dapat mengatur sensitivitas detektor gempa dengan mengubah nilai yang telah ditentukan dalam kode Arduino.
Video Demonstrasi dan Kode Arduino diberikan di akhir artikel.
Penjelasan Sirkuit:
Rangkaian Detektor Gempa Arduino Shield PCB inijuga sederhana. Dalam proyek ini, kami telah menggunakan Arduino yang membaca tegangan analog akselerometer dan mengubahnya menjadi nilai digital. Arduino juga menggerakkan buzzer, LED, LCD 16x2 dan menghitung serta membandingkan nilai dan mengambil tindakan yang sesuai. Bagian selanjutnya adalah Accelerometer yang mendeteksi getaran bumi dan menghasilkan tegangan analog dalam 3 sumbu (X, Y, dan Z). LCD digunakan untuk menunjukkan perubahan nilai sumbu X, Y dan Z dan juga menunjukkan pesan peringatan di atasnya. LCD ini dipasang ke Arduino dalam mode 4-bit. Pin RS, GND, dan EN terhubung langsung ke 9, GND dan 8 pin Arduino dan sisanya dari 4 pin data LCD yaitu D4, D5, D6 dan D7 langsung terhubung ke pin digital 7, 6, 5 dan 4 Arduino. Bel terhubung ke pin 12 Arduino melalui transistor NPN BC547. Pot 10k juga digunakan untuk mengontrol kecerahan LCD.
Penjelasan Pemrograman:
Dalam Earthquake Detector Arduino Shield ini, kami telah membuat dua kode: satu untuk Arduino untuk mendeteksi gempa dan satu lagi untuk Processing IDE untuk memplot getaran gempa di atas grafik di Komputer. Kita akan belajar tentang kedua kode tersebut satu per satu:
Kode Arduino:
Pertama-tama, kami mengkalibrasi akselerometer sehubungan dengan permukaan penempatannya, sehingga tidak akan menunjukkan peringatan sehubungan dengan getaran normal di sekitarnya. Dalam kalibrasi ini, kami mengambil beberapa sampel dan kemudian mengambil rata-rata dan menyimpannya dalam variabel.
untuk (int i = 0; i
Sekarang setiap kali Accelerometer melakukan pembacaan, kami akan mengurangi nilai sampel tersebut dari pembacaan sehingga dapat mengabaikan getaran di sekitar.
int nilai1 = analogRead (x); // membaca x out int value2 = analogRead (y); // membaca y out int value3 = analogRead (z); // membaca z out int xValue = xsample-value1; // menemukan perubahan dalam x int yValue = ysample-value2; // menemukan perubahan dalam y int zValue = zsample-value3; // menemukan perubahan dalam z / * yang menunjukkan perubahan nilai sumbu x, y dan z pada lcd * / lcd.setCursor (0,1); lcd.print (zValue); lcd.setCursor (6,1); lcd.print (yValue); lcd.setCursor (12,1); lcd.print (zValue); penundaan (100)
Kemudian Arduino membandingkan nilai yang dikalibrasi (dikurangi) dengan batas yang telah ditentukan. Dan lakukan tindakan yang sesuai. Jika nilainya lebih tinggi dari nilai yang telah ditentukan maka akan membunyikan bel dan memplot grafik getaran pada komputer menggunakan Processing.
/ * membandingkan perubahan dengan batas yang telah ditentukan * / if (xValue <minVal - xValue> maxVal - yValue <minVal - yValue> maxVal - zValue <minVal - zValue> maxVal) {if (buz == 0) start = milis (); // timer mulai buz = 1; // bendera buzzer / led diaktifkan} else if (buz == 1) // bendera buzzer diaktifkan kemudian peringatan gempa bumi {lcd.setCursor (0,0); lcd.print ("Peringatan Gempa"); if (millis ()> = start + buzTime) buz = 0; }
Kode pemrosesan:
Di bawah ini adalah Kode Pemrosesan terlampir, Anda dapat mengunduh kode dari tautan di bawah ini:
Kode Pemrosesan Detektor Gempa Bumi
Kami telah merancang grafik menggunakan Pemrosesan, untuk getaran gempa bumi, di mana kami menentukan ukuran jendela, unit, ukuran font, latar belakang, membaca dan menampilkan port serial, membuka port serial yang dipilih, dll.
// setel ukuran jendela: dan ukuran Font f6 = createFont ("Arial", 6, true); f8 = createFont ("Arial", 8, true); f10 = createFont ("Arial", 10, true); f12 = createFont ("Arial", 12, true); f24 = createFont ("Arial", 24, true); ukuran (1200, 700); // Cantumkan semua port serial yang tersedia println (Serial.list ()); myPort = Serial baru (ini, "COM43", 9600); println (myPort); myPort.bufferUntil ('\ n'); latar belakang (80)
Pada fungsi di bawah ini, kami telah menerima data dari port serial dan mengekstrak data yang diperlukan dan kemudian memetakannya dengan ukuran grafik.
// mengekstrak semua nilai yang diperlukan dari ketiga sumbu: int l1 = inString.indexOf ("x =") + 2; String temp1 = inString.substring (l1, l1 + 3); l1 = inString.indexOf ("y =") + 2; String temp2 = inString.substring (l1, l1 + 3); l1 = inString.indexOf ("z =") + 2; String temp3 = inString.substring (l1, l1 + 3); // memetakan nilai x, y dan z dengan dimensi grafik float inByte1 = float (temp1 + (char) 9); inByte1 = peta (inByte1, -80,80, 0, tinggi-80); float inByte2 = float (temp2 + (char) 9); inByte2 = peta (inByte2, -80,80, 0, tinggi-80); float inByte3 = float (temp3 + (char) 9); inByte3 = peta (inByte3, -80,80, 0, tinggi-80); float x = map (xPos, 0,1120,40, width-40);
Setelah ini, kita telah memplot ruang unit, batas maks dan min, nilai sumbu x, y dan z.
// merencanakan jendela grafik, satuan strokeWeight (2); pukulan (175); Garis (0,0,0,100); textFont (f24); isi (0,00,255); textAlign (KANAN); xmargin ("Grafik Gempa Bumi Dengan Sirkuit Digest", 200.100); isi (100); strokeWeight (100); baris (1050,80,1200,80);………………
Setelah ini kita plot nilai di atas grafik dengan menggunakan 3 warna berbeda seperti Biru untuk nilai sumbu x, warna hijau untuk sumbu y dan z diwakili oleh warna merah.
stroke (0,0,255); if (y1 == 0) y1 = height-inByte1-shift; garis (x, y1, x + 2, height-inByte1-shift); y1 = tinggi-inByte1-shift; pukulan (0,255,0); jika (y2 == 0) y2 = height-inByte2-shift; garis (x, y2, x + 2, height-inByte2-shift); y2 = ketinggian-inByte2-shift; pukulan (255,0,0); jika (y2 == 0) y3 = height-inByte3-shift; garis (x, y3, x + 2, height-inByte3-shift); y3 = height-inByte3-shift;
Pelajari juga lebih lanjut tentang pemrosesan dengan melalui proyek Pemrosesan kami yang lain.
Desain Sirkuit dan PCB menggunakan EasyEDA:
EasyEDA tidak hanya solusi satu atap untuk pengambilan skema, simulasi sirkuit dan desain PCB, mereka juga menawarkan layanan Sumber Prototipe dan Komponen PCB berbiaya rendah. Mereka baru-baru ini meluncurkan layanan sumber komponen di mana mereka memiliki stok besar komponen elektronik dan pengguna dapat memesan komponen yang diperlukan bersama dengan pesanan PCB.
Saat mendesain sirkuit dan PCB, Anda juga dapat membuat desain sirkuit dan PCB Anda menjadi publik sehingga pengguna lain dapat menyalin atau mengeditnya dan dapat memanfaatkannya, kami juga telah membuat seluruh layout Sirkuit dan PCB kami menjadi publik untuk Pelindung Indikator Gempa Bumi ini untuk Arduino UNO, periksa tautan di bawah ini:
easyeda.com/circuitdigest/EarthQuake_Detector-380c29e583b14de8b407d06ab0bbf70f
Di bawah ini adalah Snapshot dari Top layer layout PCB dari EasyEDA, Anda dapat melihat Layer (Top, Bottom, Topsilk, bottomsilk dll) dari PCB dengan memilih layer dari Window 'Layers'.
Anda juga dapat melihat tampilan Foto PCB menggunakan EasyEDA:
Menghitung dan Memesan Sampel secara online:
Setelah menyelesaikan desain PCB, Anda dapat mengklik ikon Output fabrikasi , yang akan membawa Anda ke halaman pemesanan PCB. Di sini Anda dapat melihat PCB Anda di Gerber Viewer atau mengunduh file Gerber dari PCB Anda. Disini anda bisa memilih jumlah PCB yang ingin anda pesan, berapa lapisan tembaga yang anda butuhkan, ketebalan PCB, berat tembaga, bahkan warna PCB. Setelah Anda memilih semua opsi, klik "Simpan ke Keranjang" dan selesaikan pesanan Anda. Baru-baru ini mereka telah menurunkan tarif PCB mereka secara signifikan dan sekarang Anda dapat memesan 10 pcs PCB 2-lapis dengan ukuran 10cm x 10cm hanya dengan $ 2.
Berikut adalah PCB yang Saya Dapatkan dari EasyEDA:
Di bawah ini adalah gambar - gambar Shield akhir setelah menyolder komponen pada PCB: