Съдържание:
- Стъпка 1: Como Colocar Los Cables
- Стъпка 2: Código Arduino
- Стъпка 3: Código Python
- Стъпка 4: Подробни финали
Видео: Alerta Sísmica Temprana .: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Breve explicación
Durante un sismo се произвежда 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.
Съществувайте 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 system de alerta sísmica temprana en twitter.
Материали за използване
- 1 Arudino UNO (около $ 25 USD)
- 1 Arhino Shield Ehternet (Costo приблизително $ 24 usd)
- 1 аларма за земетресение (Costo приблизително. $ 30 usd)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. $ 0,60 usd) или прото прототип
- 3 кабелни джъмпера за различни цветове (Costo приблизително, 0,30 щ.д.)
- 1 Conector de batería de 9V (Costo Aprox. $ 0,30 usd)
- Котин и солдадура
Стъпка 1: Como Colocar Los Cables
За по -добър хакер nuestro proyecto sin tener que abrir el сензор "Quake Alarm", можете да използвате съединител за латера от 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 para monitorear un cambio en el voltaje.
En el siguiente orden se deben poner los cable:
5v - A0 - Кабелен негро дел конектор de batería
Primero ел кабел за 5V que ва алиментарен ел сензор, aluego el A0 que ва мониторен ел волтаж и окончателно ел кабел негро дел конектор.
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.
Importantte que al conectar el conector de 9V al sensor, el cable negro pasa a ser el positivo 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 за автобус 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.
#включва
#включва
Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar
#дефинирайте QUAKEALARM A0
Seguido definimos las variables que nos van a ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
статична int диференциация;
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. Там можете да определите IP адреса на сървъра, за да получите редовни данни.
байт mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
байт ip = {192, 168, 15, 120}; // Дирекция IP del Arduino
байт
сървър = {192, 168, 15, 111}; // Дирекционен IP адрес на сървъра
EthernetClient клиент;
Ya con las променливи, librerías y класове списъци podemos iniciar el програми que tendrá nuestro Arduino:
- Включен сериен номер 57600
- Luego le decimos al arduino que el pin A0 (constete 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); // Инициализация на Ethernet щит
}
Y para terminar el program, ponemos en una función cíclica que revise el voltaje si este es inferior a 5v que haga una lalamada 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 información y otro.
void loop () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
ако ((diferencia> 0) и (diferencia> = праг) и ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (contador);
ultimaConexion = millis ();
if (client.connect (server, 5002)> 0) {
Serial.println ("Conecto");
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 изтеглете el código en github.com/bettocr/alertasismo
Código completo:
#включва
#включва
// QuakeAlarm
#дефинирайте QUAKEALARM A0
// Променлива que mantiene el valor anterior del QuakeAlarm
статична int диференция;
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
// Въведете los valores съответстващ MAC, IP локален, 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}; // Дирекционен IP адрес на сървър на EthernetClient клиент; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Инициализация на Ethernet щит}
void loop () {
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
ако ((diferencia> 0) и (diferencia> = праг) и ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); if (client.connect (server, 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.
За да пуснете тук, можете да създадете и приложите apps.twitter.com като приложение и получател на данни с потребителски ключ (API ключ), Consumer Secret (API секрет), Access Token и 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 continuación:
#!/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'
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 ("/", methods = ['GET'])
def sismo ():
опитвам:
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+")")
с изключение на IOError като грешка: отпечатайте „Fallo“
пропуск
с изключение на изключение като e:
отпечатайте „Изключение“+str (e)
пропуск
върнете "OK"
Стъпка 4: Подробни финали
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 cable entraran.
- С материал, който е термично разумен, с изгубени 3 кабела, който е свързан с Al Arduino, за да се разграничи самостоятелен кабел.
- 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
Препоръчано:
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
Лек хак за стая със зрителни увреждания със слухови увреждания: 7 стъпки (със снимки)
Лек хак на стаята със слухови увреждания на вратата: Проблем: баща ми е регистриран като глух, а майка ми е с увреден слух и поради това често им е трудно да чуят звънеца на вратата. Това би могло да бъде проблем, претърпян и от много други.Купиха мигащ светлинен звънец на вратата, за да им помогнат с
Висящи бижута със слънчево захранване на сърцето със светкавици: 11 стъпки (със снимки)
Висящи бижута със слънчево захранване за сърце: Тази инструкция е за сърце със слънчева енергия с пулсиращ червен светодиод. Той измерва около 2 " до 1,25 ", включително USB раздела. Той има една дупка през горната част на дъската, което улеснява окачването. Носете го като огърлица, обеци, връзки на щифт
Сандък със съкровище Zelda (със светлини и звук): 12 стъпки (със снимки)
Zelda Treasure Chest (With Lights & Sound): Здравейте на всички! Бях голям фен на игрите Legend of Zelda, когато бях по -малък, но мисля, че почти всеки знае емблематичната мелодия, която свири, когато отворите сандък в играта, просто звучи толкова вълшебно! В тази инструкция ще ви покажа как
Персонализиран часовник със стрелки за снимки: 5 стъпки (със снимки)
Персонализиран часовник със стрелки за снимки: Някои хора наблюдават часовника. Сега всеки може да бъде часовник. Други проекти персонализират лицето на часовника. Този персонализира стрелките на часовника. Изглежда скъп, но е по -малко от 5 долара и около 30 минути на часовник. Перфектен за Chr