Taula de continguts:

Detector de temperatura del ferrocarril del desert i comptador de passatgers: 5 passos
Detector de temperatura del ferrocarril del desert i comptador de passatgers: 5 passos

Vídeo: Detector de temperatura del ferrocarril del desert i comptador de passatgers: 5 passos

Vídeo: Detector de temperatura del ferrocarril del desert i comptador de passatgers: 5 passos
Vídeo: 3000+ Portuguese Words with Pronunciation 2024, De novembre
Anonim
Detector de temperatura del ferrocarril del desert i comptador de passatgers
Detector de temperatura del ferrocarril del desert i comptador de passatgers

Propòsit:

Temperatura: aquest instructiu us ensenyarà a configurar i programar un Arduino RedBoard (amb MATLAB) per detectar la temperatura d’un ferrocarril. Quan s’arriba a una temperatura no segura per als passatgers, sona un missatge d’advertència, s’apaguen els timbres i s’encén un senyal d’advertència.

Comptador de passatgers: aquesta part us ensenyarà a utilitzar un botó per comptar els passatgers i emetre un avís quan s’hagi assolit la capacitat màxima.

Característiques:

  • Utilitza el botó per comptar els passatgers que entren al tren
  • Utilitza TMP36 (sensor de temperatura) per detectar la temperatura del ferrocarril
  • Utilitza un llum LED vermell per advertir l’estació de tren
  • Utilitza timbres per sonar l’alarma
  • Envia un missatge d’alerta amb una parcel·la de temperatura i temps
  • Missatges d’advertència emergents a MATLAB

Pas 1: materials i subministraments

Materials i subministraments
Materials i subministraments
  • 1 ordinador portàtil
  • MATLAB 2017
  • Descarregueu Arduino Toolbox
  • Sparkfun RedBoard
  • 1 cable d'alimentació
  • Breadbord
  • 14 cables
  • 1 Piezo Buzzer
  • 1 polsador
  • 2 resistències de 10k ohm
  • 1 sensor TMP36
  • Llum LED vermella
  • Rètol imprès en 3D (opcional)

Pas 2: Configuració del tauler

Configuració del tauler
Configuració del tauler

Seguiu la configuració anterior

Pas 3: escriure el codi

Mentre bucle: per assegurar-nos que el codi continua provant la temperatura i detectant l'estat del botó (premut o no premut), posem el codi al bucle while durant un període de temps especificat.

Utilitzant TMP36: determinem la temperatura llegint la tensió i convertint-la en graus Fahrenheit, utilitzant factors de conversió. A continuació, fem servir una sentència if per reproduir un to i sonar / enviar alertes si la temperatura és superior o igual a la temperatura màxima establerta

Ús del botó: amb una sentència if, podem provar si es va prémer el botó amb readDigitalPin. Aquesta ordre retornarà un booleà (1 o 0). Si la resposta és 0, es va prémer el botó i el comptador dels passatgers augmenta i es mostra un missatge de benvinguda. Després, quan s’assoleix la capacitat màxima, es fa sonar un missatge d’advertència.

Pas 4: copieu el codi

% D'entrades: prement el botó, sensor de temperatura

% Sortides: llums, brunzidors, alerta d'àudio, correus electrònics, gràfics

% Objectiu: aquest producte està dissenyat per ajudar a garantir la seguretat i la comoditat de% de passatgers que viatgen en tren pel desert.

% Ús: detectar el nombre de passatgers mitjançant un polsador i% detectar la calor mitjançant un sensor de temperatura i representar-lo gràficament i enviar tant el nombre de passatgers com el gràfic de temperatura a l'estació de tren

configurePin (a, 'D2', 'pullup'); % en versions futures utilitzen configurePin

temps = 200;

e = 0;

x = 0

mentre que el temps> 0

button_status = readDigitalPin (a, 'D2'); % és igual a zero quan es prem el botó, en cas contrari és igual a 1

voltage = readVoltage (a, 'A0');% pin depèn d'on el col·loquem

tempCelcius = (voltatge * 100) -50; % indicat al manual del sensor

tempF (temps) = (tempCelcius * 1,8) +32% de fórmula de conversió coneguda

màx = 120; % graus F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

si tempF (temps)> = màx

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)% reprodueix "sirena"

z = 'Sobrecalentament.m4a'; % Això posa el fitxer de so en una variable

[dades, freq] = audioread (z); % Carrega les dades del fitxer de so

o = audioplayer (dades, freq); % Crea un objecte per controlar la reproducció del fitxer d'àudio

o.play ()% Reprodueix el fitxer d'àudio

o.playblocking ()% Reprodueix el fitxer i espera que acabi

final

if button_status == 0 && rem == 0

e = e + 1

msgbox ('Benvingut a bord!');

elseif button_status == 0 && rem == 1

e = e + 1

msgbox ('Bienvenido a bordo!');

final

si e == 5

writeDigitalPin (a, 'D11', 0);

si x == 0

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

s = 'Warning_EF.m4a'; % Això posa el fitxer de so en una variable

[dades, freq] = audioread (s); % Carrega les dades del fitxer de so

o = audioplayer (dades, freq); % Crea un objecte per controlar la reproducció del fitxer d'àudio

% o.play ()% Reprodueix fitxers d'àudio

o.playblocking ()% Reprodueix el fitxer i espera que acabi

msgbox ('Capacitat màxima')

x = x + 1

final

elseif e> = 6

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

final

temps = temps - 1;

% pausa (0,1);

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

% de temps = 0

% final

final

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

gràfic (t, tempF2);

title ("Temps vs. temperatura")

ylabel ('Temperatura (F)')

xlabel ("Temps (s)")

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123 #'

host = 'smtp.gmail.com'

setpref ('Internet', 'SMTP_Server', amfitrió);

setpref ('Internet', 'E-mail', correu);

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

setpref ('Internet', 'SMTP_Password', contrasenya);

atrezzo = 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 (correu electrònic, "Hello Train Station! Hi ha tants passatgers al tren", ee, "tempplot.jpg")

Pas 5: Resultats

Recomanat: