Isi kandungan:
- Langkah 1: Kabel Los Como Colocar
- Langkah 2: Código Arduino
- Langkah 3: Código Python
- Langkah 4: Detalles Finales
Video: Alerta Sísmica Temprana .: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Breve explicación
Durante un sismo se produksien 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.
Exaser 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 utilizar
- 1 Arudino UNO (Costo aprox. $ 25 USD)
- 1 Arduino Shield Ehternet (Costo Aprox $ 24 USD)
- 1 Penggera Gempa (Costo Aprox. $ 30 USD)
- 1 prototipos Placa de Circuito impresa para (Costo Aprox. $ 0.60 USD) o protoboard una
- 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
Para poder hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", vamos a usar el conector de la batería de 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.
Kabel en el siguiente orden se deben poner los:
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 Cable 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.
Pentingnya ale conectar el conector de 9V al sensor, el kabel negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.
Langkah 2: Código Arduino
En el Arduino vamos a crear un código que nos va a permitir 2 kosas:
- 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 melengkapkan dan donde descargarlo.
Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#sertakan
#sertakan
Luego vamos a crear una stablee que va a tener el PIN Analógico que vamos seorang pengguna
#tentukan QUAKEALARM A0
Seguido definimos las variabel que nos van a ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
int diferencia statik;
int qaVal = 0; int qaPreVal = 0;
ambang int = 10;
int interaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
lama
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Pemboleh ubah Ahora crear las para el uso del ethernet, definisi donde 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}; // Direccion IP del Arduino
bait
pelayan = {192, 168, 15, 111}; // Direccion IP del servidor
Pelanggan EthernetClient;
Ya con las variables, librerías y clases listas podemos iniciar el programa que tendrá nuestro Arduino:
- Incializamos el bersiri 57600
- Luego le decimos al arduino que el pin A0 (stablee QUAKEALARM) lo vamos a usar como un pin de entrada.
- Finalmente iniciamos la tarjeta de red.
persediaan tidak sah () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield
}
Dari segi istilah, programa, ponemos en una función cíclica que revise el voltaje si este es inferior a 5v que haga una llamada al servidor y por medio de GET le manda el valor 1 a la variabel "sismo". también filtra para que υπάρχει dan tidak ada masa lalu 5 segundos entre un envió de información y otro.
gelung kosong () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
jika ((diferencia> 0) dan (diferencia> = ambang) dan ((millis () - ultimaConexion)> interaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (contador);
ultimaConexion = millis ();
jika (client.connect (pelayan, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Enviamos los datos por DAPATKAN
client.println ("HTTP / 1.0");
client.println ("Ejen Pengguna: Arduino 1.0");
}
pelanggan.stop ();
pelanggan.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Código lengkap:
#sertakan
#sertakan
// Penggera Quake
#tentukan QUAKEALARM A0
// Pemboleh ubah que mantiene el valor anterior del QuakeAlarm
int diferencia statik;
int qaVal = 0;
int qaPreVal = 0; ambang int = 10; int interaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web ultimaConexion panjang = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Pemboleh ubah Ethernet
// Se pengantar koresponden los valores MAC, IP tempatan, Puerta de Enlace y Máscara de Red
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; byte ip = {192, 168, 8, 20}; // Pelayan bait Direccion IP del Arduino = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient pelanggan; persediaan tidak sah () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}
gelung kosong () {
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
jika ((diferencia> 0) dan (diferencia> = ambang) dan ((millis () - ultimaConexion)> interaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); jika (client.connect (pelayan, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP / 1.0"); client.println ("Ejen Pengguna: Arduino 1.0"); } pelanggan.stop (); pelanggan.flush (); } qaPreVal = qaVal; }
Langkah 3: Código 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 para luego enviar un Tuit.
Lo hice de esta manera para poder melaksanakan estadísticas y en un futuro poderlo usar en algún servicio de notificaciones PUSH para móviles.
Para que pueda tuitear deben crear en apps.twitter.com una aplicación y obtener los datos Kunci Pengguna (Kunci API), Rahsia Pengguna (Rahsia API), Token Akses dan Rahsia Token Akses. y en la función tweet cambiar las xxxxx por sus respivos valores.
Pueden descargar el código completeo en github.com/bettocr/alertasismo o copiarlo a Continuación:
#! / usr / bin / python2.7
# - * - pengekodan: utf-8 - * -
permintaan import, urllib2, urllib, tweepy
dari termos import Kelalang, permintaan
dari StringIO import StringIO
dari datetime import datetime, timedelta
tweet def (mensaje):
CONSUMER_KEY = 'xxxxxxx'
CONSUMER_SECRET = 'xxxxxxxx'
ACCESS_KEY = 'xxxxxxxx'
ACCESS_SECRET = 'xxxxxxxx'
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 = Kelalang (_ nama_)
@ app.route ("/", kaedah = ['DAPATKAN])
def sismo ():
cuba:
sismo = request.args.get ("sismo")
jika (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("% - I:% M% p")
tweet ("[En Pruebas] Sismo en los próximos segundos (" + hora + ")")
kecuali IOError as err: print 'Fallo'
lulus
kecuali Pengecualian sebagai e:
cetak "Pengecualian" + str (e)
lulus
kembali "OK"
Langkah 4: Detalles Finales
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 cables entraran.
- Con material termo sensible, puse los 3 cable que van al Arduino para que parezca un solo cable.
- Y para 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
Disyorkan:
Pemegang gambar dengan pembesar suara terbina dalam: 7 Langkah (dengan gambar)
Pemegang Gambar Dengan Pembesar Suara Built-In: Berikut adalah projek yang hebat untuk dilaksanakan pada hujung minggu, jika anda ingin menjadikan anda pembesar suara yang boleh menyimpan gambar / kad pos atau bahkan senarai tugas anda. Sebagai sebahagian daripada pembangunan, kami akan menggunakan Raspberry Pi Zero W sebagai nadi projek, dan
Cara: Memasang Raspberry PI 4 Tanpa Kepala (VNC) Dengan Imej dan Gambar Rpi: 7 Langkah (dengan Gambar)
Howto: Memasang Raspberry PI 4 Headless (VNC) Dengan Imej dan Gambar Rpi: Saya merancang untuk menggunakan Rapsberry PI ini dalam sekumpulan projek yang menyeronokkan di blog saya. Jangan ragu untuk melihatnya. Saya ingin kembali menggunakan Raspberry PI saya tetapi saya tidak mempunyai Papan Kekunci atau Tetikus di lokasi baru saya. Sudah lama saya menyediakan Raspberry
Lancarkan Tayangan Tayangan Gambar Percutian Anda Dengan Sentuhan Sihir!: 9 Langkah (dengan Gambar)
Lancarkan Tayangan Tayangan Gambar Percutian Anda Dengan Sentuhan Sihir!: Selama bertahun-tahun, saya telah membiasakan diri untuk mengambil patung kecil dengan saya semasa dalam perjalanan: Saya sering membeli artoy kosong (seperti gambar dalam gambar) dan cat ia sesuai dengan bendera dan tema negara yang saya lawati (dalam kes ini, Sisilia). T
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: Ini arahan mengenai cara membongkar PC. Sebilangan besar komponen asas adalah modular dan mudah dikeluarkan. Walau bagaimanapun, adalah penting untuk anda mengaturnya. Ini akan membantu mengelakkan anda kehilangan bahagian, dan juga dalam membuat pemasangan semula
Cara Pixellate Gambar - Dengan Mudah: 3 Langkah (dengan Gambar)
Cara Pixellate Gambar - Mudah: Yang cepat ini adalah teknik untuk menggunakan penapisan piksel untuk mengekalkan anonim, martabat dan lain-lain pada gambar digital. Anda hanya memerlukan penyunting gambar sederhana seperti MS Paint, saya menggunakan MS Paint. Untuk alternatif, lihat ini Boleh diajar