Բովանդակություն:
- Քայլ 1: Como Colocar Los Cables:
- Քայլ 2: Código Arduino
- Քայլ 3: Código Python
- Քայլ 4: Detalles Finales
Video: Alerta Sísmica Temprana .: 4 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Բացահայտման բացատրություն
Durante un sismo se producen 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 deteando 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- ում:
Materiales a utilizar
- 1 Arudino UNO (Costo մոտ $ 25 ԱՄՆ դոլար)
- 1 Arduino Shield Ehternet (Costo մոտ $ 24 ԱՄՆ դոլար)
- 1 երկրաշարժի ահազանգ (մոտ $ 30 ԱՄՆ դոլար)
- 1 Placa de Circuito impresa para prototipos (Costo Approx. $ 0,60 ԱՄՆ դոլար) կամ մեկ նախատախտակի վրա
- 3 մալուխ Jumper de diferentes colores (Costo Aprox. $ 0,30 usd)
- 1 կոնվեկտոր մարտկոցի de 9V (Costo մոտ $ 0,30 ԱՄՆ դոլար)
- Cautin y soldadura
Քայլ 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" - ը կարող է արտացոլել մի ահազանգ, որը հայտնաբերվում է P, ինչպես նաև օգտագործվում է էլեկտրոնային վոլտաժային քաղաքում, որն օգտագործվում է էլեկտրոնային Pin A0- ի մոնիտորինգի կամ էլեկտրաէներգիայի մոնիտորինգի համար:
En el siguiente orden se deben poner los մալուխներ:
5v - A0 - Cable 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.
Importante que con conctar el conector de 9V al sensor, el cable negro pasa a ser el pozitivo y el rojo el negativo, mucho cuidado con esto.
Քայլ 2: Código Arduino
En el Arduino vamos a crear un código que nos va a allowir 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 completeo donde descargarlo.
Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#ներառում
#ներառում
Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar
#սահմանեք ԱՐՏԱԴՐՈԹՅՈՆ A0
Seguido definimos las variables que nos van ayudar al processamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web- ում:
ստատիկ ինտերֆերենցիա;
int qaVal = 0; int qaPreVal = 0;
int շեմ = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
երկար
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ahora crear las variables 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.
բայթ mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
բայթ ip = {192, 168, 15, 120}; // Direccion IP del Arduino
բայթ
սերվեր = {192, 168, 15, 111}; // Direccion IP del servidor
EthernetClient հաճախորդ;
Ya con las variables, 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 (constante QUAKEALARM) lo vamos a usar como un pin de entrada:
- Finalmente iniciamos la tarjeta de red.
void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield
}
Y para terminar el programa, ponemos en una función cíclica que revise el voltaje si este is inferior a 5v que haga una llamada al servidor y por medio de GET le manda el valor 1 a la variable "sismo": también filtra para que exista un lapso de tiempo de 5 segundos entre un envió de de información y otro.
դատարկ շրջան () {
qaVal = analogRead (QUAKEALARM); դիֆերենցիա = qaPreVal - qaVal;
եթե ((diferencia> 0) և (diferencia> = շեմ) և ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print («Sismo!»);
Serial.println (contador);
ultimaConexion = millis ();
if (client.connect (սերվեր, 5002)> 0) {
Serial.println («Կոնեկտո»);
client.print ("GET /? sismo = 1"); // Enviamos los datos por GET
client.println ("HTTP/1.0");
client.println ("Օգտվող-գործակալ. Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Código ամբողջական:
#ներառում
#ներառում
// QuakeAlarm
#սահմանեք ԱՐՏԱԴՐՈԹՅՈՆ A0
// Variable que mantiene el valor anterior del QuakeAlarm
ստատիկ ինտերֆերենցիա;
int qaVal = 0;
int qaPreVal = 0; int շեմ = 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
// փոփոխականներ Ethernet
// Se introducen los valoresrespondenses a MAC, IP local, Puerta de Enlace y Máscara de Red
բայթ mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; բայթ ip = {192, 168, 8, 20}; // Direccion IP del Arduino բայթ սերվեր = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient հաճախորդ; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}
դատարկ շրջան () {
qaVal = analogRead (QUAKEALARM);
դիֆերենցիա = qaPreVal - qaVal;
եթե ((diferencia> 0) և (diferencia> = շեմ) և ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print («Sismo!»); Serial.println (contador); ultimaConexion = millis (); if (client.connect (սերվեր, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("Օգտվող-գործակալ. Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Քայլ 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 implementar estadísticas y en un futuro poderlo usar en algún servicio de notificaciones PUSH para móviles.
Նախապես կարող եք օգտվել ծրագրերից: y en la función tweet cambiar las xxxxx por sus respectivos valores.
Կարող եք ներբեռնել ամբողջական աշխատանքը github.com/bettocr/alertasismo կամ շարունակել ՝
#!/usr/bin/python2.7
#-*-կոդավորում `utf-8-*-
ներմուծման հարցումներ, urllib2, urllib, tweepy
կոլբայի ներմուծումից Ֆլասկ, խնդրանք
StringIO ներմուծումից StringIO
datetime- ից ներմուծել datetime, timedelta
def թվիթ (mensaje):
CONSUMER_KEY = 'xxxxxxx'
CONSUMER_SECRET = 'xxxxxxxx'
ACCESS_KEY = 'xxxxxxxx'
ACCESS_SECRET = 'xxxxxxxx'
author = tweepy. OAuthHandler (CONSUMER_KEY, CONSUMER_SECRET)
author.set_access_token (ACCESS_KEY, ACCESS_SECRET)
api = tweepy. API (author, parser = tweepy.parsers. JSONParser ())
tweetid = api.update_status (կարգավիճակ = mensaje)
հավելված = Ֆլասկ (_ անուն _)
@app.route ("/", մեթոդներ = ['GET'])
def sismo ():
փորձել:
sismo = request.args.get («սիսմո»)
եթե (փող (սիսմո) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
թվիթ ("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")
բացառությամբ IOError as err: տպեք 'Fallo'
անցնել
բացառությամբ որպես e:
տպել «Բացառություն»+փող (ե)
անցնել
վերադարձնել «OK»
Քայլ 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 մալուխներ ներսից.
- Con material termo sensible, puse los 3 cables 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
Խորհուրդ ենք տալիս:
Ինչպես. Raspberry PI 4 Headless (VNC) տեղադրելը Rpi- պատկերիչով և նկարներով. 7 քայլ (նկարներով)
Ինչպես. Raspberry PI 4 Headless (VNC) տեղադրելը Rpi-imager- ով և նկարներով. Ես պլանավորում եմ օգտագործել այս Rapsberry PI- ն իմ բլոգում զվարճալի նախագծերի փունջում: Ազատորեն ստուգեք այն: Ես ուզում էի նորից օգտագործել իմ Raspberry PI- ն, բայց իմ նոր վայրում Ստեղնաշար կամ մկնիկ չկար: Որոշ ժամանակ անց ես ստեղծեցի ազնվամորի
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
Հեծանվորդ. Sistema De Alerta DIY Նախընտրելի ցանկեր. 4 քայլ
Հեծանիվ ՝ Sistema De Alerta DIY Cանկերի համար. Bikesaver is un sistema de Iluminación y alerta que involucra un enfoque de la comunidad Maker para que un ciclista pueda crear su propio sistema de iluminación, así mejorar su seguridad en sus recorridos diarios ya ծով y noche.El sis
Ինչպես ապամոնտաժել համակարգիչը հեշտ քայլերով և նկարներով. 13 քայլ (նկարներով)
Ինչպես ապամոնտաժել համակարգիչը հեշտ քայլերով և նկարներով. Սա հրահանգ է, թե ինչպես ապամոնտաժել համակարգիչը: Հիմնական բաղադրիչների մեծ մասը մոդուլային են և հեշտությամբ հանվում են: Այնուամենայնիվ, կարևոր է, որ դուք կազմակերպված լինեք դրա վերաբերյալ: Սա կօգնի ձեզ զերծ պահել մասերի կորստից, ինչպես նաև նորից հավաքելիս
Ciclop 3D Scanner My Way Քայլ առ քայլ ՝ 16 քայլ (նկարներով)
Ciclop 3D Scanner My Way Քայլ առ քայլ. Ողջույն, ես գիտակցելու եմ հանրահայտ Ciclop 3D սկաները: Բոլոր այն քայլերը, որոնք լավ բացատրված են սկզբնական նախագծում, ներկա չեն: Ես որոշ շտկումներ կատարեցի ՝ գործընթացը պարզեցնելու համար, նախ Ես տպում եմ հիմքը, իսկ հետո վերականգնում եմ PCB- ն, բայց շարունակում եմ