Mục lục:
- Bước 1: Como Colocar Los Cables
- Bước 2: Código Arduino
- Bước 3: Código Python
- Bước 4: Vòng chung kết Detalles
Video: Alerta Sísmica Temprana.: 4 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Breve explicación
Durante un sismo se productionn 3 tipos de ondas la primaria o P que es la importante para este proyecto, viaja entre 8 y 13 km / s y es registerrada por los supportsos sismógrafos.
Tồn tại cảm giác caseros, que nos dan una alerta detando 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.
Vật chất là một công cụ hữu dụng
- 1 Arudino UNO (Costo khoảng $ 25usd)
- 1 Arduino Shield Ehternet (Costo Xấp xỉ $ 24 usd)
- 1 Quake Alarm (Costo Khoảng 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. $ 0,60 usd) trên protoboard
- 3 Cáp Jumper de diferentes màu (Costo Aprox. $ 0,30 usd)
- 1 Conector de batería de 9V (Costo Aprox. $ 0,30 usd)
- Cautin y selladura
Bước 1: Como Colocar Los Cables
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 deta ondas P, si este parlante suena el voltaje baja, por lo que usaremos el Pin A0 paratheorear un cambio en el voltaje.
En el siguiente orden se deben poner thua cáp:
5v - A0 - Cáp negro del conector de batería
Cáp Primero el de 5V que va a alimentar el sensor, luego el A0 que va a syorear 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 sellamos para que la Electricidad pase entre ellos.
Importante que al conectar el conector de 9V al sensor, el cable negro pasa a ser el posvo y el rojo el negativo, mucho cuidado con esto.
Bước 2: Código Arduino
En el Arduino vamos a crear un hasdigo que nos va a permitir 2 cosas:
- Leer el voltaje para cambios xe buýt
- Si hay una variación en el voltaje hacer una llamada một web un servicio
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 khiên ethernet y el nối tiếp.
#bao gồm
#bao gồm
Luego vamos a crear una Constante que va a tener el PIN Analógico que vamos a usar
#define QUAKEALARM A0
Các biến số của Seguido definimos las que nos van a ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
static int diferencia;
int qaVal = 0; int qaPreVal = 0;
ngưỡng int = 10;
int khoảngoTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
Dài
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Các biến Ahora crear las 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 một định nghĩa là IP del servidor que Recogbirá lo datos.
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip = {192, 168, 15, 120}; // Direccion IP del Arduino
byte
máy chủ = {192, 168, 15, 111}; // Direccion IP del servidor
Máy khách EthernetClient;
Ya con las biến, librerías y clases listas podemos iniciar el programma que tensrá nuestro Arduino:
- Incializamos el serial a 57600
- Luego le decimos al arduino que el pin A0 (Constante QUAKEALARM) lo vamos a usar como un pin de entrada.
- Finalmente iniciamos la tarjeta de đỏ.
void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield
}
Y para terminar el programma, ponemos en una función cíclica que revise el voltaje si este es Lower a 5v que haga una llamada al servidor y por medio de GET le manda el valor 1 a la biến "sismo". también filtra para que beinga un lapso de tiempo de 5 segundos entre un envió de Información y otro.
void loop () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia> 0) và (diferencia> = ngưỡng) và ((millis () - ultimaConexion)> khoảngoTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (tiếp theo);
ultimaConexion = millis ();
if (client.connect (server, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Enviamos los datos bởi GET
client.println ("HTTP / 1.0");
client.println ("Tác nhân người dùng: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Código hoàn thành:
#bao gồm
#bao gồm
// QuakeAlarm
#define QUAKEALARM A0
// Biến que mantiene el valor anterior del QuakeAlarm
static int diferencia;
int qaVal = 0;
int qaPreVal = 0; ngưỡng int = 10; int khoảngoTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Biến Ethernet
// Se limitn los valores tương ứng với MAC, IP local, Puerta de Enlace y Máscara de Red
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; byte ip = {192, 168, 8, 20}; // Máy chủ byte Direccion IP del Arduino = {192, 168, 8, 11}; // Direccion IP del servidor máy khách EthernetClient; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}
void loop () {
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
if ((diferencia> 0) và (diferencia> = ngưỡng) và ((millis () - ultimaConexion)> khoảngoTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (tiếp theo); ultimaConexion = millis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos làm mất dữ liệu bởi GET client.println ("HTTP / 1.0"); client.println ("Tác nhân người dùng: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Bước 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 Recogbe el aviso del Arduino para luego enviar un Tuit.
Lo hice de esta manra para poder implementar estadísticas y en un futuro poderlo usar en algún servicio de thông báo PUSH para móviles.
Para que pueda tuitear deben crear en apps.twitter.com una aplicación y obtener los datos Khóa người dùng (API Key), Bí mật người tiêu dùng (API Secret), Mã truy cập y Access Token Secret. y en la función tweet cambiar las xxxxx por sus respectivos valores.
Pueden descargar el código completo en github.com/bettocr/alertasismo o copiarlo a tiep tuc:
#! / usr / bin / python2.7
# - * - mã hóa: utf-8 - * -
yêu cầu nhập, urllib2, urllib, tweepy
từ bình nhập Bình, yêu cầu
từ StringIO nhập StringIO
from datetime import datetime, timedelta
def tweet (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)
app = Flask (_ name_)
@ app.route ("/", method = ['GET'])
def sismo ():
cố gắng:
sismo = request.args.get ("sismo")
if (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("% - I:% M% p")
tweet ("[En Pruebas] Posible sismo en los próximos segundos (" + hora + ")")
ngoại trừ IOError as err: print 'Fallo'
đi qua
ngoại trừ Exception as e:
print "Exception" + str (e)
đi qua
trả về "OK"
Bước 4: Vòng chung kết Detalles
Como Pasos adicionales para darle una mejor imagen hice lo siguiente
- Corte la Placa de Circuito justo para que entrara en el espacio Destinynado a la batería.
- Con un mototool hice un hueco en la tapa en la esquina superior derecha para que los cable 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
Đề xuất:
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: 3 bước (có hình ảnh)
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: Xin chào! Tôi luôn tìm kiếm các Dự án mới cho các bài học vật lý của mình. Hai năm trước, tôi đã xem một báo cáo về cảm biến nhiệt MLX90614 từ Melexis. Loại tốt nhất chỉ với 5 ° FOV (trường nhìn) sẽ phù hợp với máy ảnh nhiệt tự chế
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: 14 bước (có hình ảnh)
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: Có rất nhiều hướng dẫn trực tuyến về cách xây dựng máy ảnh phim của riêng bạn, nhưng tôi không nghĩ rằng có bất kỳ hướng dẫn nào về việc xây dựng cảm biến hình ảnh của riêng bạn! Cảm biến hình ảnh có sẵn từ rất nhiều công ty trực tuyến và việc sử dụng chúng sẽ giúp thiết kế
Hình ảnh - Máy ảnh Raspberry Pi in 3D.: 14 bước (có Hình ảnh)
Hình ảnh - Máy ảnh Raspberry Pi 3D được in: Cách đây trở lại vào đầu năm 2014, tôi đã xuất bản một máy ảnh có thể hướng dẫn được gọi là SnapPiCam. Máy ảnh được thiết kế để đáp ứng với Adafruit PiTFT mới được phát hành. Đã hơn một năm trôi qua và với bước đột phá gần đây của tôi vào in 3D, tôi nghĩ rằng n
MÁY ẢNH UNICORN - Raspberry Pi Zero W NoIR Cấu hình máy ảnh 8MP: 7 bước (có hình ảnh)
UNICORN CAMERA - Raspberry Pi Zero W NoIR Camera 8MP Build: Pi Zero W NoIR Camera 8MP BuildThis hướng dẫn được tạo ra để giúp bất kỳ ai muốn có Camera hồng ngoại hoặc Camera di động thực sự tuyệt vời hoặc Camera Raspberry Pi di động hoặc chỉ muốn giải trí, heheh . Đây là cấu hình và giá cả phải chăng nhất
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: 7 bước (với hình ảnh)
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: Tôi biết bạn đang nghĩ gì. Bằng cách " thân mật, " Ý tôi là chiếu sáng cận cảnh trong các tình huống ánh sáng khó - không nhất thiết dành cho " các tình huống thân mật. &Quot; (Tuy nhiên, nó cũng có thể được sử dụng cho việc đó …) Là một nhà quay phim thành phố New York - hoặc