- Komponen yang Diperlukan:
- Penjelasan Kerja:
- Penjelasan Litar:
- Penjelasan Pengaturcaraan:
- Reka bentuk litar dan PCB menggunakan EasyEDA:
- Mengira dan Memesan Sampel dalam talian:
Gempa bumi adalah bencana alam yang tidak dapat diramalkan yang menyebabkan kerosakan pada nyawa dan harta benda. Ia berlaku secara tiba-tiba dan kita tidak dapat menghentikannya tetapi kita boleh waspada dengannya. Pada zaman sekarang, ada banyak teknologi yang dapat digunakan untuk mengesan gegaran dan ketukan kecil, sehingga kita dapat melakukan pencegahan sebelum beberapa getaran besar di bumi. Di sini kita menggunakan Accelerometer ADXL335 untuk mengesan getaran sebelum gempa. Accelerometer ADXL335 sangat sensitif terhadap gegaran dan getaran bersama dengan ketiga-tiga paksi. Di sini kita sedang membina Pengesan Gempa berdasarkan Arduino menggunakan Accelerometer.
Kami di sini membina alat pengesan Gempa Bumi ini sebagai Arduino Shield pada PCB dan juga akan menunjukkan Graf Getaran pada komputer menggunakan Pemprosesan.
Komponen yang Diperlukan:
- Arduino UNO
- Accelerometer ADXL335
- LCD 16x2
- Buzzer
- Transistor BC547
- Perintang 1k
- 10K POT
- LED
- Bekalan Kuasa 9v / 12v
- Berg melekat lelaki / perempuan
Accelerometer:
Huraian Pin bagi pecutan:
- Bekalan Vcc 5 volt harus disambungkan pada pin ini.
- X-OUT Pin ini memberikan output Analog dalam arah x
- Y-OUT Pin ini memberikan Output Analog dalam arah y
- Z-OUT Pin ini memberikan Output Analog dalam arah z
- Tanah GND
- ST Pin ini digunakan untuk mengatur kepekaan sensor
Periksa juga projek kami yang lain menggunakan Accelerometer:
- Permainan Ping Pong menggunakan Arduino
- Robot Dikendalikan Gerak Tangan Berasaskan Accelerometer.
- Sistem Amaran Kemalangan Kenderaan Berasaskan Arduino menggunakan GPS, GSM dan Accelerometer
Penjelasan Kerja:
Cara kerja Pengesan Gempa ini adalah mudah. Seperti yang telah kami sebutkan sebelumnya, kami telah menggunakan Accelerometer untuk mengesan getaran gempa di sepanjang salah satu dari tiga paksi sehingga setiap kali getaran terjadi, accelerometer merasakan getaran dan mengubahnya menjadi nilai ADC yang setara. Kemudian nilai-nilai ADC ini dibaca oleh Arduino dan ditunjukkan di atas LCD 16x2. Kami juga telah menunjukkan nilai-nilai ini pada Grafik menggunakan Pemprosesan. Ketahui lebih lanjut mengenai Accelerometer dengan melalui projek Accelerometer kami yang lain di sini.
Mula-mula kita perlu mengkalibrasi Accelerometer dengan mengambil contoh getaran sekitar setiap kali Arduino Powers naik. Maka kita perlu mengurangkan nilai sampel tersebut dari bacaan sebenar untuk mendapatkan bacaan sebenar. Penentukuran ini diperlukan agar tidak menunjukkan amaran berkenaan dengan getaran sekitarnya yang normal. Setelah menemui bacaan sebenar, Arduino membandingkan nilai ini dengan nilai maksimum dan min yang telah ditetapkan. Sekiranya Arduino mendapati ada perubahan nilai lebih atau kurang maka nilai yang ditentukan dari paksi mana-mana arah (negatif dan positif) maka Arduino memicu bel dan menunjukkan status amaran pada LCD 16x2 dan LED juga dihidupkan juga. Kita dapat menyesuaikan kepekaan pengesan Gempa dengan mengubah nilai yang telah ditentukan dalam kod Arduino.
Video Demonstrasi dan Kod Arduino diberikan pada akhir artikel.
Penjelasan Litar:
Litar pengesan Gempa Arduino Shield PCB inijuga sederhana. Dalam projek ini, kami telah menggunakan Arduino yang membaca voltan analog pecutan dan mengubahnya menjadi nilai digital. Arduino juga menggerakkan buzzer, LED, 16x2 LCD dan mengira dan membandingkan nilai dan mengambil tindakan yang sewajarnya. Bahagian seterusnya adalah Accelerometer yang mengesan getaran bumi dan menghasilkan voltan analog dalam 3 paksi (X, Y, dan Z). LCD digunakan untuk menunjukkan perubahan nilai paksi X, Y dan Z dan juga menunjukkan mesej amaran di atasnya. LCD ini dipasang ke Arduino dalam mod 4-bit. Pin RS, GND, dan EN disambungkan secara langsung ke 9, GND dan 8 pin Arduino dan selebihnya 4 pin data LCD iaitu D4, D5, D6 dan D7 disambungkan secara langsung ke pin digital 7, 6, 5 dan 4 Arduino. Bel disambungkan ke pin 12 Arduino melalui transistor NPN BC547. Pot 10k juga digunakan untuk mengawal kecerahan LCD.
Penjelasan Pengaturcaraan:
Dalam Arduino Shield Detector Gempa ini, kami telah membuat dua kod: satu untuk Arduino untuk mengesan gempa bumi dan satu lagi untuk Processing IDE untuk merancang getaran gempa di atas grafik pada Komputer. Kami akan belajar mengenai kedua-dua kod tersebut satu persatu:
Kod Arduino:
Mula-mula, kami mengkalibrasi akselerometer berkenaan dengan permukaan penempatannya, sehingga tidak akan menunjukkan amaran berkenaan dengan getaran sekitarnya yang normal. Dalam penentukuran ini, kami mengambil beberapa sampel dan kemudian mengambil purata dan menyimpannya dalam pemboleh ubah.
untuk (int i = 0; i
Sekarang setiap kali Accelerometer melakukan pembacaan, kita akan mengurangkan nilai sampel dari pembacaan sehingga dapat mengabaikan getaran sekeliling.
nilai int1 = analogRead (x); // membaca x keluar int value2 = analogRead (y); // membaca y keluar int value3 = analogRead (z); // membaca z keluar int xValue = xsample-value1; // mencari perubahan dalam x int yValue = ysample-value2; // mencari perubahan dalam y int zValue = zsample-value3; // mencari perubahan dalam z / * perubahan perubahan nilai paksi x, y dan z melebihi lcd * / lcd.setCursor (0,1); lcd.print (zValue); lcd.setCursor (6,1); lcd.print (yValue); lcd.setCursor (12,1); lcd.print (zValue); kelewatan (100)
Kemudian Arduino membandingkan nilai yang dikalibrasi (dikurangkan) dengan had yang telah ditentukan. Dan ambil tindakan sewajarnya. Sekiranya nilainya lebih tinggi daripada nilai yang telah ditentukan maka ia akan berbunyi buzzer dan memplot grafik getaran pada komputer menggunakan Pemprosesan.
/ * membandingkan perubahan dengan had yang telah ditentukan * / if (xValue <minVal - xValue> maxVal - yValue <minVal - yValue> maxVal - zValue <minVal - zValue> maxVal) {if (buz == 0) mula = milis (); // pemasa mula buz = 1; // bendera buzzer / led diaktifkan} lain jika (buz == 1) // bendera buzzer diaktifkan kemudian memberi amaran kepada gempa bumi {lcd.setCursor (0,0); lcd.print ("Peringatan Gempa Bumi"); jika (milis ()> = mula + buzTime) buz = 0; }
Memproses kod:
Di bawah ini dilampirkan Kod Pemprosesan, anda boleh memuat turun kod dari pautan di bawah:
Kod Pemprosesan Pengesan Gempa Bumi
Kami telah merancang grafik menggunakan Pemrosesan, untuk getaran gempa bumi, di mana kami menentukan ukuran tetingkap, unit, ukuran fon, latar belakang, membaca dan memaparkan port bersiri, membuka port bersiri terpilih dll.
// tetapkan ukuran tetingkap: dan saiz fon f6 = createFont ("Arial", 6, true); f8 = createFont ("Arial", 8, benar); f10 = createFont ("Arial", 10, benar); f12 = createFont ("Arial", 12, benar); f24 = createFont ("Arial", 24, benar); saiz (1200, 700); // Senaraikan semua port bersiri yang tersedia println (Serial.list ()); myPort = Serial baru (ini, "COM43", 9600); println (myPort); myPort.bufferUntil ('\ n'); latar belakang (80)
Dalam fungsi di bawah, kami telah menerima data dari port bersiri dan mengekstrak data yang diperlukan dan kemudian memetakannya dengan ukuran grafik.
// mengekstrak semua nilai yang diperlukan dari ketiga-tiga paksi: 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; Rentetan temp3 = inString.substring (l1, l1 + 3); // pemetaan nilai x, y dan z dengan dimensi graf terapung dalamByte1 = terapung (temp1 + (char) 9); inByte1 = peta (dalamByte1, -80,80, 0, tinggi-80); float inByte2 = float (temp2 + (char) 9); inByte2 = peta (dalamByte2, -80,80, 0, tinggi-80); terapung dalamByte3 = terapung (temp3 + (char) 9); inByte3 = peta (dalamByte3, -80,80, 0, tinggi-80); apungan x = peta (xPos, 0,1120,40, lebar-40);
Selepas ini, kami telah merancang ruang unit, had maksimum dan min, nilai paksi x, y dan z.
// merancang tetingkap grafik, pukulan unit Berat (2); strok (175); Garisan (0,0,0,100); teksFont (f24); isi (0,00,255); textAlign (KANAN); xmargin ("EarthQuake Graph By Circuit Digest", 200,100); isi (100); berat badan (100); garisan (1050,80,1200,80);………………
Selepas ini kami memetakan nilai di atas grafik dengan menggunakan 3 warna yang berbeza seperti Biru untuk nilai paksi-x, warna hijau untuk paksi y dan z diwakili oleh warna merah.
strok (0,0,255); jika (y1 == 0) y1 = ketinggian-dalamByte1-shift; garis (x, y1, x + 2, tinggi-dalamByte1-shift); y1 = ketinggian-dalamByte1-shift; strok (0,255,0); jika (y2 == 0) y2 = ketinggian-dalamByte2-shift; garis (x, y2, x + 2, tinggi-dalamByte2-shift); y2 = ketinggian-dalamByte2-shift; strok (255,0,0); jika (y2 == 0) y3 = ketinggian-dalamByte3-shift; garis (x, y3, x + 2, tinggi-dalamByte3-shift); y3 = ketinggian-dalamByte3-shift;
Ketahui lebih lanjut mengenai pemprosesan dengan melalui projek Pemprosesan kami yang lain.
Reka bentuk litar dan PCB menggunakan EasyEDA:
EasyEDA bukan hanya penyelesaian sehenti untuk tangkapan skematik, simulasi litar dan reka bentuk PCB, mereka juga menawarkan perkhidmatan Prototaip dan Sumber Komponen PCB rendah. Mereka baru-baru ini melancarkan perkhidmatan sumber komponen mereka di mana mereka mempunyai stok komponen elektronik yang banyak dan pengguna dapat memesan komponen yang diperlukan bersama dengan pesanan PCB.
Semasa merancang litar dan PCB anda, anda juga dapat menjadikan reka bentuk litar dan PCB anda menjadi umum sehingga pengguna lain dapat menyalin atau menyuntingnya dan dapat memanfaatkannya, kami juga telah menjadikan keseluruhan susunan Litar dan PCB kami untuk umum untuk Perisai Petunjuk Gempa ini untuk Arduino UNO, periksa pautan di bawah:
easyeda.com/circuitdigest/EarthQuake_Detector-380c29e583b14de8b407d06ab0bbf70f
Di bawah ini adalah Snapshot lapisan Atas susun atur PCB dari EasyEDA, anda dapat melihat mana-mana Lapisan (Atas, Bawah, Topsilk, dasar bawah dll) dari PCB dengan memilih lapisan dari Tingkap 'Lapisan'.
Anda juga dapat melihat paparan Foto PCB menggunakan EasyEDA:
Mengira dan Memesan Sampel dalam talian:
Setelah melengkapkan reka bentuk PCB, anda dapat mengklik ikon keluaran Fabrikasi , yang akan membawa anda ke halaman pesanan PCB. Di sini anda dapat melihat PCB anda di Gerber Viewer atau memuat turun fail Gerber dari PCB anda. Di sini anda dapat memilih jumlah PCB yang anda ingin pesan, berapa banyak lapisan tembaga yang anda perlukan, ketebalan PCB, berat tembaga, dan juga warna PCB. Setelah anda memilih semua pilihan, klik "Simpan ke Troli" dan selesaikan pesanan anda. Baru-baru ini mereka telah menurunkan kadar PCB mereka dengan ketara dan sekarang anda boleh memesan 10 lapisan PCB 2 lapisan dengan ukuran 10cm x 10cm hanya dengan harga $ 2.
Inilah PCB yang Saya Mendapat dari EasyEDA:
Berikut adalah gambar Perisai terakhir setelah menyolder komponen pada PCB: