Sommario:

Utilizzo di sensori di temperatura, acqua piovana e vibrazioni su un Arduino per proteggere le ferrovie: 8 passaggi (con immagini)
Utilizzo di sensori di temperatura, acqua piovana e vibrazioni su un Arduino per proteggere le ferrovie: 8 passaggi (con immagini)

Video: Utilizzo di sensori di temperatura, acqua piovana e vibrazioni su un Arduino per proteggere le ferrovie: 8 passaggi (con immagini)

Video: Utilizzo di sensori di temperatura, acqua piovana e vibrazioni su un Arduino per proteggere le ferrovie: 8 passaggi (con immagini)
Video: PAYSAGE UNCOVENTIONAL ACADEMY - SMART WATER: L'UTILIZZO INTELLIGENTE DELL'ACQUA 2024, Dicembre
Anonim
Utilizzo di sensori di temperatura, acqua piovana e vibrazioni su un Arduino per proteggere le ferrovie
Utilizzo di sensori di temperatura, acqua piovana e vibrazioni su un Arduino per proteggere le ferrovie

Nella società moderna, un aumento dei passeggeri ferroviari significa che le compagnie ferroviarie devono fare di più per ottimizzare le reti per stare al passo con la domanda. In questo progetto mostreremo su piccola scala come i sensori di temperatura, acqua piovana e vibrazioni su una scheda arduino possono potenzialmente aiutare ad aumentare la sicurezza dei passeggeri.

Questo Instructable mostrerà passo dopo passo il cablaggio per i sensori di temperatura, acqua piovana e vibrazioni sull'arduino e mostrerà il codice MATLAB necessario per eseguire questi sensori.

Passaggio 1: parti e materiali

1. Un computer con l'ultima versione di MATLAB installata

2. Scheda Arduino

3. Sensore di temperatura

4. Sensore di acqua piovana

5. Sensore di vibrazioni

6. Luce LED rossa

7. Luce LED blu

8. Luce LED verde

9. Luce LED RGB

10. Cicalino

11. 18 fili maschio-maschio

12. 3 cavi femmina-maschio

13. 2 cavi femmina-femmina

14. 6 resistori da 330 ohm

15. 1 resistenza da 100 ohm

Passaggio 2: cablaggio del sensore di temperatura

Cablaggio del sensore di temperatura
Cablaggio del sensore di temperatura
Cablaggio del sensore di temperatura
Cablaggio del sensore di temperatura

Sopra c'è anche il cablaggio e il codice MATLAB per l'ingresso del sensore di temperatura.

I fili da terra e 5V devono essere fatti passare rispettivamente al negativo e al positivo una sola volta per l'intera scheda. Da qui in poi, eventuali collegamenti di terra proverranno dalla colonna negativa e tutti i collegamenti a 5V proverranno dalla colonna positiva.

Il codice seguente può essere copiato e incollato per il sensore di temperatura.

%% SENSORE DI TEMPERATURA % Per il sensore di temperatura abbiamo usato la seguente fonte insieme a

% di materiale del sito Web EF230 per modificare il nostro sensore di temperatura per consentire all'utente

% ingresso e 3 uscite luce LED con grafico.

%Questo schizzo è stato scritto da SparkFun Electronics, %con molto aiuto dalla comunità Arduino.

Adattato a MATLAB da Eric Davishahl.

%Visita https://learn.sparkfun.com/products/2 per informazioni SIK.

cancella tutto, clc

tempPin = 'A0'; % Dichiarare il pin analogico collegato al sensore di temperatura

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

% Definire una funzione anonima che converte la tensione in temperatura

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

campionamentoDurata = 30;

campionamentoIntervallo = 2; % Secondi tra le letture della temperatura

%imposta il vettore dei tempi di campionamento

campionamentoTimes = 0:samplingInterval:samplingDuration;

%calcola il numero di campioni in base alla durata e all'intervallo

numSamples = length(samplingTimes);

%preallocare variabili temporanee e variabili per il numero di letture che memorizzerà

tempC = zeros(numSamples, 1);

tempF = tempC;

% utilizzando la finestra di dialogo di input per memorizzare le temperature massime e minime del binario

dlg_prompts = {'Inserisci temperatura massima', 'Inserisci temperatura minima'};

dlg_title = 'Intervalli di temperatura del binario';

N=22;

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

% Memorizzazione degli input dall'utente e visualizzazione che l'input è stato registrato

max_temp = str2double(dlg_ans{1})

min_temp = str2double(dlg_ans{2})

txt = sprintf('Il tuo input è stato registrato');

h=casella msg(txt);

aspetta(h);

% For loop per leggere le temperature un numero specifico di volte.

for index = 1:numSamples

% Leggere la tensione su tempPin e memorizzarla come volt variabile

volt = readVoltage(a, tempPin);

tempC(indice) = tempCfromVolts(volt);

tempF(indice) = tempC(indice)*9/5+32; % Conversione da Celsius a Fahrenheit

% Se le istruzioni per far lampeggiare luci LED specifiche a seconda di quale condizione è soddisfatta

if tempF(index) >= max_temp % LED rosso

writeDigitalPin(a, 'D13', 0);

pausa(0.5);

writeDigitalPin(a, 'D13', 1);

pausa(0.5);

writeDigitalPin(a, 'D13', 0);

elseif tempF(indice) >= min_temp && tempF(indice) < max_temp % LED verde

writeDigitalPin(a, 'D11', 0);

pausa(0.5);

writeDigitalPin(a, 'D11', 1);

pausa(0.5);

writeDigitalPin(a, 'D11', 0);

elseif tempF(index) <= min_temp % LED blu

writeDigitalPin(a, 'D12', 0);

pausa(0.5);

writeDigitalPin(a, 'D12', 1);

pausa(0.5);

writeDigitalPin(a, 'D12', 0);

fine

% Visualizza le temperature man mano che vengono misurate

fprintf('La temperatura a %d secondi è %5.2f C o %5.2f F.\n', …

campionamentoTimes(indice), tempC(indice), tempF(indice));

pause(samplingInterval) %delay fino al prossimo campione

fine

% Tracciamento delle letture della temperatura

Figura 1)

plot(SamplingTimes, tempF, 'r-*')

xlabel('Tempo (secondi)')

ylabel('Temperatura (F)')

title('Letture della temperatura dalla RedBoard')

Passaggio 3: uscita del sensore di temperatura

Uscita sensore di temperatura
Uscita sensore di temperatura
Uscita sensore di temperatura
Uscita sensore di temperatura

Sopra c'è il cablaggio e il codice MATLAB per l'uscita del sensore di temperatura.

Per questo progetto abbiamo utilizzato tre luci a LED per l'uscita del nostro sensore di temperatura. Abbiamo usato un rosso se le piste erano troppo calde, un blu se erano troppo fredde e un verde se erano nel mezzo.

Passaggio 4: ingresso del sensore dell'acqua piovana

Ingresso sensore acqua piovana
Ingresso sensore acqua piovana
Ingresso sensore acqua piovana
Ingresso sensore acqua piovana

Sopra c'è il cablaggio per il sensore dell'acqua piovana e il codice MATLAB è pubblicato di seguito.

%% Sensore acqua

cancella tutto, clc

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

WaterPin = 'A1';

vDry = 4,80; % di tensione in assenza di acqua

campionamentoDurata = 60;

campionamentoIntervallo = 2;

campionamentoTimes = 0:samplingInterval:samplingDuration;

numSamples = length(samplingTimes);

% Per loop per leggere la tensione per un periodo di tempo specifico (60 secondi)

for index = 1:numSamples

volt2 = readVoltage(a, waterPin); % Leggere la tensione dall'analogico del pin dell'acqua

% If istruzione per far suonare un cicalino se viene rilevata l'acqua. Caduta di tensione = acqua

se volt2 < vDry

playTone(a, 'D09', 2400) % funzione playTone di MathWorks

% Visualizza un avviso per i passeggeri se viene rilevata acqua

waitfor(warndlg('Il tuo treno potrebbe subire ritardi a causa di ostacoli d'acqua'));

fine

% Visualizza la tensione misurata dal sensore dell'acqua

fprintf('La tensione a %d secondi è %5.4f V.\n', …

campionamentoTimes(indice), volt2);

pausa(intervallo di campionamento)

fine

Passaggio 5: uscita del sensore dell'acqua piovana

Uscita sensore acqua piovana
Uscita sensore acqua piovana

Sopra c'è il cablaggio per un cicalino che emette un segnale acustico ogni volta che cade troppa acqua sulla pista. Il codice per il cicalino è incorporato nel codice per l'ingresso dell'acqua piovana.

Passaggio 6: ingresso del sensore di vibrazioni

Ingresso sensore di vibrazioni
Ingresso sensore di vibrazioni
Ingresso sensore di vibrazioni
Ingresso sensore di vibrazioni

Sopra c'è il cablaggio per il sensore di vibrazioni. I sensori di vibrazione possono essere importanti per i sistemi ferroviari in caso di caduta di massi su un binario. Il codice MATLAB è pubblicato di seguito.

%% Sensore di vibrazionecancella tutto, clc

PIEZO_PIN = 'A3'; % Dichiarando il pin analogico collegato al sensore di vibrazione a=arduino('/dev/tty.usbserial-DA017PNO', 'uno'); % Inizializzazione del tempo e dell'intervallo per misurare il campionamento delle vibrazioniDuration = 30; % Secondi Intervallo di campionamento = 1;

campionamentoTimes = 0:samplingInterval:samplingDuration;

numSamples = length(samplingTimes);

% Usando il codice dalla seguente fonte lo abbiamo modificato per attivare a

% LED viola se viene rilevata una vibrazione.

% SparkFun Tinker Kit, LED RGB, scritto da SparkFun Electronics, % con tanto aiuto dalla comunità Arduino

% Adattato a MATLAB di Eric Davishahl

% Inizializzazione del pin RGB

RED_PIN = 'D5';

PIN_VERDE = 'D6';

BLUE_PIN = 'D7';

% Per il loop per registrare le variazioni di tensione dal sensore di vibrazione su a

% intervallo di tempo specifico (30 secondi)

for index = 1:numSamples

volt3 = readVoltage(a, PIEZO_PIN);

% If istruzione per accendere un LED viola se viene rilevata una vibrazione

se volt3>0.025

writeDigitalPin(a, RED_PIN, 1);

% Creare una luce viola

writeDigitalPin(a, PIN_VERDE, 0);

writeDigitalPin(a, BLUE_PIN, 1);

altro % Spegnere il LED se non viene rilevata alcuna vibrazione.

writeDigitalPin(a, RED_PIN, 0);

writeDigitalPin(a, PIN_VERDE, 0);

writeDigitalPin(a, BLUE_PIN, 0);

fine

% Visualizza la tensione così come viene misurata.

fprintf('La tensione a %d secondi è %5.4f V.\n', …

campionamentoTimes(indice), volt3);

pausa(intervallo di campionamento)

fine

% Spegnimento della luce al termine della misurazione delle vibrazioni

writeDigitalPin(a, RED_PIN, 0);

writeDigitalPin(a, PIN_VERDE, 0);

writeDigitalPin(a, BLUE_PIN, 0);

Passaggio 7: uscita del sensore di vibrazioni

Uscita del sensore di vibrazioni
Uscita del sensore di vibrazioni

Sopra è il cablaggio per la luce LED RBG utilizzata. La luce si illuminerà di viola quando vengono rilevate vibrazioni. Il codice MATLAB per l'output è incorporato nel codice per l'input.

Passaggio 8: conclusione

Dopo aver seguito tutti questi passaggi, ora dovresti avere un arduino con la capacità di rilevare la temperatura, l'acqua piovana e le vibrazioni. Osservando come funzionano questi sensori su piccola scala, è facile immaginare quanto possano essere vitali per i sistemi ferroviari nella vita moderna!

Consigliato: