Оглавление:
Видео: Alerta Sísmica Temprana: 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Breve explicación
Durante un sismo se производит 3 типа 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 alertta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda.
El presente proyecto busca create un sistema de alertta sísmica temprana en twitter.
Materiales a utilizar
- 1 Arudino UNO (около 25 долларов США)
- 1 Arduino Shield Ehternet (стоимость около 24 долларов США)
- 1 аварийный сигнал землетрясения (стоимость прибл. 30 долларов США)
- 1 Placa de Circuito impresa para prototipos (Стоимость прибл. 0,60 доллара США) или прототипная плата.
- Разные цветные перемычки с 3 кабелями (стоимость прибл. 0,30 долл. США)
- 1 коннектор батареи 9В (стоимость прибл. 0,30 доллара США)
- Каутин и солдадура
Шаг 1: Como Colocar Los Cables
Для того, чтобы узнать, как работает датчик "Quake Alarm", вам нужно будет подключить батарею 9v-del mismo.
Arduino le dará 5v al sensor con los que va a poder funcionar bien.
«Тревога землетрясения» предназначена для того, чтобы излучать тревожные сигналы, которые обнаруживаются на P, так как это одна из двух частей, одна из которых используется, контакт A0 для мониторинга и наблюдения за электричеством.
En el siguiente orden se deben poner los кабели:
5v - A0 - Negro del conector de batería Cable
Пример подключения кабеля 5 В к питающему датчику, подключите кабель A0 к монитору напряжения и завершите кабель черного разъема.
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.
Важное значение имеет соединительный элемент датчика 9 В, черный кабель, подключенный к положительному положению и отрицательному напряжению, много раз подряд.
Шаг 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 Complete y donde descargarlo.
Для начала вам нужно включить все необходимые библиотеки, чтобы использовать сетевой экран и последовательный порт.
#включают
#включают
Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar
#define QUAKEALARM A0
Seguido Definimos las variables que nos van ayudar al processingamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
статический int differencia;
int qaVal = 0; int qaPreVal = 0;
int threshold = 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
Вы можете создать все переменные для использования Ethernet, чтобы определить MAC-адрес для красного адреса, IP-адрес, который используется для использования в качестве класса EthernetClient, для того, чтобы использовать красный адрес. Вам нужно будет определить IP-адрес сервера, который обрабатывает все данные.
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
байт ip = {192, 168, 15, 120}; // Направление IP del Arduino
байт
сервер = {192, 168, 15, 111}; // Направление IP-адреса сервера
Клиент EthernetClient;
Я с переменными, библиотеками и классами списки podemos iniciar el programa que tenrá nuestro Arduino:
- Incializamos el серийный номер 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, ВХОД);
Ethernet.begin (mac, ip); // Начало работы с Ethernet Shield
}
Y para terminar el 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 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); диференция = qaPreVal - qaVal;
if ((diferencia> 0) and (diferencia> = threshold) and ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print («Сисмо!»);
Serial.println (contador);
ultimaConexion = millis ();
if (client.connect (server, 5002)> 0) {
Serial.println («Конекто»);
client.print ("ПОЛУЧИТЬ /? 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
Полный код:
#включают
#включают
// QuakeAlarm
#define QUAKEALARM A0
// Переменная quakeAlarm, предшествующая доблести
статический int differencia;
int qaVal = 0;
int qaPreVal = 0; int threshold = 10; int intervaloTiempo = 5000; // Интервал между подключениями к веб-службам long ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Переменные Ethernet
// Указанные значения соответствуют MAC, IP local, Puerta de Enlace y Máscara de Red
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; байт ip = {192, 168, 8, 20}; // Байтовый сервер IP-адреса Arduino = {192, 168, 8, 11}; // Направление IP-адреса сервера EthernetClient client; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, ВХОД); // Ethernet Ethernet.begin (mac, ip); // Начало работы Ethernet Shield}
void loop () {
qaVal = analogRead (QUAKEALARM);
диференция = qaPreVal - qaVal;
if ((diferencia> 0) and (diferencia> = threshold) and ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print («Сисмо!»); Serial.println (contador); ultimaConexion = millis (); если (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("ПОЛУЧИТЬ /? ключ = 1122334455 & sismo = 1"); // Сохранение данных для 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, вы получите доступ к данным Consumer Key (API Key), Consumer Secret (API Secret), Access Token y Access Token Secret. y en la función tweet cambiar las xxxxx por sus respectivos valores.
Pueden descargar el código Complete en github.com/bettocr/alertasismo o copiarlo a continación:
#! / usr / bin / python2.7
# - * - кодировка: utf-8 - * -
запросы на импорт, urllib2, urllib, tweepy
из фляги импорт фляги, запрос
из StringIO импортировать StringIO
from datetime import datetime, timedelta
def tweet (mensaje):
CONSUMER_KEY = 'xxxxxxx'
CONSUMER_SECRET = 'xxxxxxxx'
ACCESS_KEY = 'хххххххх'
ACCESS_SECRET = 'хххххххх'
auth = tweepy. OAuthHandler (CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token (ACCESS_KEY, ACCESS_SECRET)
api = tweepy. API (аутентификация, парсер = tweepy.parsers. JSONParser ())
tweetid = api.update_status (статус = значение)
app = Flask (_ имя_)
@ app.route ("/", methods = ['GET'])
def sismo ():
пытаться:
sismo = request.args.get ("sismo")
если (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("% - I:% M% p")
tweet ("[En Pruebas] Возможная sismo en los próximos segundos (" + hora + ")")
кроме IOError как err: print 'Fallo'
проходить
кроме исключения как e:
print "Exception" + str (e)
проходить
вернуть "ОК"
Шаг 4: подробности финала
Como Pasos adicionales para darle una mejor image 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 для того, чтобы ввести кабели.
- С разумным термоустойчивым материалом, используйте 3 кабеля на 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
Рекомендуемые:
Распознавание лиц на Raspberry Pi 4B за 3 шага: 3 шага
Обнаружение лиц на Raspberry Pi 4B за 3 шага: в этом руководстве мы собираемся выполнить обнаружение лиц на Raspberry Pi 4 с помощью Shunya O / S, используя библиотеку Shunyaface. Shunyaface - это библиотека распознавания / обнаружения лиц. Проект направлен на достижение максимальной скорости обнаружения и распознавания с помощью
Как установить плагины в WordPress за 3 шага: 3 шага
Как установить плагины в WordPress за 3 шага: в этом уроке я покажу вам основные шаги по установке плагина wordpress на ваш сайт. В основном вы можете установить плагины двумя разными способами. Первый способ - через ftp или через cpanel. Но я не буду перечислять это, потому что он действительно комп
Прямая трансляция HD-видео 4G / 5G с дрона DJI с малой задержкой [3 шага]: 3 шага
Прямая трансляция HD-видео 4G / 5G с дрона DJI с малой задержкой [3 шага]: следующее руководство поможет вам получать прямые видеопотоки HD-качества практически с любого дрона DJI. С помощью мобильного приложения FlytOS и веб-приложения FlytNow вы можете начать потоковую передачу видео с дрона
Протез руки, напечатанный на 3D-принтере за 4 шага !: 4 шага
Протез руки, напечатанный на 3D-принтере за 4 шага !: Этот проект - протез руки, напечатанный мной, я хочу получить больше знаний о протезировании и 3D-печати. Хотя это не лучший проект, это отличный способ получить практический опыт и научиться создавать
Велосипедист: Sistema De Alerta DIY Para Ciclistas: 4 шага
Bikesaver: Sistema De Alerta DIY Para Ciclistas: Bikesaver es un sistema de Iluminación y alertta que invucra un enfoque de la comunidad Maker para que un ciclista pueda Crear su propio sistema de iluminación, así mejorar su segridosidari sus y noche.El sis