Sommario:

Rilevatore di temperatura della ferrovia del deserto e contatore di passeggeri: 5 passaggi
Rilevatore di temperatura della ferrovia del deserto e contatore di passeggeri: 5 passaggi

Video: Rilevatore di temperatura della ferrovia del deserto e contatore di passeggeri: 5 passaggi

Video: Rilevatore di temperatura della ferrovia del deserto e contatore di passeggeri: 5 passaggi
Video: Ingoiare il latte del trallalero fa bene? #shorts 2024, Luglio
Anonim
Rilevatore di temperatura della ferrovia del deserto e contatore di passeggeri
Rilevatore di temperatura della ferrovia del deserto e contatore di passeggeri

Scopo:

Temperatura: questa istruzione ti insegnerà come impostare e programmare un Arduino RedBoard (usando MATLAB) per rilevare la temperatura di una ferrovia. Quando viene raggiunta una temperatura non sicura per i passeggeri, viene emesso un messaggio di avviso, si attivano i cicalini e si accende un segnale di avviso.

Contatore passeggeri: questa parte ti insegnerà come utilizzare un pulsante per contare i passeggeri e emettere un avviso quando viene raggiunta la capacità massima.

Caratteristiche:

  • Utilizza il pulsante per contare i passeggeri che entrano in treno
  • Utilizza TMP36 (sensore di temperatura) per rilevare la temperatura della ferrovia
  • Utilizza una luce LED rossa per avvisare la stazione ferroviaria
  • Utilizza i cicalini per suonare l'allarme
  • Invia un'e-mail di avviso con un grafico della temperatura in funzione del tempo
  • Messaggi di avviso pop-up su MATLAB

Passaggio 1: materiali e forniture

Materiali e forniture
Materiali e forniture
  • 1 computer portatile
  • MATLAB 2017
  • Scarica Arduino Toolbox
  • Sparkfun RedBoard
  • 1 cavo di alimentazione
  • Breadbord
  • 14 fili
  • 1 cicalino piezoelettrico
  • 1 pulsante
  • 2 resistori da 10k ohm
  • 1 sensore TMP36
  • Luce LED rossa
  • Insegna stampata in 3D (opzionale)

Passaggio 2: configurazione della scheda

Configurazione della scheda
Configurazione della scheda

Segui la configurazione sopra

Passaggio 3: scrittura del codice

While Loop: per garantire che il codice continui a testare la temperatura e rilevare lo stato del pulsante (premuto o non premuto), inseriamo il codice nel ciclo while per un periodo di tempo specificato.

Utilizzando TMP36: determiniamo la temperatura leggendo la tensione e convertendola in gradi Fahrenheit, utilizzando fattori di conversione. Quindi, usiamo un'istruzione if per riprodurre un segnale acustico e inviare avvisi se la temperatura è maggiore o uguale alla temperatura massima impostata

Utilizzo del pulsante: con un'istruzione if, possiamo verificare se il pulsante è stato premuto utilizzando readDigitalPin. Questo comando restituirà un booleano (1 o 0). Se la risposta è 0, allora è stato premuto il pulsante e il contatore dei passeggeri aumenta e visualizza un messaggio di benvenuto. Quindi, quando viene raggiunta la capacità massima, viene emesso un messaggio di avviso.

Passaggio 4: copia il codice

%Ingressi: premendo il pulsante, sensore di temperatura

%Uscite: luci, cicalini, avviso audio, e-mail, grafici

Scopo: questo prodotto è progettato per garantire la sicurezza e il comfort dei passeggeri che viaggiano in treno nel deserto.

Utilizzo: Rilevamento del numero dei passeggeri utilizzando un pulsante e rilevamento del calore utilizzando un sensore di temperatura e grafico e invia entrambi i numeri dei passeggeri e il grafico della temperatura alla stazione ferroviaria

configurePin(a, 'D2', 'pullup'); %nelle versioni future usa configurePin

tempo = 200;

e=0;

x=0

mentre tempo > 0

button_status = readDigitalPin(a, 'D2'); % è uguale a zero quando viene premuto il pulsante, altrimenti è uguale a 1

tensione = readVoltage(a, 'A0');%pin dipende da dove lo posizioniamo

tempCelcius = (tensione*100)-50; %riportato nel manuale del sensore

tempF(time) = (tempCelcius*1.8)+32 %formula di conversione nota

massimo = 120; % gradi F

writeDigitalPin(a, 'D11', 1);

rem=mod(e, 2);

se tempF(tempo)>=max

writeDigitalPin(a, 'D11', 0);

writeDigitalPin(a, 'D9', 1);

playTone(a, 'D9', 2400,.5)

pausa(.5)

writeDigitalPin(a, 'D6', 1)

playTone(a, 'D6', 1000,.5)

pausa(.5)

writeDigitalPin(a, 'D9', 1);

playTone(a, 'D9', 2400,.5)

pausa(.5)

writeDigitalPin(a, 'D6', 1)

playTone(a, 'D6', 1000,.5) %suona "sirena"

z='Surriscaldamento.m4a'; %Questo mette il file audio in una variabile

[dati, frequenza]=audioread(z); %Carica i dati dal file audio

o=audioplayer(data, freq); %Crea un oggetto per controllare la riproduzione del file audio

o.play() %Riproduce file audio

o.playblocking() %Riproduce il file e aspetta che finisca

fine

if button_status == 0 && rem==0

e=e+1

msgbox('Benvenuto a bordo!');

elseif button_status == 0 && rem==1

e=e+1

msgbox('Bienvenido a bordo!');

fine

se e==5

writeDigitalPin(a, 'D11', 0);

se x==0

playTone(a, 'D6', 600, 1);

s='Avviso_EF.m4a'; %Questo mette il file audio in una variabile

[data, freq]=audioread(s); %Carica i dati dal file audio

o=audioplayer(data, freq); %Crea un oggetto per controllare la riproduzione del file audio

% o.play() %Riproduce file audio

o.playblocking() %Riproduce il file e aspetta che finisca

msgbox('Capacità massima')

x=x+1

fine

altrimenti se e>=6

playTone(a, 'D6', 2400, 0);

fine

ora = ora - 1;

% pausa(0.1);

% se e==5 && max(tempF)>=120

% tempo=0

% fine

fine

ee=num2str(e)

t=[1:200];

tempF2=fliplr(tempF);

grafico(t, tempF2);

title('Tempo vs. Temperatura')

ylabel('Temperatura(F)')

xlabel('Tempo/i')

saveas(gcf, 'tempplot.jpg')

mail= '[email protected]'

password='Srsora123#'

host='smtp.gmail.com'

setpref('Internet', 'Server_SMTP', host);

setpref('Internet', 'E_mail', posta);

setpref('Internet', 'SMTP_Username', mail);

setpref('Internet', 'Password_SMTP', password);

props = java.lang. System.getProperties;

props.setProperty('mail.smtp.auth', 'true');

props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');

props.setProperty('mail.smtp.socketFactory.port', '465');

sendmail(mail, 'Ciao stazione ferroviaria! Ci sono così tanti passeggeri nel treno', ee, 'tempplot.jpg')

Passaggio 5: risultati

Consigliato: