Tabla de contenido:

Uso de sensores de temperatura, agua de lluvia y vibración en un Arduino para proteger los ferrocarriles: 8 pasos (con imágenes)
Uso de sensores de temperatura, agua de lluvia y vibración en un Arduino para proteger los ferrocarriles: 8 pasos (con imágenes)

Video: Uso de sensores de temperatura, agua de lluvia y vibración en un Arduino para proteger los ferrocarriles: 8 pasos (con imágenes)

Video: Uso de sensores de temperatura, agua de lluvia y vibración en un Arduino para proteger los ferrocarriles: 8 pasos (con imágenes)
Video: 😱¿Se podría decir que fueron a Estados Unidos? #playasdetijuana #murofronterizo #trump #tijuana 2024, Noviembre
Anonim
Uso de sensores de temperatura, agua de lluvia y vibración en un Arduino para proteger los ferrocarriles
Uso de sensores de temperatura, agua de lluvia y vibración en un Arduino para proteger los ferrocarriles

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

Cableado del sensor de temperatura
Cableado del sensor de temperatura
Cableado del sensor de temperatura
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

Salida del sensor de temperatura
Salida del sensor de temperatura
Salida del sensor de temperatura
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

Entrada del sensor de agua de lluvia
Entrada del sensor de agua de lluvia
Entrada del sensor de agua de lluvia
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

Salida del sensor de agua de lluvia
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

Entrada de sensor de vibración
Entrada de sensor de vibración
Entrada de sensor de vibración
Entrada de 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

Salida del sensor de vibración
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: