Taula de continguts:

Ús de sensors de temperatura, aigua de pluja i vibracions en un Arduino per protegir els ferrocarrils: 8 passos (amb imatges)
Ús de sensors de temperatura, aigua de pluja i vibracions en un Arduino per protegir els ferrocarrils: 8 passos (amb imatges)

Vídeo: Ús de sensors de temperatura, aigua de pluja i vibracions en un Arduino per protegir els ferrocarrils: 8 passos (amb imatges)

Vídeo: Ús de sensors de temperatura, aigua de pluja i vibracions en un Arduino per protegir els ferrocarrils: 8 passos (amb imatges)
Vídeo: Bundfaltenhosen bügeln | Outlet46 | Bügeltipps | Richtig Bügeln | Tipps von Nazli 2024, Juliol
Anonim
Ús de sensors de temperatura, aigua de pluja i vibracions en un Arduino per protegir els ferrocarrils
Ús de sensors de temperatura, aigua de pluja i vibracions en un Arduino per protegir els ferrocarrils

A la societat actual, un augment de passatgers ferroviaris significa que les companyies ferroviàries han de fer més per optimitzar les xarxes per mantenir-se al dia amb la demanda. En aquest projecte mostrarem a petita escala com els sensors de temperatura, aigua de pluja i vibracions en una placa arduino poden ajudar a augmentar la seguretat dels passatgers.

Aquesta instrucció mostrarà pas a pas el cablejat dels sensors de temperatura, aigua de pluja i vibracions a l’arduino, així com el codi MATLAB necessari per executar aquests sensors.

Pas 1: peces i materials

1. Un equip amb la versió més recent de MATLAB instal·lada

2. Tauler Arduino

3. Sensor de temperatura

4. Sensor d'aigua de pluja

5. Sensor de vibracions

6. Llum LED vermella

7. Llum LED blava

8. Llum LED verda

9. Llum LED RBG

10. Zumbador

11. 18 cables masculí-masculí

12. 3 cables femella-home

13. 2 cables femella-dona

14. 6 resistències de 330 ohms

15. 1 resistència de 100 ohms

Pas 2: Cablatge del sensor de temperatura

Cablatge del sensor de temperatura
Cablatge del sensor de temperatura
Cablatge del sensor de temperatura
Cablatge del sensor de temperatura

A la part superior hi ha el cablejat i el codi MATLAB per a l'entrada del sensor de temperatura.

Els cables de terra i 5V només han de passar al negatiu i al positiu, respectivament, una vegada per a tota la placa. A partir d’aquí, qualsevol connexió a terra provindrà de la columna negativa i qualsevol connexió de 5V provindrà de la columna positiva.

El codi següent es pot copiar i enganxar per al sensor de temperatura.

%% TEMPERATURE SENSOR% Per al sensor de temperatura hem utilitzat la font següent juntament amb

Material del lloc web% EF230 per modificar el nostre sensor de temperatura per permetre a l'usuari

% d'entrada i 3 sortides de llum LED amb un gràfic.

% Aquest esbós ha estat escrit per SparkFun Electronics, % amb molta ajuda de la comunitat Arduino.

% Adaptat a MATLAB per Eric Davishahl.

% Visiteu https://learn.sparkfun.com/products/2 per obtenir informació sobre SIK.

netejar-ho tot, clc

tempPin = 'A0'; % Declaració del pin analògic connectat al sensor de temperatura

a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');

% Definiu una funció anònima que converteixi el voltatge en temperatura

tempCfromVolts = @ (volts) (volts-0,5) * 100;

mostreigDuració = 30;

SamplingInterval = 2; % De segons entre les lectures de temperatura

% configura el vector dels temps de mostreig

samplingTimes = 0: samplingInterval: samplingDuration;

% calculeu el nombre de mostres en funció de la durada i l'interval

numSamples = longitud (samplingTimes);

% prealoca les variables temporals i la variable per al nombre de lectures que emmagatzemarà

