Sommario:
- Passaggio 1: parti e materiali
- Passaggio 2: cablaggio del sensore di temperatura
- Passaggio 3: uscita del sensore di temperatura
- Passaggio 4: ingresso del sensore dell'acqua piovana
- Passaggio 5: uscita del sensore dell'acqua piovana
- Passaggio 6: ingresso del sensore di vibrazioni
- Passaggio 7: uscita del sensore di vibrazioni
- Passaggio 8: conclusione
Video: Utilizzo di sensori di temperatura, acqua piovana e vibrazioni su un Arduino per proteggere le ferrovie: 8 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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
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
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
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
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
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
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:
Introduzione ai sensori di temperatura e vibrazioni wireless a lungo raggio: 7 passaggi
Guida introduttiva ai sensori di temperatura e vibrazioni wireless a lungo raggio: a volte le vibrazioni sono la causa di gravi problemi in molte applicazioni. Dagli alberi e cuscinetti della macchina alle prestazioni del disco rigido, le vibrazioni causano danni alla macchina, sostituzioni anticipate, prestazioni ridotte e influiscono notevolmente sulla precisione. Monitoraggio
Cappello parlante con rilevamento delle vibrazioni con Circuit Playground Express: 12 passaggi (con immagini)
Scuoti il cappello parlante che rileva con Circuit Playground Express: questo tutorial facile e veloce ti insegna come realizzare un cappello parlante! Risponderebbe con una risposta elaborata con cura quando "fai" una domanda e forse potrebbe aiutarti a decidere se hai preoccupazioni o problemi. Nella mia classe di tecnologia indossabile, io
Risparmia acqua e denaro con il monitor dell'acqua della doccia: 15 passaggi (con immagini)
Risparmia acqua e denaro con il monitor dell'acqua della doccia: quale usa più acqua - un bagno o una doccia? Di recente stavo pensando a questa domanda e mi sono reso conto che in realtà non so quanta acqua viene utilizzata quando faccio la doccia. So che quando sono sotto la doccia a volte la mia mente vaga, pensando a un bel ne
Misuratore di capacità del serbatoio dell'acqua piovana ad ultrasuoni: 10 passaggi (con immagini)
Misuratore di capacità del serbatoio dell'acqua piovana ad ultrasuoni: se sei come me e hai un po' di coscienza ambientale (o sei solo spilorcio desideroso di risparmiare qualche soldo - che sono anche io …), potresti avere un serbatoio di acqua piovana. Ho un serbatoio per raccogliere la pioggia piuttosto rara in cui arriviamo
Chiusa dell'acqua piovana: 11 passaggi (con immagini)
Chiusa dell'acqua piovana: un forte temporale può causare un trabocco sui nostri: marciapiedi, pozzi di acqua piovana, polder e le nostre dighe. Per evitare che ciò accada, abbiamo inventato uno sluce di acqua piovana! La chiusa per l'acqua piovana calcola digitalmente la distanza tra l'acqua piovana