Daftar Isi:
- Langkah 1: Kabel Los Como Colocar
- Langkah 2: Codigo Arduino
- Langkah 3: Codigo Python
- Langkah 4: Detalles Final
Video: Alerta Sísmica Temprana.: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Penjelasan singkat
Durante un sismo se producer 3 tipos de ondas la primaria o P que es la importante para este proyecto, viaja entre 8 y 13 km/s y es registrada por los equipos sismógrafos.
Existen sensores caseros, que nos dan una alerta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda.
El presente proyecto busca crear un sistema de alerta sísmica temprana en twitter.
Bahan yang bermanfaat
- 1 Arudino UNO (Biaya sekitar $25usd)
- 1 Arduino Shield Ehternet (Costo Aprox $24 usd)
- 1 Alarm Gempa (Biaya Sekitar $30 USD)
- 1 Placa de Circuito impresa para prototipos (Biaya Sekitar $0,60 usd) atau tanpa protoboard
- 3 Kabel Jumper de diferentes colores (Costo Aprox. $0.30 usd)
- 1 Conector de batería de 9V (Costo Aprox. $0,30 usd)
- Cautin y soldadura
Langkah 1: Kabel Los Como Colocar
Untuk mengetahui lebih lanjut tentang sensor "Quake Alarm", tersedia untuk digunakan di dalam baterai 9v del mismo.
El Arduino le dará 5v al sensor con los que va a poder funcionar bien.
El "Quake Alarm" tiene un parlante para emitir una alerta si detecta ondas P, si este parlante suena el voltaje baja, por lo que usaremos el Pin A0 untuk monitorear un cambio en el voltaje.
En el siguiente orden se deben poner los kabel:
5v - A0 - Kabel negro del conector de batería
Primero el cable de 5V que va a alimentar el sensor, luego el A0 que va a monitorear el voltaje y finalmente el Kabel negro del conector.
En otra fila conectamos el cable Negro que viene el Arduino y el cable rojo que viene del conector.
una vez los tengamos en este orden soldamos para que la electricidad pase entre ellos.
Penting untuk menyambungkan dan menyambungkan sensor 9V, kabel yang terhubung ke jaringan yang lebih baik, dan banyak lagi.
Langkah 2: Codigo Arduino
En el Arduino vamos a crear un código que nos va a permitir 2 cosas:
- Leer el voltaje para buscar cambios
- Si hay una variación en el voltaje hacer una llamada a un servicio web
Vamos a explicar un poco el código, si no quieres entenderlo a profundidad luego de la explicación esta el código completo y donde descargarlo.
Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#termasuk
#termasuk
Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar
#define QUAKEALARM A0
Seguido definimos las variable que nos van a ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
perbedaan int statis;
int qaVal = 0;int qaPreVal = 0;
int ambang = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
panjang
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ahora crear las variabel para el uso del ethernet, donde definimos el MAC de la tarjeta de red, la IP que usará esta tarjeta y la clase de tipo EthernetClient para poder hacer uso de la tarjeta de red. También vamos a definir la IP del servidor que recibirá lo datos.
byte mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip = { 192, 168, 15, 120 }; // Arah IP del Arduino
byte
server = { 192, 168, 15, 111 }; // Arah IP del server
klien EthernetClient;
Ya con las variabel, librerías y clases listas podemos iniciar el programa que tendrá nuestro Arduino:
- Incializamos el serial a 57600
- Luego le decimos al arduino que el pin A0(GEMPA konstan) lo vamos a usar como un pin de entrada.
- Finalmente iniciamos la tarjeta de red.
batalkan pengaturan () { Serial.begin(57600); pinMode(GEMPA ALARM, INPUT);
Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
}
Y para terminar el programa, ponemos en una función cíclica que revisi el voltaje si este es inferior a 5v que haga una llamada al server y por medio de GET le manda el valor 1 a la variabel "sismo". también filtra para que exista un lapso de tiempo de 5 segundos entre un envió de información y otro.
lingkaran kosong () {
qaVal = analogRead(QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia > 0) dan (diferencia >= threshold) dan ((millis() - ultimaConexion) > intervaloTiempo)) {
kontador = kontador + 1;
Serial.print("Sismo! ");
Serial.println(kontador);
ultimaConexion = milis();
if (klien.koneksi(server, 5002)>0) {
Serial.println("Konekto");
client.print("DAPATKAN /?sismo=1"); // Enviamos kehilangan data dari GET
client.println("HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
}
klien.berhenti();
klien.flush(); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Codigo lengkap:
#termasuk
#termasuk
// Alarm Gempa
#define QUAKEALARM A0
// Variabel que mantiene el valor anterior del QuakeAlarm
perbedaan int statis;
int qaVal = 0;
int qaPreVal = 0; int ambang = 10; int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Variabel Ethernet
//Se memperkenalkan koresponden los valores dengan MAC, IP lokal, Puerta de Enlace y Máscara de Red
byte mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip = { 192, 168, 8, 20 }; // Arah IP del Arduino byte server = { 192, 168, 8, 11 }; // Arah IP del server klien EthernetClient; batalkan pengaturan () { Serial.begin(57600); pinMode(GEMPA ALARM, INPUT); // ethernet Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield }
lingkaran kosong () {
qaVal = analogRead(QUAKEALARM);
diferencia = qaPreVal - qaVal;
if ((diferencia > 0) dan (diferencia >= threshold) dan ((millis() - ultimaConexion) > intervaloTiempo)) {
kontador = kontador + 1; Serial.print("Sismo! "); Serial.println(kontador); ultimaConexion = milis(); if (client.connect(server, 5002)>0) { Serial.println("Conecto"); client.print("DAPATKAN /?kunci=1122334455&sismo=1"); // Enviamos los datos atau GET client.println(" HTTP/1.0"); client.println("User-Agent: Arduino 1.0"); } klien.stop(); klien.flush(); } qaPreVal = qaVal; }
Langkah 3: Codigo Python
Este código básicamente crea un servicio web en el puerto 5002 del servidor (yo lo uso en un Raspberry Pi en mi casa), que recibe el aviso del Arduino untuk luego enviar un Tuit.
Lo hice de esta manera para poder implement estadísticas y en un futuro poderlo usar en algún service de notificaciones PUSH para móviles.
Para que pueda tuitear deben crear en apps.twitter.com una aplicación y obtener los datos Kunci Konsumen (Kunci API), Rahasia Konsumen (Rahasia API), Token Akses y Rahasia Token Akses. y en la función tweet cambiar las xxxxx por sus respectivos valores.
Pueden descargar el código completo en github.com/bettocr/alertasismo atau copiarlo a continuación:
#!/usr/bin/python2.7
# -*- koding: utf-8 -*-
permintaan impor, urllib2, urllib, tweepy
dari labu impor Labu, permintaan
dari StringIO impor StringIO
dari datetime import datetime, timedelta
def tweet (mensaje):
CONSUMER_KEY = 'xxxxxxx'
CONSUMER_SECRET = 'xxxxxxxx'
ACCESS_KEY = 'xxxxxxxxx'
ACCESS_SECRET = 'xxxxxxxxx'
auth = tweepy. OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy. API(auth, parser=tweepy.parsers. JSONParser())
tweetid = api.update_status(status=mensaje)
aplikasi = Labu(_nama_)
@app.route("/", metode=['GET'])
def sismo():
mencoba:
sismo = permintaan.args.get("sismo")
jika (str(sismo) == "1"):
t = tanggal waktu.sekarang()
hora = t.strftime("%-I:%M %p")
tweet("[En Pruebas] Kemungkinan sismo en los próximos segundos ("+hora+")")
kecuali IOError sebagai err: print 'Fallo'
lulus
kecuali Pengecualian sebagai e:
print "Pengecualian "+str(e)
lulus
kembali "Oke"
Langkah 4: Detalles Final
Como Pasos adicionales para darle una mejor imagen hice lo siguiente
- Corte la Placa de Circuito justo para que entrara en el espacio destinado a la batería.
- Con un mototool hice un hueco en la tapa en la esquina superior derecha para que los kabel entraran.
- Con bahan termo masuk akal, puse los 3 kabel que van al Arduino para que parezca un solo kabel.
- Y untuk poner el arduino en la pared, hice la impresión 3D de este mount
Pueden seguir el bot que hice con estos pasos en @SismoTico
Direkomendasikan:
Pemegang Gambar Dengan Speaker Internal: 7 Langkah (dengan Gambar)
Picture Holder Dengan Built-in Speaker: Ini adalah proyek yang bagus untuk dilakukan selama akhir pekan, jika Anda ingin membuat speaker Anda sendiri yang dapat menampung gambar/kartu pos atau bahkan daftar tugas Anda. Sebagai bagian dari pembangunan kita akan menggunakan Raspberry Pi Zero W sebagai jantung dari proyek, dan sebuah
Howto: Instalasi Raspberry PI 4 Headless (VNC) Dengan Rpi-imager dan Gambar: 7 Langkah (dengan Gambar)
Cara: Memasang Raspberry PI 4 Headless (VNC) Dengan Rpi-imager dan Gambar: Saya berencana untuk menggunakan Rapsberry PI ini dalam banyak proyek menyenangkan di blog saya. Jangan ragu untuk memeriksanya. Saya ingin kembali menggunakan Raspberry PI saya tetapi saya tidak memiliki Keyboard atau Mouse di lokasi baru saya. Sudah lama sejak saya menyiapkan Raspberry
Pengenalan Gambar Dengan Papan K210 dan Arduino IDE/Micropython: 6 Langkah (dengan Gambar)
Pengenalan Gambar Dengan Papan K210 dan Arduino IDE/Micropython: Saya sudah menulis satu artikel tentang cara menjalankan demo OpenMV di Sipeed Maix Bit dan juga membuat video demo deteksi objek dengan papan ini. Salah satu dari banyak pertanyaan yang diajukan orang adalah - bagaimana saya bisa mengenali objek yang jaringan sarafnya tidak
Luncurkan Slideshow Gambar Liburan Anda Dengan Sentuhan Ajaib !: 9 Langkah (dengan Gambar)
Luncurkan Slideshow Gambar Liburan Anda Dengan Sentuhan Ajaib !: Selama bertahun-tahun, saya telah mengembangkan kebiasaan membawa patung kecil saat bepergian: Saya sering membeli seni kecil kosong (seperti yang ada di gambar) dan melukis agar sesuai dengan bendera dan tema negara yang saya kunjungi (dalam hal ini, Sisilia). T
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: Ini adalah instruksi tentang cara membongkar PC. Sebagian besar komponen dasar bersifat modular dan mudah dilepas. Namun penting bahwa Anda diatur tentang hal itu. Ini akan membantu Anda agar tidak kehilangan bagian, dan juga dalam membuat