tempC = zeros (numSamples, 1);

tempF = tempC;

% utilitzant el quadre de diàleg d'entrada per emmagatzemar les temperatures màxima i mínima del carril

dlg_prompts = {'Introduïu la temperatura màxima', 'Introduïu la temperatura mínima'};

dlg_title = 'Intervals de temperatura del carril';

N = 22;

dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, longitud (dlg_title) + N]);

% Emmagatzemar les entrades de l'usuari i mostrar que s'ha registrat l'entrada

max_temp = str2double (dlg_ans {1})

min_temp = str2double (dlg_ans {2})

txt = sprintf ('La vostra entrada s'ha registrat');

h = msgbox (txt);

waitfor (h);

% Per a bucle per llegir les temperatures un nombre específic de vegades.

per a índex = 1: numSamples

Llegiu el voltatge a tempPin i emmagatzemeu-lo com a volts variables

volts = readVoltage (a, tempPin);

tempC (índex) = tempCfromVolts (volts);

tempF (índex) = tempC (índex) * 9/5 + 32; % Converteix de Celsius a Fahrenheit

% Si les instruccions per fer llums LED específics parpellegen en funció de la condició que es compleixi

si tempF (índex)> = max_temp% LED vermell

writeDigitalPin (a, 'D13', 0);

pausa (0,5);

writeDigitalPin (a, 'D13', 1);

pausa (0,5);

writeDigitalPin (a, 'D13', 0);

elseif tempF (index)> = min_temp && tempF (index) <max_temp% LED verd

writeDigitalPin (a, 'D11', 0);

pausa (0,5);

writeDigitalPin (a, 'D11', 1);

pausa (0,5);

writeDigitalPin (a, 'D11', 0);

elseif tempF (índex) <= min_temp% LED blau

writeDigitalPin (a, 'D12', 0);

pausa (0,5);

writeDigitalPin (a, 'D12', 1);

pausa (0,5);

writeDigitalPin (a, 'D12', 0);

final

% Mostra les temperatures a mesura que es mesuren

fprintf ("La temperatura a% d segons és% 5.2f C o% 5.2f F. / n", …

samplingTimes (índex), tempC (índex), tempF (índex));

pausa (samplingInterval)% de retard fins a la següent mostra

final

% Representació de les lectures de temperatura

figura 1)

gràfic (samplingTimes, tempF, 'r- *')

xlabel ('Temps (segons)')

ylabel ('Temperatura (F)')

title ('Lectures de temperatura des del RedBoard')

Pas 3: sortida del sensor de temperatura

Sortida del sensor de temperatura
Sortida del sensor de temperatura
Sortida del sensor de temperatura
Sortida del sensor de temperatura

A la part superior es mostra el cablejat i el codi MATLAB per a la sortida del sensor de temperatura.

Per a aquest projecte hem utilitzat tres llums LED per a la sortida del nostre sensor de temperatura. Hem utilitzat un vermell per si les vies estaven massa calentes, un blau per si eren massa fredes i un verd per si estaven entremig.

Pas 4: entrada del sensor d'aigua de pluja

Entrada del sensor d’aigua de pluja
Entrada del sensor d’aigua de pluja
Entrada del sensor d’aigua de pluja
Entrada del sensor d’aigua de pluja

A la part superior es mostra el cablejat del sensor d’aigua de pluja i es mostra el codi MATLAB a continuació.

%% Sensor d'aigua

netejar-ho tot, clc

a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');

waterPin = 'A1';

vDry = 4,80; % De tensió quan no hi ha aigua present

Durada del mostreig = 60;

SamplingInterval = 2;

samplingTimes = 0: samplingInterval: samplingDuration;

numSamples = longitud (samplingTimes);

% Per bucle per llegir la tensió durant un temps específic (60 segons)

per a índex = 1: numSamples

volt2 = readVoltage (a, waterPin); % Llegiu la tensió del pin analògic

% If sentència que fa sonar un brunzidor si es detecta aigua. Caiguda de tensió = aigua

si volt2 <vDry

playTone (a, 'D09', 2400)% funció playTone de MathWorks

% Mostra un avís als passatgers si es detecta aigua

waitfor (warndlg ("El tren pot endarrerir-se a causa de riscos per a l'aigua"));

final

% Mostra el voltatge tal com el mesura el sensor d'aigua

fprintf ('El voltatge a% d segons és% 5.4f V. / n', …

SamplingTimes (índex), volt2);

pausa (samplingInterval)

final

Pas 5: sortida del sensor d'aigua de pluja

Sortida del sensor d’aigua de pluja
Sortida del sensor d’aigua de pluja

A la part superior hi ha el cablejat d’un brunzidor que emet un so sempre que cau massa aigua a la pista. El codi del brunzidor s'inclou dins del codi de l'entrada d'aigua de pluja.

Pas 6: entrada del sensor de vibració

Entrada del sensor de vibració
Entrada del sensor de vibració
Entrada del sensor de vibració
Entrada del sensor de vibració

A la part superior es troba el cablejat del sensor de vibracions. Els sensors de vibració poden ser importants per als sistemes ferroviaris en el cas de caiguda de roques en una via. A continuació es publica el codi MATLAB.

%% Vibration Sensor: esborreu-ho tot, clc

PIEZO_PIN = 'A3'; % Declaració del pin analògic connectat al sensor de vibració a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno'); % Inicialització del temps i de l'interval per mesurar la mostra de vibració Durada = 30; % Second samplingInterval = 1;

samplingTimes = 0: samplingInterval: samplingDuration;

numSamples = longitud (samplingTimes);

% Amb el codi de la font següent el vam modificar per activar un

% LED de color porpra si es detecta vibració.

% SparkFun Tinker Kit, LED RGB, escrit per SparkFun Electronics, % amb molta ajuda de la comunitat Arduino

% Adaptat a MATLAB per Eric Davishahl

% Inicialització del pin RGB

RED_PIN = 'D5';

GREEN_PIN = 'D6';

BLUE_PIN = 'D7';

% Per a bucle per registrar els canvis de tensió del sensor de vibració durant un

% d'interval de temps específic (30 segons)

per a índex = 1: numSamples

volt3 = readVoltage (a, PIEZO_PIN);

Instrucció% If per encendre un LED morat si es detecta vibració

si volt3> 0,025

writeDigitalPin (a, RED_PIN, 1);

% Creació d'una llum porpra

writeDigitalPin (a, GREEN_PIN, 0);

writeDigitalPin (a, BLUE_PIN, 1);

else% Apagueu el LED si no es detecta cap vibració.

writeDigitalPin (a, RED_PIN, 0);

writeDigitalPin (a, GREEN_PIN, 0);

writeDigitalPin (a, BLUE_PIN, 0);

final

% Mostra el voltatge a mesura que es mesura.

fprintf ('El voltatge a% d segons és% 5.4f V. / n', …

SamplingTimes (índex), volt3);

pausa (samplingInterval)

final

Talla la llum quan es fa la mesura de les vibracions

writeDigitalPin (a, RED_PIN, 0);

writeDigitalPin (a, GREEN_PIN, 0);

writeDigitalPin (a, BLUE_PIN, 0);

Pas 7: sortida del sensor de vibració

Sortida del sensor de vibració
Sortida del sensor de vibració

A la part superior es mostra el cablejat de la llum LED RBG utilitzada. La llum brillarà de color porpra quan es detectin vibracions. El codi MATLAB per a la sortida està incrustat dins del codi de l'entrada.

Pas 8: Conclusió

Després de seguir tots aquests passos, ara hauríeu de tenir un arduino amb la capacitat de detectar temperatura, aigua de pluja i vibracions. Tot i veure com funcionen aquests sensors a petita escala, és fàcil imaginar el vital que podrien ser per als sistemes ferroviaris a la vida moderna.

Recomanat: