Taula de continguts:
- Pas 1: peces i materials
- Pas 2: Cablatge del sensor de temperatura
- Pas 3: sortida del sensor de temperatura
- Pas 4: entrada del sensor d'aigua de pluja
- Pas 5: sortida del sensor d'aigua de pluja
- Pas 6: entrada del sensor de vibració
- Pas 7: sortida del sensor de vibració
- Pas 8: Conclusió
Vídeo: Ús de sensors de temperatura, aigua de pluja i vibracions en un Arduino per protegir els ferrocarrils: 8 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
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
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
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
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ó
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ó
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:
Disseny automàtic de ferrocarrils amb dos trens (V2.0) - Basat en Arduino: 15 passos (amb imatges)
Disseny automàtic de ferrocarrils amb dos trens (V2.0) | Basat en Arduino: automatitzar els dissenys de models de ferrocarril mitjançant microcontroladors Arduino és una manera excel·lent de combinar microcontroladors, programació i model de ferrocarril en un sol hobby. Hi ha un munt de projectes disponibles per fer circular un tren de forma autònoma en un model railroa
Estalvieu aigua i diners amb el monitor d'aigua de la dutxa: 15 passos (amb imatges)
Estalvieu aigua i diners amb el monitor d’aigua de la dutxa: que fa servir més aigua: una banyera o una dutxa? Fa poc pensava en aquesta pregunta i em vaig adonar que en realitat no sé quanta aigua s’utilitza quan em dutxo. Sé que quan estic a la dutxa, de vegades la meva ment vaga, pensant en una ne
Com protegir i protegir el vostre telèfon i gadget: 4 passos
Com protegir i protegir el telèfon i l’aparell: d’una persona que ho ha perdut gairebé tot (exagerat, és clar). Per tant, el temps de confessió, com deia la meva frase anterior, sóc molt maldestre. Si alguna cosa no se m'acompanya, hi ha moltes possibilitats que ho perdi en lloc, oblideu-me en algun lloc
Mesurador de capacitat del dipòsit d’aigua de pluja per ultrasons: 10 passos (amb imatges)
Mesurador de capacitat del dipòsit d’aigua de pluja per ultrasons: si sou com jo i teniu una mica de consciència mediambiental (o només teniu ganes de salvar uns quants dòlars, que també sóc jo …), és possible que tingueu un dipòsit d’aigua de pluja. Tinc un tanc per collir la pluja força infreqüent que fem
Closa d'aigua de pluja: 11 passos (amb imatges)
Esclusa d’aigua de pluja: una forta tempesta de pluja pot provocar un desbordament sobre els nostres: paviments, pous d’aigua de pluja, polders i els nostres dics. Per evitar que això passi, hem inventat una resclosa d’aigua de pluja. La comporta d'aigua de pluja calcula digitalment la distància entre l'aigua de pluja