Tabla de contenido:
- Paso 1: Piezas y materiales
- Paso 2: cableado del sensor de temperatura
- Paso 3: Salida del sensor de temperatura
- Paso 4: Entrada del sensor de agua de lluvia
- Paso 5: Salida del sensor de agua de lluvia
- Paso 6: Entrada del sensor de vibración
- Paso 7: Salida del sensor de vibración
- Paso 8: Conclusión
Video: Uso de sensores de temperatura, agua de lluvia y vibración en un Arduino para proteger los ferrocarriles: 8 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
En la sociedad actual, un aumento de los pasajeros de ferrocarril significa que las empresas ferroviarias deben hacer más para optimizar las redes para mantenerse al día con la demanda. En este proyecto, mostraremos a pequeña escala cómo los sensores de temperatura, agua de lluvia y vibración en una placa arduino pueden ayudar potencialmente a aumentar la seguridad de los pasajeros.
Este Instructable mostrará paso a paso el cableado para los sensores de temperatura, agua de lluvia y vibración en el arduino, así como también mostrará el código MATLAB requerido para ejecutar estos sensores.
Paso 1: Piezas y materiales
1. Una computadora con la última versión de MATLAB instalada
2. Placa Arduino
3. Sensor de temperatura
4. Sensor de agua de lluvia
5. Sensor de vibración
6. Luz LED roja
7. Luz LED azul
8. Luz LED verde
9. Luz LED RBG
10. Timbre
11. 18 cables macho-macho
12. 3 cables hembra-macho
13. 2 cables hembra-hembra
14. 6 resistencias de 330 ohmios
15. 1 resistencia de 100 ohmios
Paso 2: cableado del sensor de temperatura
Arriba está el cableado y el código MATLAB para la entrada del sensor de temperatura también.
Los cables de tierra y 5V solo necesitan pasar al negativo y al positivo respectivamente una vez para toda la placa. De aquí en adelante, cualquier conexión a tierra provendrá de la columna negativa y cualquier conexión de 5V provendrá de la columna positiva.
El siguiente código se puede copiar y pegar para el sensor de temperatura.
%% SENSOR DE TEMPERATURA% Para el sensor de temperatura usamos la siguiente fuente junto con
% Material del sitio web EF230 para modificar nuestro sensor de temperatura para permitir al usuario
% de entrada y 3 salidas de luz LED con gráfico.
% Este boceto fue escrito por SparkFun Electronics, % con mucha ayuda de la comunidad Arduino.
% Adaptado a MATLAB por Eric Davishahl.
% Visite https://learn.sparkfun.com/products/2 para obtener información sobre SIK.
borrar todo, clc
tempPin = 'A0'; % Declarando el pin analógico conectado al sensor de temperatura
a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');
% Definir función anónima que convierte el voltaje en temperatura
tempCfromVolts = @ (voltios) (voltios-0.5) * 100;
sampleDuration = 30;
sampleInterval = 2; % Segundos entre lecturas de temperatura
% configurado vector de tiempos de muestreo
sampleTimes = 0: sampleInterval: sampleDuration;
% calcula el número de muestras en función de la duración y el intervalo
numSamples = length (sampleTimes);
% preasignar variables temporales y variables para el número de lecturas que almacenará
tempC = ceros (numSamples, 1);
tempF = tempC;
% usando el cuadro de diálogo de entrada para almacenar temperaturas máximas y mínimas de los rieles
dlg_prompts = {'Ingrese la temperatura máxima', 'Ingrese la temperatura mínima'};
dlg_title = 'Intervalos de temperatura del carril';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, longitud (dlg_title) + N]);
% Almacenar las entradas del usuario y mostrar que se registró la entrada
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Su entrada ha sido registrada');
h = cuadro de mensaje (txt);
esperar (h);
% Para que el bucle lea las temperaturas un número específico de veces.
para index = 1: numSamples
% Lea el voltaje en tempPin y almacénelo como voltios variables
voltios = readVoltage (a, tempPin);
tempC (índice) = tempCfromVolts (voltios);
tempF (índice) = tempC (índice) * 9/5 + 32; % Convertir de Celsius a Fahrenheit
% Si las declaraciones para hacer que las luces LED específicas parpadeen dependiendo de la condición que se cumpla
if tempF (índice)> = max_temp% LED rojo
writeDigitalPin (a, 'D13', 0);
pausa (0,5);
writeDigitalPin (a, 'D13', 1);
pausa (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (índice)> = min_temp && tempF (índice) <max_temp% LED verde
writeDigitalPin (a, 'D11', 0);
pausa (0,5);
writeDigitalPin (a, 'D11', 1);
pausa (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (índice) <= min_temp% LED azul
writeDigitalPin (a, 'D12', 0);
pausa (0,5);
writeDigitalPin (a, 'D12', 1);
pausa (0,5);
writeDigitalPin (a, 'D12', 0);
fin
% Muestra las temperaturas a medida que se miden
fprintf ('La temperatura en% d segundos es% 5.2f C o% 5.2f F. / n',…
sampleTimes (índice), tempC (índice), tempF (índice));
pause (samplingInterval)% de retraso hasta la siguiente muestra
fin
% Trazado de las lecturas de temperatura
Figura 1)
plot (sampleTimes, tempF, 'r- *')
xlabel ('Tiempo (segundos)')
ylabel ('Temperatura (F)')
title ('Lecturas de temperatura de RedBoard')
Paso 3: Salida del sensor de temperatura
Arriba está el cableado y el código MATLAB para la salida del sensor de temperatura.
Para este proyecto usamos tres luces LED para la salida de nuestro sensor de temperatura. Usamos un rojo para si las pistas estaban demasiado calientes, un azul si estaban demasiado frías y un verde si estaban en el medio.
Paso 4: Entrada del sensor de agua de lluvia
Arriba está el cableado para el sensor de agua de lluvia y el código MATLAB se publica a continuación.
%% Sensor de agua
borrar todo, clc
a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Voltaje cuando no hay agua presente
sampleDuration = 60;
sampleInterval = 2;
sampleTimes = 0: sampleInterval: sampleDuration;
numSamples = length (sampleTimes);
% Para que el bucle lea el voltaje durante un período de tiempo específico (60 segundos)
para index = 1: numSamples
volt2 = readVoltage (a, waterPin); % Leer voltaje del pin de agua analógico
% If declaración para hacer sonar un zumbador si se detecta agua. Caída de voltaje = agua
si volt2 <vDry
playTone (a, 'D09', 2400)% función playTone de MathWorks
% Muestra una advertencia a los pasajeros si se detecta agua
waitfor (warndlg ('Su tren puede retrasarse debido a obstáculos de agua'));
fin
% Muestra el voltaje medido por el sensor de agua
fprintf ('El voltaje en% d segundos es% 5.4f V. / n',…
sampleTimes (índice), volt2);
pause (sampleInterval)
fin
Paso 5: Salida del sensor de agua de lluvia
Arriba está el cableado de un timbre que suena cada vez que cae demasiada agua en la pista. El código para el zumbador está incrustado dentro del código para la entrada de agua de lluvia.
Paso 6: Entrada del sensor de vibración
Arriba está el cableado del sensor de vibraciones. Los sensores de vibración pueden ser importantes para los sistemas ferroviarios en el caso de caída de rocas en una vía. El código MATLAB se publica a continuación.
%% Sensor de vibración borrar todo, clc
PIEZO_PIN = 'A3'; % Declarando el pin analógico conectado al sensor de vibración a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno'); % Inicializando el tiempo y el intervalo para medir el muestreo de vibraciones Duración = 30; % Segundos sampleInterval = 1;
sampleTimes = 0: sampleInterval: sampleDuration;
numSamples = length (sampleTimes);
% Usando el código de la siguiente fuente, lo modificamos para activar un
% LED violeta si se detecta vibración.
% SparkFun Tinker Kit, LED RGB, escrito por SparkFun Electronics, % con mucha ayuda de la comunidad Arduino
% Adaptado a MATLAB por Eric Davishahl
% Inicializando el pin RGB
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Para que el bucle registre los cambios de voltaje del sensor de vibración durante un
% intervalo de tiempo específico (30 segundos)
para index = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% If declaración para encender un LED violeta si se detecta vibración
si volt3> 0.025
writeDigitalPin (a, RED_PIN, 1);
% Creando una luz violeta
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
else% Apague el LED si no se detecta vibración.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
fin
% Muestra el voltaje a medida que se mide.
fprintf ('El voltaje en% d segundos es% 5.4f V. / n',…
sampleTimes (índice), volt3);
pausa (intervalo de muestreo)
fin
% Cortar la luz cuando se realiza la medición de vibraciones
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
Paso 7: Salida del sensor de vibración
Arriba está el cableado para la luz LED RBG utilizada. La luz brillará de color púrpura cuando se detecten vibraciones. El código MATLAB para la salida está incrustado dentro del código para la entrada.
Paso 8: Conclusión
Después de seguir todos estos pasos, ahora debería tener un arduino con la capacidad de detectar temperatura, agua de lluvia y vibraciones. Al ver cómo funcionan estos sensores a pequeña escala, es fácil imaginar lo vitales que podrían ser para los sistemas ferroviarios en la vida moderna.
Recomendado:
Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance: 7 pasos
Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance: A veces, la vibración es la causa de problemas graves en muchas aplicaciones. Desde los ejes y cojinetes de la máquina hasta el rendimiento del disco duro, la vibración causa daños en la máquina, reemplazos tempranos, bajo rendimiento e inflige un gran impacto en la precisión. Vigilancia
Detector de lluvia con Arduino y sensor de gotas de lluvia: 8 pasos
Detector de lluvia usando Arduino y sensor de gotas de lluvia: En este tutorial aprenderemos cómo detectar una lluvia usando un sensor de lluvia y hacer un sonido usando un módulo de zumbador y una pantalla OLED y Visuino
Cómo proteger y proteger su teléfono y dispositivo: 4 pasos
Cómo Proteger y Proteger Tu Teléfono y Gadget: de una persona que ha perdido casi todo (exagerado, por supuesto). Entonces, tiempo de confesión, como decía mi oración anterior, soy MUY MUY torpe. Si algo no está adherido a mí, existe una gran posibilidad de que lo pierda, olvide que está en alguna parte
Medidor ultrasónico de capacidad del tanque de agua de lluvia: 10 pasos (con imágenes)
Medidor ultrasónico de capacidad del tanque de agua de lluvia: si usted es como yo y tiene un poco de conciencia ambiental (o simplemente está ansioso por ahorrar algunos dólares, que también soy yo …), es posible que tenga un tanque de agua de lluvia. Tengo un tanque para recoger la lluvia poco frecuente en la que nos metemos
Esclusa de agua de lluvia: 11 pasos (con imágenes)
Esclusa de agua de lluvia: Una fuerte tormenta puede causar un desbordamiento sobre nuestras: aceras, pozos de agua de lluvia, pólders y nuestros diques. Para evitar que esto suceda, ¡inventamos una compuerta de agua de lluvia! La compuerta de agua de lluvia calcula digitalmente la distancia entre el agua de lluvia